Questa pagina spiega come negare l'accesso alle entità impedendo loro di utilizzare specifiche autorizzazioni di Identity and Access Management (IAM).
In IAM, impedisci l'accesso con i criteri di negazione. 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 rifiuto sono separati dai criteri di autorizzazione, noti anche come criteri IAM. Un criterio di autorizzazione fornisce accesso alle risorse concedendo ruoli IAM alle entità.
Puoi gestire i criteri di negazione con Google Cloud CLI o l'API REST v2
di IAM.
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 negazione, chiedi all'amministratore di concederti i seguenti ruoli IAM nell'organizzazione:
-
Per visualizzare i criteri di rifiuto:
recensore negato (
roles/iam.denyReviewer
) -
Per visualizzare, creare, aggiornare ed eliminare i criteri di rifiuto:
Nega amministratore (
roles/iam.denyAdmin
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i criteri di rifiuto. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
-
Per visualizzare i criteri di rifiuto:
-
iam.denypolicies.get
-
iam.denypolicies.list
-
-
Per creare, aggiornare ed eliminare i criteri di negazione:
-
iam.denypolicies.create
-
iam.denypolicies.delete
-
iam.denypolicies.get
-
iam.denypolicies.update
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Identifica le autorizzazioni da negare
Prima di creare un criterio di negazione, devi decidere quali autorizzazioni vuoi negare e quali entità devono essere negate.
Puoi rifiutare un sottoinsieme di tutte le autorizzazioni IAM. Per un elenco delle autorizzazioni che puoi negare, consulta la pagina Autorizzazioni supportate nei criteri di negazione.
Puoi gestire i criteri di negazione con l'API REST v2
, che richiede un formato speciale per i nomi delle autorizzazioni. Ad esempio, l'autorizzazione per creare un ruolo IAM personalizzato è denominata come segue:
- API
v1
:iam.roles.create
- API
v2
:iam.googleapis.com/roles.create
Identificare il punto di attacco
Ogni criterio di rifiuto viene associato a un'organizzazione, una cartella o 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 indicati nella seguente tabella:
Formato del punto di collegamento | |
---|---|
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 negazione a organizzazioni, cartelle e progetti. Ognuna di queste risorse può avere fino a 5 criteri di rifiuto.
I criteri di rifiuto contengono regole di negazione che specificano quanto segue:
- Le autorizzazioni da negare.
- Le entità a cui sono rifiutate queste autorizzazioni.
Facoltativo: entità esenti dal rifiuto delle autorizzazioni.
Ad esempio, puoi negare un'autorizzazione a un gruppo, ma escludere utenti specifici che appartengono a quel 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 negazione vengono ereditati dalla gerarchia delle risorse. Ad esempio, se neghi un'autorizzazione a livello di organizzazione, questa verrà negata anche per le cartelle e i progetti all'interno dell'organizzazione, nonché per le risorse specifiche del servizio all'interno di ogni progetto.
I criteri di negazione hanno priorità sui criteri di autorizzazione. Se a un'entità viene concesso un ruolo contenente un'autorizzazione specifica, ma un criterio di negazione indica che l'entità non può utilizzare tale autorizzazione, non può utilizzare l'autorizzazione.
gcloud CLI
Per creare un criterio di negazione per una risorsa, inizia creando un file JSON contenente il criterio. Un criterio di negazione utilizza il seguente formato:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Fornisci i seguenti valori:
POLICY_NAME
: nome visualizzato per il criterio di negazione.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: le regole di negazione del criterio. Ogni regola di negazione può contenere i seguenti campi:-
deniedPermissions
: un elenco di autorizzazioni che le entità specificate non possono utilizzare. Le autorizzazioni devono essere supportate nei criteri di negazione. -
deniedPrincipals
: un elenco di entità che non possono utilizzare le autorizzazioni specificate. Utilizza il formato APIv2
per gli identificatori principali. -
exceptionPrincipals
: facoltativo. Un elenco di entità che possono utilizzare le autorizzazioni specificate, anche se incluse indeniedPrincipals
. Ad esempio, puoi utilizzare questo campo per fare un'eccezione per utenti specifici che appartengono a un gruppo negato. Utilizza il formato APIv2
per gli identificatori principali. -
denialCondition
: facoltativo. Un'espressione della condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Contiene i seguenti campi:-
expression
: un'espressione di condizione che utilizza la sintassi CEL (Common Expression Language). L'espressione deve utilizzare le funzioni CEL per valutare i tag delle 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, consulta Casi d'uso comuni.
-
Ad esempio, il seguente criterio di negazione contiene una regola di negazione, che nega un'autorizzazione all'utente lucian@example.com
:
{
"displayName": "My deny policy.",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principal://goog/subject/lucian@example.com"
],
"deniedPermissions": [
"iam.googleapis.com/roles.create"
]
}
}
]
}
Quindi, esegui il comando gcloud iam policies create
:
gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Fornisci i seguenti valori:
-
POLICY_ID
: identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore della risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. -
POLICY_FILE
: il percorso del file JSON contenente il criterio di negazione.
Per impostazione predefinita, se questo comando ha esito positivo, non stampa alcun output. Per stampare una risposta dettagliata, aggiungi il flag --format=json
al comando.
Ad esempio, il seguente comando crea un criterio di negazione denominato my-deny-policy
per il progetto my-project
utilizzando un file denominato policy.json
:
gcloud iam policies create my-deny-policy \
--attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \
--kind=denypolicies \
--policy-file=policy.json
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, vedi Comandi Terraform di base. Per saperne di più, consulta la documentazione di riferimento del provider Terraform.
REST
Il metodo
policies.createPolicy
crea un criterio di negazione per una risorsa.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: identificatore del criterio di negazione.POLICY_NAME
: il nome visualizzato per la norma di negazione.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: le regole di negazione del criterio. Ogni regola di negazione può contenere i seguenti campi:-
deniedPermissions
: un elenco di autorizzazioni che le entità specificate non possono utilizzare. Le autorizzazioni devono essere supportate nei criteri di negazione. -
deniedPrincipals
: un elenco di entità che non possono utilizzare le autorizzazioni specificate. Utilizza il formato APIv2
per gli identificatori principali. -
exceptionPrincipals
: facoltativo. Un elenco di entità che possono utilizzare le autorizzazioni specificate, anche se incluse indeniedPrincipals
. Ad esempio, puoi utilizzare questo campo per fare un'eccezione per utenti specifici che appartengono a un gruppo negato. Utilizza il formato APIv2
per gli identificatori principali. -
denialCondition
: facoltativo. Un'espressione della condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Contiene i seguenti campi:-
expression
: un'espressione di condizione che utilizza la sintassi CEL (Common Expression Language). L'espressione deve utilizzare le funzioni CEL per valutare i tag delle 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, consulta Casi d'uso comuni.
-
Metodo e URL HTTP:
POST https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID
Testo JSON 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.v2.PolicyOperationMetadata", "createTime": "2022-06-28T19:06:12.455151Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.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": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-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 è completata. Per maggiori dettagli, vedi Controllare lo stato di un'operazione a lunga esecuzione in questa pagina.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
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 CLI
Per elencare i criteri di negazione per una risorsa, esegui il comando gcloud iam policies list
:
gcloud iam policies list \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Fornisci il seguente valore:
-
ATTACHMENT_POINT
: un identificatore della risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina.
Ad esempio, i seguenti elenchi di comandi negano i criteri associati a un'organizzazione il cui ID numerico è 123456789012
:
gcloud iam policies list \
--attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \
--kind=denypolicies \
--format=json
REST
Il metodo
policies.listPolicies
elenca i criteri di negazione per una risorsa.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina.
Metodo e URL HTTP:
GET https://iam.googleapis.com/v2/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": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-06-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": "2022-06-05T19:21:53.595455Z", "updateTime": "2022-06-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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z" } ] }
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Visualizza un criterio di negazione
Puoi visualizzare un criterio di negazione per visualizzare le regole di negazione che contiene, incluse le autorizzazioni negate e le entità che non possono utilizzarle.
gcloud CLI
Per ottenere il criterio di negazione per una risorsa, esegui il comando gcloud iam policies get
:
gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Fornisci i seguenti valori:
-
POLICY_ID
: identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore della risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina.
Ad esempio, il seguente comando ottiene il criterio di negazione denominato my-deny-policy
per il progetto my-project
e lo salva in un file denominato policy.json
:
gcloud 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
ottiene un criterio di negazione per una risorsa.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: identificatore del criterio di negazione.
Metodo e URL HTTP:
GET https://iam.googleapis.com/v2/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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Aggiorna un criterio di negazione
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 attuale del criterio.
- Modifica le informazioni nelle norme in base alle tue esigenze.
- Scrivi il criterio aggiornato.
Leggi le norme di negazione
gcloud CLI
Per ottenere il criterio di negazione per una risorsa, esegui il comando gcloud iam policies get
:
gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Fornisci i seguenti valori:
-
POLICY_ID
: identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore della risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina.
Ad esempio, il seguente comando ottiene il criterio di negazione denominato my-deny-policy
per il progetto my-project
e lo salva in un file denominato policy.json
:
gcloud 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
ottiene un criterio di negazione per una risorsa.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: identificatore del criterio di negazione.
Metodo e URL HTTP:
GET https://iam.googleapis.com/v2/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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Modifica il criterio di negazione
Per modificare il criterio di negazione, devi modificare la copia del criterio letto in precedenza da IAM. Puoi aggiornare il nome visualizzato oppure aggiungere, modificare o rimuovere le regole di negazione. Le modifiche verranno applicate solo dopo aver scritto 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 le norme di negazione aggiornate
Dopo aver modificato il criterio di negazione localmente, devi scrivere il criterio di negazione aggiornato in IAM.
Ogni criterio di negazione contiene un campo etag
che identifica la versione dei criteri.
etag
cambia ogni volta che aggiorni il criterio. Quando scrivi il criterio aggiornato, la richiesta di etag
deve corrispondere all'elemento etag
attualmente archiviato in IAM. Se i valori non corrispondono, la richiesta avrà esito negativo. Questa funzionalità contribuisce a evitare che le modifiche simultanee vengano sovrascritte a vicenda.
gcloud CLI
Per aggiornare il criterio di negazione per una risorsa, esegui il comando gcloud iam policies update
:
gcloud iam policies update POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Fornisci i seguenti valori:
-
POLICY_ID
: identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore della risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. -
POLICY_FILE
: il percorso del file JSON contenente il criterio di negazione.
Per impostazione predefinita, se questo comando ha esito positivo, non stampa alcun output. Per stampare una risposta dettagliata, aggiungi il flag --format=json
al comando.
Ad esempio, il seguente comando aggiorna un criterio di negazione denominato my-deny-policy
per il progetto my-project
utilizzando un file denominato policy.json
:
gcloud 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 i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: identificatore del criterio di negazione.-
POLICY
: criterio di negazione aggiornato.Ad esempio, per aggiungere un'autorizzazione al criterio mostrato nel passaggio precedente, sostituisci
POLICY
con quanto segue:{ "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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-05T19:22:26.770543Z", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Metodo e URL HTTP:
PUT https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Testo JSON 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.v2.PolicyOperationMetadata", "createTime": "2021-10-05T22:26:21.968687Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.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": "2022-06-05T19:22:26.770543Z", "updateTime": "2022-06-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 è completata. Per maggiori dettagli, vedi Controllare lo stato di un'operazione a lunga esecuzione in questa pagina.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Eliminare 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 etag
, deve corrispondere all'elemento etag
attualmente archiviato da
IAM; se i valori non corrispondono, la richiesta avrà esito negativo. Puoi utilizzare questa funzionalità per assicurarti di eliminare il criterio previsto anziché una versione aggiornata del criterio in questione.
Se ometti etag
dalla richiesta, IAM elimina il criterio in modo incondizionato.
gcloud CLI
Per eliminare un criterio di negazione da una risorsa, esegui il comando gcloud iam policies delete
:
gcloud iam policies delete POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies
Fornisci i seguenti valori:
-
POLICY_ID
: identificatore della norma di negazione. -
ATTACHMENT_POINT
: un identificatore della risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina.
Se vuoi, puoi aggiungere il flag --etag=ETAG
. Sostituisci ETAG
con il valore corrente di etag
per il criterio di negazione.
Per impostazione predefinita, se questo comando ha esito positivo, non stampa alcun output. Per stampare una risposta dettagliata, aggiungi il flag --format=json
al comando.
Ad esempio, il seguente comando elimina un criterio di negazione denominato my-deny-policy
dal progetto my-project
:
gcloud 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 i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: identificatore del criterio di negazione.-
ETAG
: facoltativo. Identificatore della versione del criterio. Se presente, questo valore deve corrispondere all'attuale valore dietag
per il criterio.
Metodo e URL HTTP:
DELETE https://iam.googleapis.com/v2/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.v2.PolicyOperationMetadata", "createTime": "2021-10-05T19:45:00.133311Z" }, "response": { "@type": "type.googleapis.com/google.iam.v2.Policy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy", "kind": "DenyPolicy", "displayName": "My deny policy.", "etag": "MTc3NDU4MjM4OTY0MzU5MjQ5OTI=", "createTime": "2022-06-28T19:06:12.455151Z", "updateTime": "2022-07-05T19:45:00.133311Z", "deleteTime": "2022-07-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 è completata. Per maggiori dettagli, vedi Controllare lo stato di un'operazione a lunga esecuzione in questa pagina.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Go.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Java.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Node.js.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, consulta la pagina relativa alle librerie client IAM. Per saperne di più, consulta la documentazione di riferimento dell'API IAM Python.
Controllare lo stato di un'operazione a lunga esecuzione
Quando utilizzi l'API REST o le librerie client, qualsiasi metodo che modifica un criterio deny restituisce un'operazione a lunga esecuzione o LRO. L'operazione a lunga esecuzione monitora lo stato della richiesta e indica se la modifica al criterio è stata completata.
REST
Il metodo
policies.operations.get
restituisce lo stato di un'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per informazioni su come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. -
OPERATION_ID
: 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
.
Metodo e URL HTTP:
GET https://iam.googleapis.com/v2/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 eseguendo ripetutamente l'operazione. Utilizza il backoff esponenziale troncato per introdurre un ritardo tra ogni richiesta. Se il campo done
è impostato su true
, l'operazione è stata completata e puoi interromperla.
Go
Gli esempi di codice in questa pagina mostrano come attendere il completamento di un'operazione a lunga esecuzione, quindi accedere al relativo risultato.
Java
Gli esempi di codice in questa pagina mostrano come attendere il completamento di un'operazione a lunga esecuzione, quindi accedere al relativo risultato.
Node.js
Gli esempi di codice in questa pagina mostrano come attendere il completamento di un'operazione a lunga esecuzione, quindi accedere al relativo risultato.
Python
Gli esempi di codice in questa pagina mostrano come attendere il completamento di un'operazione a lunga esecuzione, quindi accedere al relativo risultato.
Passaggi successivi
- Identifica le autorizzazioni supportate nei criteri di negazione.
- Formato degli identificatori principali nelle norme di negazione.
- Scopri come risolvere i problemi di accesso relativi ai criteri di negazione.
- Scopri di più su come negare l'accesso alle entità.