Questa pagina spiega come negare l'accesso alle entità impedendo loro di utilizzare autorizzazioni specifiche di Identity and Access Management (IAM).
In IAM, impedisci l'accesso con i criteri di rifiuto. Ogni criterio di rifiuto è associato a un'organizzazione, una cartella o un progetto Google Cloud. Un criterio di negazione contiene regole di negazione, che identificano le entità ed elencano le autorizzazioni che le entità non possono utilizzare.
I criteri di negazione sono separati dai criteri di autorizzazione, noti anche come criteri IAM. Un criterio di autorizzazione fornisce l'accesso alle risorse concedendo ruoli IAM alle entità.
Puoi gestire i criteri di rifiuto con l'interfaccia a riga di comando di Google Cloud o l'API REST IAM.v2beta
.
Prima di iniziare
Attiva IAM API.
Leggi la panoramica dei criteri di rifiuto.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire i criteri di rifiuto, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'organizzazione:
-
Per visualizzare i criteri di rifiuto:
Revisore criteri di rifiuto (
roles/iam.denyReviewer
) -
Per visualizzare, creare, aggiornare ed eliminare i criteri di rifiuto:
Rifiuta Amministratore (
roles/iam.denyAdmin
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestione dell'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i criteri di rifiuto. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
-
Per visualizzare i criteri di rifiuto:
-
iam.denypolicies.get
-
iam.denypolicies.list
-
-
Per creare, aggiornare ed eliminare i criteri di rifiuto:
-
iam.denypolicies.create
-
iam.denypolicies.delete
-
iam.denypolicies.get
-
iam.denypolicies.update
-
Potresti anche essere in grado di ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Identifica le autorizzazioni da rifiutare
Prima di creare un criterio di negazione, devi decidere quali autorizzazioni negare e a quali entità negare.
Puoi negare un sottoinsieme di tutte le autorizzazioni IAM. Per un elenco delle autorizzazioni che puoi negare, consulta le autorizzazioni supportate nei criteri di rifiuto.
I criteri di rifiuto vengono gestiti con l'API REST v2beta
, che richiede un formato speciale per i nomi delle autorizzazioni. Ad esempio, l'autorizzazione per creare un ruolo personalizzato IAM è denominata come segue:
- API
v1
:iam.roles.create
- API
v2beta
:iam.googleapis.com/roles.create
Identificare il punto di collegamento
Ogni criterio di rifiuto è associato a un'organizzazione, a una cartella o a un progetto. Per lavorare con i criteri di rifiuto, è necessario un identificatore per la risorsa a cui è associato il criterio di negazione, chiamato punto di collegamento. Questo identificatore utilizza uno dei formati riportati nella seguente tabella:
Formato dei punti allegati | |
---|---|
Organizzazione |
Esempio per l'interfaccia a riga di comando gcloud:
Esempio per l'API REST: |
Cartella |
Esempio per l'interfaccia a riga di comando gcloud:
Esempio per l'API REST: |
Progetto |
Esempio per l'interfaccia a riga di comando gcloud:
Esempio per l'API REST: |
Crea un criterio di negazione
Puoi aggiungere criteri di rifiuto a organizzazioni, cartelle e progetti. Ognuna di queste risorse può avere fino a 5 criteri di negazione.
I criteri di negazione contengono regole di negazione, che specificano quanto segue:
- Le autorizzazioni da rifiutare.
- Le entità a cui non sono concesse le autorizzazioni.
(Facoltativo) Entità che sono esenti dal rifiuto delle autorizzazioni.
Ad esempio, puoi negare un'autorizzazione a un gruppo, ma escludere utenti specifici che appartengono a tale gruppo.
Facoltativo: un'espressione della condizione che specifica quando le entità non possono utilizzare le autorizzazioni in base ai tag della risorsa.
I criteri di rifiuto vengono ereditati dalla gerarchia delle risorse. Ad esempio, se neghi un'autorizzazione a livello di organizzazione, questa viene negata anche alle cartelle e ai progetti al suo interno e alle risorse specifiche del servizio all'interno di ciascun progetto.
I criteri di negazione sostituiscono i criteri di autorizzazione. Se a un'entità viene concesso un ruolo che contiene un'autorizzazione specifica, ma un criterio di negazione indica che l'entità non può utilizzare tale autorizzazione, l'entità non può utilizzare l'autorizzazione.
gcloud
Per creare un criterio di negazione per una risorsa, inizia creando un file JSON che contenga il criterio. Una norma di negazione utilizza il seguente formato:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Specifica i valori seguenti:
POLICY_NAME
: il nome visualizzato della norma di negazione.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: le regole di negazione nel criterio. Ogni regola di negazione può contenere questi campi:-
deniedPermissions
: un elenco di autorizzazioni che gli entità specificate non possono utilizzare. Le autorizzazioni devono essere supportate nei criteri di rifiuto. -
deniedPrincipals
: un elenco di entità che non possono utilizzare le autorizzazioni specificate. Utilizza il formato APIv2beta
per gli identificatori principali. -
exceptionPrincipals
: facoltativo. Un elenco di entità che possono utilizzare le autorizzazioni specificate, anche se tali entità sono incluse indeniedPrincipals
. Ad esempio, puoi utilizzare questo campo per fare un'eccezione per utenti specifici che appartengono a un gruppo negato. Utilizza il formato APIv2beta
per gli identificatori principali. -
denialCondition
: facoltativo. Un'espressione di condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Contiene i seguenti campi:-
expression
: un'espressione della condizione che utilizza la sintassi del linguaggio Common Expression Language (CEL). L'espressione deve utilizzare le funzioni CEL per valutare i tag di risorse. Non sono supportati altri operatori e funzioni. -
title
: facoltativo. Un breve riepilogo dello scopo della condizione. -
description
: facoltativo. Una descrizione più lunga della condizione.
-
Per esempi di regole di negazione, vedi Casi d'uso comuni.
-
Ad esempio, il seguente criterio di negazione contiene una regola di negazione, che nega un'autorizzazione per l'utente lucian@example.com
:
{
"displayName": "My deny policy.",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://goog/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
Successivamente, esegui il comando gcloud beta iam policies create
:
gcloud beta iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Specifica i valori seguenti:
-
POLICY_ID
: l'identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore per la risorsa a cui è associato il criterio di rifiuto. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. -
POLICY_FILE
: il percorso del file JSON che contiene il criterio di negazione.
Per impostazione predefinita, se il comando ha esito positivo, non verrà stampato alcun output. Per stampare una risposta dettagliata, aggiungi il flag --format=json
al comando.
Ad esempio, il seguente comando crea un criterio di rifiuto denominato my-deny-policy
per il progetto my-project
, utilizzando un file denominato policy.json
:
gcloud beta iam policies create my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
REST
Il metodo
policies.createPolicy
crea un criterio di negazione per una risorsa.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. POLICY_ID
: un identificatore per la norma di negazione.POLICY_NAME
: il nome visualizzato della norma di rifiuto.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: le regole di negazione nel criterio. Ogni regola di negazione può contenere questi campi:-
deniedPermissions
: un elenco di autorizzazioni che gli entità specificate non possono utilizzare. Le autorizzazioni devono essere supportate nei criteri di rifiuto. -
deniedPrincipals
: un elenco di entità che non possono utilizzare le autorizzazioni specificate. Utilizza il formato APIv2beta
per gli identificatori principali. -
exceptionPrincipals
: facoltativo. Un elenco di entità che possono utilizzare le autorizzazioni specificate, anche se tali entità sono incluse indeniedPrincipals
. Ad esempio, puoi utilizzare questo campo per fare un'eccezione per utenti specifici che appartengono a un gruppo negato. Utilizza il formato APIv2beta
per gli identificatori principali. -
denialCondition
: facoltativo. Un'espressione di condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Contiene i seguenti campi:-
expression
: un'espressione della condizione che utilizza la sintassi del linguaggio Common Expression Language (CEL). L'espressione deve utilizzare le funzioni CEL per valutare i tag di risorse. Non sono supportati altri operatori e funzioni. -
title
: facoltativo. Un breve riepilogo dello scopo della condizione. -
description
: facoltativo. Una descrizione più lunga della condizione.
-
Per esempi di regole di negazione, vedi Casi d'uso comuni.
-
URL e metodo HTTP:
POST https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID
Corpo JSON della richiesta:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2beta.PolicyOperationMetadata", "createTime": "2021-09-28T19:06:12.455151Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2beta.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-09-28T19:06:12.455151Z", "updateTime": "2021-09-28T22:26:21.968687Z" "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
La risposta identifica un'operazione a lunga esecuzione. Puoi monitorare lo stato dell'operazione a lunga esecuzione per sapere quando viene completata. Per maggiori dettagli, consulta Verificare lo stato di un'operazione a lunga esecuzione in questa pagina.
Elenca criteri di rifiuto
Una risorsa può avere fino a 5 criteri di negazione. Puoi elencare tutti i criteri di rifiuto associati a una risorsa, quindi visualizzare ogni criterio di rifiuto per vedere le regole di negazione in ogni criterio.
gcloud
Per elencare i criteri di rifiuto per una risorsa, esegui il comando gcloud beta iam policies list
:
gcloud beta iam policies list \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Specifica il valore seguente:
-
ATTACHMENT_POINT
: un identificatore per la risorsa a cui è associato il criterio di rifiuto. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina.
Ad esempio, i seguenti elenchi di comandi negano i criteri collegati a un'organizzazione il cui ID numerico è 123456789012
:
gcloud beta iam policies list \
--attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \
--kind=denypolicies \
--format=json
REST
Il metodo policies.listPolicies
elenca i criteri di rifiuto per una risorsa.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina.
URL e metodo HTTP:
GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "policies": [ { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "createTime": "2021-09-28T19:06:12.455151Z", "updateTime": "2021-09-28T22:26:21.968687Z" }, { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-2", "uid": "8465d710-ea20-0a08-d92c-b2a3ebf766ab", "kind": "DenyPolicy", "displayName": "My second deny policy.", "createTime": "2021-10-05T19:21:53.595455Z", "updateTime": "2021-10-05T19:21:53.595455Z" }, { "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1067607927478/denypolicies/test-policy-3", "uid": "ee9f7c2f-7e8c-b05c-d4e5-e03bfb2954e0", "kind": "DenyPolicy", "displayName": "My third deny policy.", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z" } ] }
Visualizza un criterio di negazione
Puoi visualizzare un criterio di negazione per vedere le regole di negazione che contiene, comprese le autorizzazioni negate e le entità che non possono utilizzare tali autorizzazioni.
gcloud
Per ottenere il criterio di negazione per una risorsa, esegui il comando gcloud beta iam policies get
:
gcloud beta iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Specifica i valori seguenti:
-
POLICY_ID
: l'identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore per la risorsa a cui è associato il criterio di rifiuto. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina.
Ad esempio, il seguente comando recupera il criterio di rifiuto denominato my-deny-policy
per il progetto my-project
e lo salva in un file denominato policy.json
:
gcloud beta iam policies get my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--format=json \
> ./policy.json
REST
Il metodo
policies.get
riceve un criterio di negazione per una risorsa.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. POLICY_ID
: un identificatore per la norma di negazione.
URL e metodo HTTP:
GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Aggiorna un criterio di rifiuto
Dopo aver creato un criterio di negazione, puoi aggiornare le regole di negazione che contiene, nonché il nome visualizzato.
Per aggiornare un criterio di negazione, utilizza il pattern read-Modify-Write:
- Leggi la versione corrente del criterio.
- Modifica le informazioni nel criterio in base alle tue esigenze.
- Scrivi la norma aggiornata.
Leggi il criterio di negazione
gcloud
Per ottenere il criterio di negazione per una risorsa, esegui il comando gcloud beta iam policies get
:
gcloud beta iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Specifica i valori seguenti:
-
POLICY_ID
: l'identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore per la risorsa a cui è associato il criterio di rifiuto. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina.
Ad esempio, il seguente comando recupera il criterio di rifiuto denominato my-deny-policy
per il progetto my-project
e lo salva in un file denominato policy.json
:
gcloud beta iam policies get my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--format=json \
> ./policy.json
REST
Il metodo
policies.get
riceve un criterio di negazione per una risorsa.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. POLICY_ID
: un identificatore per la norma di negazione.
URL e metodo HTTP:
GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Modifica il criterio di negazione
Per modificare il criterio di negazione, devi apportare delle modifiche alla copia del criterio che hai precedentemente letto da IAM. Puoi aggiornare il nome visualizzato oppure aggiungere, modificare o rimuovere le regole di negazione. Le modifiche non hanno effetto finché non crei il criterio aggiornato.
Ad esempio, potresti aggiungere un'autorizzazione a una regola di negazione esistente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Scrivi il criterio di rifiuto aggiornato
Dopo aver modificato il criterio di rifiuto localmente, devi scrivere il criterio di negazione aggiornato in IAM.
Ogni criterio di negazione contiene un campo etag
che identifica la versione del criterio.
Il valore etag
cambia ogni volta che aggiorni il criterio. Quando scrivi il criterio aggiornato, etag
nella richiesta deve corrispondere all'elemento etag
corrente
archiviato in IAM. Se i valori non corrispondono, la richiesta ha esito negativo. Questa funzionalità aiuta a impedire che le modifiche simultanee si sovrappongano.
gcloud
Per aggiornare il criterio di negazione per una risorsa, esegui il comando gcloud beta iam policies update
:
gcloud beta iam policies update POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Specifica i valori seguenti:
-
POLICY_ID
: l'identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore per la risorsa a cui è associato il criterio di rifiuto. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. -
POLICY_FILE
: il percorso del file JSON che contiene il criterio di negazione.
Per impostazione predefinita, se il comando ha esito positivo, non verrà stampato alcun output. Per stampare una risposta dettagliata, aggiungi il flag --format=json
al comando.
Ad esempio, il seguente comando aggiorna un criterio di rifiuto denominato my-deny-policy
per il progetto my-project
, utilizzando un file denominato policy.json
:
gcloud beta iam policies update my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
REST
Il metodo
policies.update
aggiorna un criterio di negazione.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. POLICY_ID
: un identificatore per la norma di negazione.-
POLICY
: le norme di negazione aggiornate.Ad esempio, per aggiungere un'autorizzazione al criterio mostrato nel passaggio precedente, sostituisci
POLICY
con il seguente:{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
URL e metodo HTTP:
PUT https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Corpo JSON della richiesta:
POLICY
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8b2d0ab2daf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2alpha.PolicyOperationMetadata", "createTime": "2021-10-05T22:26:21.968687Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2alpha.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "uid": "6665c437-a3b2-a018-6934-54dd16d3426e", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTgxNTIxNDE3NTYxNjQxODYxMTI=", "createTime": "2021-10-05T19:22:26.770543Z", "updateTime": "2021-10-05T22:26:21.968687Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] } }
La risposta identifica un'operazione a lunga esecuzione. Puoi monitorare lo stato dell'operazione a lunga esecuzione per sapere quando viene completata. Per maggiori dettagli, consulta Verificare lo stato di un'operazione a lunga esecuzione in questa pagina.
Elimina un criterio di negazione
Se non vuoi più applicare le regole in un criterio di negazione, puoi eliminare il criterio di negazione.
Facoltativamente, puoi specificare il etag
per la versione del criterio che stai eliminando. Se specifichi l'elemento etag
, deve corrispondere all'elemento etag
memorizzato
da IAM; se i valori non corrispondono, la richiesta non va a buon fine. Puoi utilizzare
questa funzionalità per assicurarti di eliminare il criterio previsto, anziché
una versione aggiornata del criterio.
Se ometti il etag
dalla richiesta, IAM elimina il criterio in modo incondizionato.
gcloud
Per eliminare un criterio di negazione da una risorsa, esegui il comando gcloud beta iam policies delete
:
gcloud beta iam policies delete POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies
Specifica i valori seguenti:
-
POLICY_ID
: l'identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore per la risorsa a cui è associato il criterio di rifiuto. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina.
Facoltativamente, puoi aggiungere il flag --etag=ETAG
. Sostituisci
ETAG
con il valore etag
attuale del criterio di negazione.
Per impostazione predefinita, se il comando ha esito positivo, non verrà stampato alcun output. Per stampare una risposta dettagliata, aggiungi il flag --format=json
al comando.
Ad esempio, il seguente comando elimina una norma di negazione denominata my-deny-policy
dal progetto my-project
:
gcloud beta iam policies delete my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies
REST
Il metodo
policies.delete
elimina un criterio di negazione da una risorsa.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. POLICY_ID
: un identificatore per la norma di negazione.-
ETAG
: facoltativo. Identificatore della versione del criterio. Se presente, questo valore deve corrispondere al valoreetag
attuale per il criterio.
URL e metodo HTTP:
DELETE https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?etag=ETAG
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/8223fe308bf1ff01", "metadata": { "@type": "type.googleapis.com/google.iam.v2beta.PolicyOperationMetadata", "createTime": "2021-10-05T19:45:00.133311Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2beta.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2021-09-28T19:06:12.455151Z", "updateTime": "2021-10-05T19:45:00.133311Z", "deleteTime": "2021-10-05T19:45:00.133311Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
La risposta identifica un'operazione a lunga esecuzione. Puoi monitorare lo stato dell'operazione a lunga esecuzione per sapere quando viene completata. Per maggiori dettagli, consulta Verificare lo stato di un'operazione a lunga esecuzione in questa pagina.
Controllare lo stato di un'operazione a lunga esecuzione
Quando utilizzi l'API REST, qualsiasi metodo che modifica un criterio di negazione restituisce un'operazione a lunga esecuzione (LRO). L'operazione a lunga esecuzione monitora lo stato della richiesta e indica se la modifica al criterio è stata completata. Puoi eseguire un sondaggio per l'operazione a lunga esecuzione per monitorarne lo stato.
Per eseguire il polling di un'operazione a lunga esecuzione, inizia recuperando il relativo stato attuale:
REST
Il metodo policies.operations.get
restituisce lo stato di un'operazione a lunga esecuzione.
Prima di utilizzare qualsiasi dato della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore codificato tramite URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, vedi Identificare il punto di allegato in questa pagina. -
OPERATION_ID
: l'identificatore dell'operazione. Riceverai questo identificatore nella risposta alla richiesta originale come parte del nome dell'operazione. Utilizza il valore esadecimale alla fine del nome dell'operazione. Ad esempio,89cb3e508bf1ff01
.
URL e metodo HTTP:
GET https://iam.googleapis.com/v2beta/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "done": true }
Se il campo done
dell'operazione non è presente, continua a monitorarne lo stato ricevendo ripetutamente l'operazione. Utilizza il backoff esponenziale troncato per introdurre un ritardo tra ciascuna richiesta. Se il campo done
è impostato su true
, l'operazione è completata
e puoi interromperla.
Passaggi successivi
- Identifica le autorizzazioni supportate dai criteri di rifiuto.
- Utilizza il formato degli identificatori principali nei criteri di rifiuto.
- Scopri come risolvere i problemi di accesso con i criteri di rifiuto.
- Scopri di più su come negare l'accesso alle entità.