Risolvere i problemi relativi ai criteri

Questa pagina descrive come risolvere i problemi relativi ai criteri di autorizzazione, di rifiuto e dei limiti di accesso all'entità di Identity and Access Management (IAM).

Utilizzare lo strumento per la risoluzione dei problemi relativi ai criteri

Se devi risolvere i problemi di accesso per un'entità specifica, utilizza Policy Troubleshooter per IAM.

Lo strumento per la risoluzione dei problemi dei criteri ti aiuta a capire se un'entità può accedere a una risorsa. Dati un'entità, una risorsa e un'autorizzazione, lo strumento per la risoluzione dei problemi dei criteri esamina i criteri di autorizzazione, di negazione e di limite di accesso all'entità (PAB) che influiscono sull'accesso dell'entità. Poi ti dice se, in base a questi criteri, l'entità può utilizzare l'autorizzazione specificata per accedere alla risorsa. Vengono inoltre elencate le norme pertinenti e spiegato in che modo influiscono sull'accesso dell'entità.

Per scoprire come utilizzare lo strumento per la risoluzione dei problemi relativi ai criteri per risolvere i problemi relativi ai criteri di autorizzazione, ai criteri di negazione e ai criteri di limite di accesso all'entità, consulta Risolvere i problemi relativi alle autorizzazioni IAM.

Visualizza tutti i criteri di autorizzazione e di rifiuto che si applicano a una risorsa

In Google Cloud, i seguenti criteri di autorizzazione e diniego influiscono sull'accesso a una risorsa:

  • Il criterio di autorizzazione della risorsa
  • Eventuali criteri di rifiuto della risorsa
  • I criteri di autorizzazione del progetto, della cartella e dell'organizzazione di primo livello della risorsa, se presenti
  • I criteri di rifiuto del progetto, della cartella e dell'organizzazione padre della risorsa, se presenti

I criteri di autorizzazione e diniego di progetti, cartelle e organizzazioni principali influiscono sull'accesso a una risorsa a causa dell'eredita dei criteri. Quando colleghi un criterio di autorizzazione o diniego a un progetto, a una cartella o a un'organizzazione, questo criterio si applica anche a tutte le risorse all'interno del progetto, della cartella o dell'organizzazione.

Ad esempio, se un criterio di rifiuto per un'organizzazione indica che un'entità non può utilizzare un'autorizzazione specifica, l'entità non potrà utilizzare l'autorizzazione per nessuna risorsa all'interno dell'organizzazione. Questa regola si applica anche se le cartelle e i progetti all'interno dell'organizzazione hanno criteri di rifiuto più permissivi o criteri di autorizzazione che concedono all'entità l'autorizzazione.

Analogamente, se un criterio di autorizzazione per un progetto assegna a un'entità un'autorizzazione specifica, l'entità dispone di questa autorizzazione per qualsiasi risorsa all'interno del progetto, a condizione che l'autorizzazione non venga negata.

L'unione di tutti questi criteri è chiamata criterio applicabile o criterio effettivo per la risorsa.

In Google Cloud, puoi ottenere un elenco di tutti i criteri di autorizzazione e di rifiuto che influiscono sull'accesso a un progetto utilizzando il comando gcloud beta projects get-ancestors-iam-policy con il flag --include-deny. Insieme, questi criteri costituiscono le norme applicabili al progetto. Puoi esaminare ogni criterio per vedere in che modo influisce sull'accesso dell'entità.

gcloud

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Gli ID progetto sono stringhe alfanumeriche, ad esempio my-project.

Esegui il comando gcloud beta projects get-ancestors-iam-policy:

Linux, macOS o Cloud Shell

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Windows (PowerShell)

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

Windows (cmd.exe)

gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json

La risposta contiene i criteri di autorizzazione e diniego per il progetto, eventuali cartelle precedenti del progetto e l'organizzazione. L'esempio seguente mostra i criteri di autorizzazione per l'organizzazione 1234567890123 e il progetto my-project, nonché un criterio di rifiuto per il progetto my-project:

[
  {
    "id": "1234567890123",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/iam.denyAdmin"
        },
        {
          "members": [
            "user:raha@example.com"
          ],
          "role": "roles/iam.serviceAccountAdmin"
        }
      ],
      "etag": "BwXW6Eab7TI=",
      "version": 1
    },
    "type": "organization"
  },
  {
    "id": "my-project",
    "policy": {
      "bindings": [
        {
          "members": [
            "group:cloud-admins@example.com"
          ],
          "role": "roles/owner"
        }
      ],
      "etag": "BwXXjOM7L6M=",
      "type": "project"
    }
  },
  {
    "id": "my-project",
    "policy": {
      "createTime": "2022-02-14T21:46:35.865279Z",
      "displayName": "My deny policy",
      "etag": "MTgyMzg2ODcwNTEyMjMxMTM3Mjg=",
      "kind": "DenyPolicy",
      "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/my-deny-policy",
      "rules": [
        {
          "denyRule": {
            "deniedPermissions": [
              "iam.googleapis.com/serviceAccounts.create"
            ],
            "deniedPrincipals": [
              "user:raha@example.com"
            ]
          },
          "description": "Prevent service account creation"
        }
      ],
      "uid": "c83e3dc3-d8a6-6f51-4018-814e9f200b05",
      "updateTime": "2022-02-14T21:46:35.865279Z"
    },
    "type": "project"
  }
]

In questo esempio, a Raha viene assegnato il ruolo Amministratore account di servizio (roles/iam.serviceAccountAdmin) nell'organizzazione, ma il progetto ha un criterio di rifiuto che impedisce a Raha di utilizzare l'autorizzazione iam.googleapis.com/serviceAccounts.create. Di conseguenza, se Raha tenta di creare un account di servizio nel progetto my-project, la richiesta verrà rifiutata.

In alcuni casi, potrebbe essere necessario visualizzare solo il criterio di autorizzazione effettivo per una risorsa, ad esempio se la tua organizzazione non utilizza i criteri di rifiuto. In questi casi, puoi utilizzare i seguenti metodi per visualizzare il criterio di autorizzazione effettivo:

  • Visualizza il criterio di autorizzazione IAM della risorsa nella console Google Cloud. La console Google Cloud mostra automaticamente il criterio effettivo di ogni risorsa.

    Per scoprire come visualizzare il criterio di autorizzazione IAM di una risorsa nella console Google Cloud, consulta Visualizzare l'accesso corrente.

  • Utilizza l'API Cloud Asset per ottenere il criterio di autorizzazione effettivo della risorsa. Per scoprire di più, consulta Visualizzare i criteri IAM efficaci.

Se devi individuare un'associazione di ruoli specifica in una policy di autorizzazione, puoi eseguire una ricerca nella policy di autorizzazione.

Cloud Asset Inventory ti consente di cercare le policy di autorizzazione per le associazioni dei ruoli che corrispondono ai parametri specificati. Puoi utilizzare una serie di parametri di ricerca, tra cui:

  • Tipo di risorsa
  • Tipo di entità
  • Ruolo
  • Progetto
  • Cartella
  • Organizzazione

Per ulteriori informazioni, consulta Cercare i criteri di autorizzazione IAM.