Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cyclenerd/google-cloud-iam

☁️ Google Cloud Identity and Access Management (IAM)
https://github.com/cyclenerd/google-cloud-iam

gcp gcp-iam google-cloud google-cloud-identity google-cloud-platform

Last synced: 3 months ago
JSON representation

☁️ Google Cloud Identity and Access Management (IAM)

Awesome Lists containing this project

README

        

# Google Cloud Identity and Access Management (IAM)

[![Badge: Google Cloud](https://img.shields.io/badge/Google%20Cloud-%234285F4.svg?logo=google-cloud&logoColor=white)](#readme)
[![Badge: CI](https://github.com/Cyclenerd/google-cloud-iam/actions/workflows/build.yml/badge.svg)](https://github.com/Cyclenerd/google-cloud-iam/actions/workflows/build.yml)
[![Badge: GitHub](https://img.shields.io/github/license/cyclenerd/google-cloud-iam)](https://github.com/Cyclenerd/google-cloud-iam/blob/master/LICENSE)

This webapp lists predefined roles and permissions for Google Cloud Platform Identity and Access Management (IAM).

I built it so that I can quickly search for permissions and identify the associated role.
The official [Google Documentation](https://cloud.google.com/iam/docs/understanding-roles) is too slow and messy for me.

[![Screenshot](./img/permissions.png)](https://gcloud-iam.nkn-it.de/permissions.html)

## 🧑‍💻 Development

If you want to customize or run this webapp on your local computer,
you need the following requirements.

### Requirements

* [Google Cloud CLI](https://cloud.google.com/sdk/docs/install) (`gcloud`)
* JSON processor (`jq`)
* Perl 5 (`perl`)
* Perl modules:
* [JSON::XS](https://metacpan.org/pod/JSON::XS)
* [Template::Toolkit](https://metacpan.org/pod/Template::Toolkit)
* [plackup](https://metacpan.org/dist/Plack/view/script/plackup)

Debian/Ubuntu

Packages:

```shell
sudo apt update
sudo apt install \
libjson-xs-perl \
libtemplate-perl \
libplack-perl \
jq
```

[Google Cloud CLI](https://cloud.google.com/sdk/docs/install#deb):

```shell
sudo apt-get install apt-transport-https ca-certificates gnupg
# Add the gcloud CLI distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
# Import the Google Cloud public key.
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo tee /usr/share/keyrings/cloud.google.gpg
# Update and install the gcloud CLI
sudo apt-get update
sudo apt-get install google-cloud-cli
```

macOS

Homebrew packages:

```shell
brew install perl
brew install cpanminus pkg-config
brew install --cask google-cloud-sdk
brew install jq
```

Perl modules:

```shell
cpanm --installdeps .
```

Build:
```shell
cd build
bash roles.sh
bash permissions.sh
perl build.pl
```

Run:

```shell
plackup --host "127.0.0.1" --port "8080"
```

## ❤️ Contributing

Have a patch that will benefit this project?
Awesome! Follow these steps to have it accepted.

1. Please read [how to contribute](CONTRIBUTING.md).
1. Fork this Git repository and make your changes.
1. Create a Pull Request.
1. Incorporate review feedback to your changes.
1. Accepted!

## 📜 License

All files in this repository are under the [Apache License, Version 2.0](LICENSE) unless noted otherwise.

Portions of this webapp are modifications based on work created and shared by [Google](https://developers.google.com/readme/policies)
and used according to terms described in the [Creative Commons 4.0 Attribution License](https://creativecommons.org/licenses/by/4.0/).