Visualizzazione dei criteri IAM effettivi

Questo argomento mostra come visualizzare i criteri di Identity and Access Management (IAM) effettivi per una determinata risorsa.

In IAM, un criterio effettivo descrive come vengono ereditati per una risorsa tutti i criteri padre e predecesso nella gerarchia delle risorse.

Ambito e autorizzazioni

Quando richiedi criteri IAM efficaci, devi specificare un ambito. Può essere un'organizzazione, una cartella o un progetto. Vengono restituiti tutti i criteri IAM impostati o in questo ambito. L'ambito della richiesta non deve essere lo stesso del progetto abilitato per l'API Cloud Asset. Inoltre, il progetto abilitato e l'ambito della richiesta richiedono autorizzazioni diverse.

Tipi di criteri supportati

I criteri IAM effettivi supportano solo i criteri di autorizzazione IAM. Non supporta le seguenti forme di controllo dell'accesso:

Prima di iniziare

Prima di iniziare, completa i seguenti passaggi.

  1. Abilitare l'API Cloud Asset Inventory per il tuo progetto.

    Abilitare l'API Cloud Asset Inventory

    Questo progetto non deve essere uguale all'ambito delle tue richieste. Scopri di più sull'impostazione di un progetto al momento dell'abilitazione di un servizio.

  2. Installa Google Cloud SDK.

  3. (Facoltativo) Per chiamare direttamente l'API Cloud Asset Inventory, conferma di avere accesso al comando curl.

  4. Imposta le autorizzazioni.

    1. Configura le autorizzazioni per l'API Cloud Asset.

    2. Abilita le seguenti autorizzazioni per l'ambito della tua richiesta.

      • cloudasset.assets.analyzeIamPolicy

      • cloudasset.assets.searchAllResources

      • cloudasset.assets.searchAllIamPolicies

      Queste autorizzazioni sono incluse nei seguenti ruoli predefiniti:

      • Proprietario asset cloud (roles/cloudasset.owner)

      • Visualizzatore asset cloud (roles/cloudasset.viewer)

      Per ulteriori informazioni sulle autorizzazioni e sui ruoli dell'API Cloud Asset, consulta Controllo dell'accesso.

Ottieni criteri IAM efficaci

gcloud

Per ottenere i criteri IAM effettivi su una risorsa, puoi chiamare BatchGetEffectiveIamPolicies utilizzando il comando gcloud asset get-effective-iam-policy. Devi eseguire la versione 399.0.0 di Google Cloud CLI o una versione successiva.

gcloud asset get-effective-iam-policy \
    --scope=SCOPE \
    --names=ASSET_NAME_1,ASSET_NAME_2,...

Specifica i seguenti valori:

  • SCOPE: un ambito può essere un progetto, una cartella o un'organizzazione.

    I valori consentiti sono:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Come trovare il numero di un progetto Google Cloud

      Console

      Per trovare il numero di un progetto Google Cloud, completa questi passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • ASSET_NAME: un elenco separato da virgole di nomi completi degli asset per cui recuperare i criteri IAM effettivi.

    Puoi recuperare i criteri per un massimo di 20 asset in un singolo batch.

I seguenti esempi di codice sono comandi dell'interfaccia a riga di comando gcloud di esempio:

  • Per l'ID organizzazione 123456:

    gcloud asset get-effective-iam-policy \
        --scope=organizations/123456 \
        --names=//cloudresourcemanager.googleapis.com/organizations/123456
    
  • Per un ID cartella di 1234567:

    gcloud asset get-effective-iam-policy \
        --scope=folders/1234567 \
        --names=//cloudresourcemanager.googleapis.com/folders/1234567
    
  • Per due risorse di istanza Cloud SQL in un progetto denominato my-project:

    gcloud asset get-effective-iam-policy \
        --scope=projects/my-project \
        --names=//cloudsql.googleapis.com/projects/my-project/instances/instance1,//cloudsql.googleapis.com/projects/my-project/instances/instance2
    

REST

Per ottenere i criteri IAM effettivi su una risorsa utilizzando l'API Cloud Asset Inventory, utilizza il seguente comando curl:

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "names": [
            "ASSET_NAME_1",
            "ASSET_NAME_2",
            "..."
          ]
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet

Specifica i seguenti valori:

  • ASSET_NAME: un elenco separato da virgole di nomi completi degli asset per cui recuperare i criteri IAM effettivi.

    Puoi recuperare i criteri per un massimo di 20 asset in un singolo batch.

  • SCOPE: un ambito può essere un progetto, una cartella o un'organizzazione.

    I valori consentiti sono:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Come trovare il numero di un progetto Google Cloud

      Console

      Per trovare il numero di un progetto Google Cloud, completa questi passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"