Questa pagina descrive come risolvere i problemi relativi ai criteri di autorizzazione, negazione e limiti di accesso all'entità di Identity and Access Management (IAM).
Visualizza tutte le policy di autorizzazione e di negazione applicate a una risorsa
In Cloud de Confiance, le seguenti policy di autorizzazione e negazione influiscono sull'accesso a una risorsa:
- Il criterio di autorizzazione della risorsa
- I criteri di negazione della risorsa, se presenti
- I criteri di autorizzazione del progetto, della cartella e dell'organizzazione padre della risorsa, se presenti
- I criteri di negazione del progetto, della cartella e dell'organizzazione padre della risorsa, se presenti
Le policy di autorizzazione e negazione di progetti, cartelle e organizzazioni padre influenzano l'accesso a una risorsa a causa dell'ereditarietà dei criteri. Quando colleghi un criterio di autorizzazione o negazione a un progetto, una cartella o 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 negazione per un'organizzazione stabilisce che un'entità non può utilizzare un'autorizzazione specifica, l'entità non può utilizzare questa autorizzazione per nessuna risorsa all'interno dell'organizzazione. Questa regola si applica anche se le cartelle e i progetti all'interno di questa organizzazione hanno criteri di negazione più permissivi o criteri di autorizzazione che concedono l'autorizzazione all'entità.
Allo stesso modo, se un criterio di autorizzazione per un progetto concede a un'entità un'autorizzazione specifica, l'entità dispone di questa autorizzazione per qualsiasi risorsa all'interno del progetto, a condizione che non le venga negata.
L'unione di tutti questi criteri viene chiamata criterio applicabile o criterio effettivo per la risorsa.
In Cloud de Confiance, puoi ottenere un elenco di tutte le norme di autorizzazione e negazione
che influiscono sull'accesso a un progetto utilizzando il comando gcloud beta projects
get-ancestors-iam-policy con il flag --include-deny. Insieme,
queste norme costituiscono le norme applicabili al progetto. Puoi
esaminare ogni policy per vedere in che modo influisce sull'accesso dell'entità.
gcloud
Prima di utilizzare i dati dei comandi riportati di seguito, apporta le seguenti sostituzioni:
PROJECT_ID: il tuo ID progetto Cloud de Confiance . Gli ID progetto sono stringhe alfanumeriche, comemy-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 le policy di autorizzazione e negazione per il progetto, le cartelle che sono antenati del progetto e l'organizzazione. L'esempio seguente mostra le policy di autorizzazione per l'organizzazione 1234567890123 e il progetto my-project, nonché una policy di negazione per il progetto my-project:
[
{
"id": "1234567890123",
"policy": {
"bindings": [
{
"members": [
"principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/cloud-admins"
],
"role": "roles/iam.denyAdmin"
},
{
"members": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/raha@example.com"
],
"role": "roles/iam.serviceAccountAdmin"
}
],
"etag": "BwXW6Eab7TI=",
"version": 1
},
"type": "organization"
},
{
"id": "my-project",
"policy": {
"bindings": [
{
"members": [
"principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/cloud-admins"
],
"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": [
"principal://iam.googleapis.com/locations/global/workforcePools/example-pool/subject/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 concesso il ruolo Amministratore service account (roles/iam.serviceAccountAdmin) nell'organizzazione, ma il progetto ha un criterio di negazione 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 la policy di autorizzazione effettiva per una risorsa, ad esempio se la tua organizzazione non utilizza policy di negazione. In questi casi, puoi utilizzare i seguenti metodi per visualizzare la norma di autorizzazione effettiva:
Visualizza il criterio di autorizzazione IAM della risorsa nella consoleCloud de Confiance . La console Cloud de Confiance mostra automaticamente le norme effettive di ogni risorsa.
Per scoprire come visualizzare i criteri di autorizzazione IAM di una risorsa nella consoleCloud de Confiance , consulta Visualizzare l'accesso attuale.
Utilizza l'API Cloud Asset per ottenere la policy di autorizzazione effettiva della risorsa. Per scoprire di più, consulta Visualizzazione dei criteri IAM effettivi.