# Enumeration

## Organizations

```bash
# Lister les organisations pour le compte courant
gcloud organizations list

# Lister les politiques IAM appliquées à une organistation spécifique
gcloud organizations get-iam-policy <OrgaID>
```

## Projects

```bash
# Lister les projets de l'utilisateur courant
gcloud projects list

#Lister les politiques IAM appliquées à un projet spécifique
gcloud projects get-iam-policy <ProjID>
```

## Service Accounts

```bash
# Lister les comptes de service dans un projet
gcloud iam service-accounts list

# Lister les politiques IAM pour un compte de service
gcloud iam service-accounts get-iam-policy <service account email ID>

# Lister les clés / creds d'un compte de service
gcloud iam service-accounts keys list --iam-account <service Account Email ID>
```

{% hint style="info" %}
Comment différencier un compte de service par défaut et un compte de service créé par le client ?&#x20;

Les comptes de service créés par le client ont "**iam**" dans leur email (exp: example\@something.**iam**.gserviceaccount.com)
{% endhint %}

{% hint style="info" %}
**Note**: Les comptes de services fonctionnent à la fois comme **identity** et **resource** dans GCP, ils peuvent donc faire l'objet de politiques etc.
{% endhint %}

## Roles

### Basic & Pre-defined roles

```bash
# Lister les rôles dans une organisation / un projet
gcloud iam roles list

# Lister les permissions pour un rôle spécifique
gcloud iam roles describe role/<owner or editor or viewer or ...>
```

### Custom roles

```bash
# Lister les rôles custom pour un projet spécifique
gcloud iam roles list --project <ProjID>

# Lister les permission d'un rôle spécifique dans un projet spécifique
gcloud iam roles describe <RoleName> --project <ProjID>
```
