Risolvere i problemi relativi alle autorizzazioni IAM

Lo strumento per la risoluzione dei problemi relativi ai criteri semplifica la comprensione del motivo per cui un utente ha accesso a una risorsa o non dispone dell'autorizzazione per chiamare un'API. Dopo aver ricevuto un'email, una risorsa e un'autorizzazione, lo strumento per la risoluzione dei problemi dei criteri esamina tutti i criteri di gestione di identità e accessi (IAM) applicati alla risorsa. Mostra quindi se i ruoli dell'entità includono l'autorizzazione per la risorsa e, in tal caso, quali criteri le associano.

Puoi accedere allo strumento per la risoluzione dei problemi relativi ai criteri utilizzando la console, l'interfaccia a riga di comando di Google Cloud o l'API REST. Per le query semplici, l'utilizzo della console è di solito il più veloce. In scenari più complessi, valuta l'interfaccia a riga di comando gcloud o l'API REST.

La console ti avvisa anche se sono presenti criteri di negazione che possono influire sull'accesso dell'entità. L'interfaccia a riga di comando gcloud e l'API REST non forniscono informazioni sui criteri di negazione.

Prima di iniziare

  • Attiva l'API Policy Troubleshooter.

    Abilita l'API

Autorizzazioni obbligatorie

Lo strumento per la risoluzione dei problemi dei criteri analizza un'entità per accedere a una risorsa in base ai criteri e ai ruoli IAM che hai l'autorizzazione di visualizzazione. Se non hai l'autorizzazione per visualizzare un criterio che si applica a una risorsa o se non hai l'autorizzazione per visualizzare un ruolo personalizzato, potresti non essere in grado di comunicare se un'entità può accedere.

Per ottenere le autorizzazioni di cui hai bisogno per risolvere i problemi di accesso di un'entità, chiedi al tuo amministratore di concederti il ruolo IAM Revisore della sicurezza (roles/iam.securityReviewer) nell'organizzazione. Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per risolvere i problemi di accesso di un'entità. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

  • iam.roles.get
  • iam.roles.list
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.organizations.getIamPolicy
  • resourcemanager.projects.getIamPolicy

Potresti anche essere in grado di ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Risoluzione dei problemi di accesso

Per risolvere i problemi di accesso, hai bisogno delle seguenti informazioni:

  • Entità: l'indirizzo email da controllare. L'indirizzo email deve fare riferimento a un account utente o di servizio. Non sono supportati altri tipi di entità.
  • Risorsa. Il nome completo della risorsa. Ad esempio, per controllare il progetto my-project, inserisci //cloudresourcemanager.googleapis.com/projects/my-project. Per altri tipi di risorse, vedi gli esempi di nomi completi delle risorse.
  • Autorizzazione: l'autorizzazione da verificare. Se utilizzi la console, verrà visualizzato un elenco di suggerimenti durante la digitazione. Per un elenco completo delle autorizzazioni, consulta la guida di riferimento alle autorizzazioni.

console

Risolvere i problemi di accesso

Per risolvere i problemi di accesso:

  1. Nella console, vai alla pagina Strumento per la risoluzione dei problemi relativi ai criteri.

    Vai allo strumento per la risoluzione dei problemi relativi ai criteri

  2. Inserisci un'email, un nome della risorsa e l'autorizzazione da verificare.

  3. (Facoltativo) Per verificare più risorse e autorizzazioni, seleziona Aggiungi un'altra coppia e ripeti il passaggio precedente.

  4. Fai clic su Controlla chiamata API.

Comprendere i risultati dello strumento per la risoluzione dei problemi relativi ai criteri

I risultati dello strumento per la risoluzione dei problemi dei criteri indicano se l'entità dispone dell'autorizzazione specificata per la risorsa specificata. Elencano anche i criteri IAM applicabili alla risorsa e le associazioni di ruoli in tali criteri.

Per impostazione predefinita, i risultati vengono visualizzati in Vista compatta, che mostra solo le associazioni dei ruoli per i ruoli che contengono l'autorizzazione specificata. Se stai risolvendo più autorizzazioni, utilizza l'elenco a discesa Visualizza per per passare da un'autorizzazione all'altra.

Puoi disattivare Vista compatta facendo clic sul pulsante di attivazione/disattivazione Vista compatta. La disattivazione della Vista compatta mostra tutte le associazioni di ruoli nei criteri che si applicano alla risorsa.

La pagina dei risultati contiene le seguenti informazioni:

  • Notifica di violazione del criterio: se un criterio di negazione potrebbe influire sull'accesso per la risoluzione dei problemi, lo strumento per la risoluzione dei problemi relativi ai criteri mostra una notifica.

    Questa notifica viene visualizzata nei seguenti casi:

    Se non vedi questa notifica, significa che non ci sono criteri di negazione che interessano l'accesso dell'entità.

  • Riepilogo dell'accesso: un breve riepilogo dell'accesso dell'entità, in base ai criteri di autorizzazione IAM pertinenti. Queste informazioni consentono di vedere se l'entità dispone dell'autorizzazione per la risorsa. Nell'esempio seguente, my-user@example.com ha l'autorizzazione logging.logs.view su my-project:

  • Criteri pertinenti e associazioni di ruoli: un elenco dei criteri di autorizzazione IAM applicabili alla risorsa specificata e le associazioni di ruoli in ogni criterio. Accanto a ogni associazione di ruoli è presente un'icona che indica se l'associazione di ruolo concede l'autorizzazione specificata all'entità. Fai clic sull'associazione del ruolo per visualizzarne il testo non elaborato.

    Nell'esempio seguente, l'associazione del ruolo Visualizzatore log concede l'autorizzazione:

  • Testo non elaborato delle associazioni di ruoli pertinenti: il testo non elaborato di ogni associazione di ruoli nell'elenco delle associazioni di ruoli pertinenti. Per scoprire di più sulla struttura delle associazioni di ruoli, consulta la sezione Informazioni sui criteri.

    In ogni associazione di ruoli, le righe sono evidenziate come segue:

    • Verde: le linee sono evidenziate in verde se contengono un ruolo che include l'autorizzazione specificata, se fanno riferimento all'entità specificata o se fanno riferimento a un gruppo che contiene l'entità specificata.
    • Rosso: le linee sono evidenziate in rosso se contengono un altro ruolo, fanno riferimento a un'altra entità o fanno riferimento a un gruppo che non contiene l'entità specificata.
    • Giallo: le linee sono evidenziate in giallo se contengono un ruolo i cui dettagli non sono autorizzati a visualizzare o un gruppo di cui non hai l'autorizzazione per la visualizzazione.

gcloud

Innanzitutto, assicurati che il tuo ambiente sia configurato per l'uso dello strumento per la risoluzione dei problemi relativi ai criteri.

Attiva l'API Policy Troubleshooting:

gcloud services enable policytroubleshooter.googleapis.com --project=project-id

Quindi, imposta il progetto:

gcloud config set project project-id

Dopo aver completato la configurazione, puoi utilizzare lo strumento per la risoluzione dei problemi relativi ai criteri per verificare se un utente dispone dell'autorizzazione per una risorsa. Esegui il comando seguente:

gcloud policy-troubleshoot iam resource --principal-email=email \
    --permission=permission

Ad esempio, il seguente comando controlla se foo@example.com ha l'autorizzazione resourcemanager.projects.getIamPolicy per il progetto my- project.

gcloud policy-troubleshoot iam //cloudresourcemanager.googleapis.com/projects/my-project \
    --permission=resourcemanager.projects.getIamPolicy --principal-email=foo@example.com

L'output è YAML che indica se l'utente dispone dell'autorizzazione e una spiegazione del motivo. Dovrebbe avere un aspetto simile a questo:

access: GRANTED
explainedPolicies:
- access: GRANTED
  bindingExplanations:
  - access: NOT_GRANTED
    memberships:
      serviceAccount:service-123@compute-system.iam.gserviceaccount.com: MEMBERSHIP_NOT_INCLUDED
    role: roles/compute.serviceAgent
    rolePermission: ROLE_PERMISSION_NOT_INCLUDED
  - access: GRANTED
    memberships:
      serviceAccount:service@my-project.iam.gserviceaccount.com: MEMBERSHIP_NOT_INCLUDED
      user:foo@example.com: MEMBERSHIP_INCLUDED
    role: roles/owner
    rolePermission: ROLE_PERMISSION_INCLUDED
  fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
  policy:
    bindings:
    - members:
      - serviceAccount:service-123@compute-system.iam.gserviceaccount.com
      role: roles/compute.serviceAgent
    - members:
      - serviceAccount:foo@my-project.iam.gserviceaccount.com
      - user:foo@example.com
      role: roles/owner
    etag: BwWAOWEaIEg=
    version: 1
- access: UNKNOWN_INFO_DENIED
policy: {}

API REST

Per scoprire perché un'entità ha o non ha un'autorizzazione IAM, utilizza il metodo iam.troubleshoot dello strumento per la risoluzione dei problemi relativi all'API Policy.

Prima di utilizzare uno qualsiasi dei dati della richiesta, effettua le seguenti sostituzioni:

  • email: l'indirizzo email dell'entità di cui vuoi risolvere i problemi di autorizzazioni.
  • resource: la risorsa per cui è stata concessa l'autorizzazione.
  • permission: l'autorizzazione per la risoluzione dei problemi.

Metodo HTTP e URL:

POST https://policytroubleshooter.googleapis.com/v1/iam:troubleshoot

Corpo JSON richiesta:

{
  "accessTuple": {
    "principal": "email",
    "fullResourceName": "resource",
    "permission": "permission"
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "access": "GRANTED",
  "explainedPolicies": [
    {
      "access": "GRANTED",
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "policy": {
        "version": 1,
        "etag": "BwWBUZjK9YQ=",
        "bindings": [
          {
            "role": "roles/owner",
            "members": [
              "user:foo@example.com"
            ]
          }
        ]
      },
      "bindingExplanations": [
        {
          "access": "GRANTED",
          "role": "roles/owner",
          "rolePermission": "ROLE_PERMISSION_INCLUDED",
          "rolePermissionRelevance": "HIGH",
          "memberships": {
            "key": "user:foo@example.com",
            "value": {
              "membership": "MEMBERSHIP_INCLUDED",
              "relevance": "HIGH",
            }
          },
        "relevance: HIGH",
        }
      ]
    },
    {
      "access": "UNKNOWN_INFO_DENIED",
      "policy": {}
    }
  ]
}

Risoluzione dei problemi relativi all'iscrizione al gruppo

Se il tuo criterio IAM contiene gruppi, puoi risolvere i problemi di accesso per i singoli membri del gruppo solo se hai l'autorizzazione API Google Workspace Admin groups.read. I super amministratori e gli amministratori di gruppo hanno automaticamente questa autorizzazione. Per concedere questa autorizzazione a un utente che non è un super amministratore o un amministratore del gruppo, crea un ruolo amministrativo personalizzato di Google Workspace contenente il privilegio groups.read (situato in Privilegi delle API amministrative) e concedilo all'utente.

Se non hai l'autorizzazione, il gruppo viene evidenziato in giallo nella console e un avviso indica che non sai se il gruppo include l'entità. Se utilizzi l'interfaccia a riga di comando gcloud o l'API REST, la risposta contiene UNKNOWN_INFO_DENIED o ACCESS_TO_INFO_DENIED.

Risoluzione dei problemi relativi all'iscrizione al gruppo

Risoluzione dei problemi relativi alle associazioni di ruoli condizionali

Per risolvere i problemi relativi alle associazioni di ruoli condizionali, lo strumento per la risoluzione dei problemi dei criteri richiede ulteriore contesto in merito alla richiesta. Ad esempio, per risolvere i problemi relativi alle condizioni basate su attributi data/ora, lo strumento per la risoluzione dei problemi relativi ai criteri richiede il tempo della richiesta.

Per fornire questo contesto aggiuntivo, puoi risolvere i problemi direttamente da qualsiasi log di controllo dell'attività di amministrazione o log di controllo dell'accesso ai dati. Ogni voce del log di controllo corrisponde a una richiesta a un'API Google Cloud o a un'azione che Google Cloud esegue per tuo conto. Quando esegui la risoluzione dei problemi da un log di controllo, lo strumento per la risoluzione dei problemi dei criteri riceve automaticamente informazioni aggiuntive sulla richiesta, come la data e l'ora, che consentono la risoluzione dei problemi relativi alle associazioni di ruoli condizionali.

Questa funzionalità è disponibile solo nella console.

Per risolvere i problemi relativi alle associazioni di ruoli condizionali, procedi nel seguente modo:

  1. Nella console, vai alla pagina Esplora log.

    Vai a Esplora log

  2. Se il titolo della pagina è Visualizzatore log legacy, fai clic sull'elenco a discesa Esegui l'upgrade e seleziona Esegui l'upgrade al nuovo Esplora log.

  3. Per visualizzare solo gli audit log delle attività di amministrazione e di accesso ai dati, inserisci la seguente query nel generatore di query, quindi fai clic su Esegui query:

    logName=("RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity" OR "RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Fdata_access")
    

    Sostituisci i seguenti valori:

    • RESOURCE_TYPE: il tipo di risorsa per cui stai elencando i log di controllo. Utilizza projects, folders o organizations.
    • RESOURCE_ID: l'ID della risorsa.
  4. Individua la voce del log di controllo corrispondente alla richiesta di cui vuoi risolvere i problemi. Per informazioni su come utilizzare Esplora log, per trovare voci di log specifiche, consulta Utilizzo di Esplora log.

  5. Nella colonna Riepilogo della voce di log, fai clic su IAM, quindi su Risolvi i problemi di accesso.

    Lo strumento per la risoluzione dei problemi dei criteri utilizza le informazioni nella voce di log per risolvere i problemi di accesso, quindi mostra i risultati. Il contesto aggiuntivo è riportato direttamente sotto il riepilogo dell'accesso. Per ulteriori informazioni sulla pagina dei risultati dello strumento per la risoluzione dei problemi relativi ai criteri, consulta la sezione Risolvere i problemi di accesso in questa pagina.

  6. (Facoltativo) Per risolvere i problemi di un'altra richiesta che prevede associazioni di ruoli condizionali, torna alla pagina Esplora log e ripeti i passaggi precedenti.

Passaggi successivi