In questa pagina viene spiegato come negare l'accesso alle entità impedendo loro di utilizzare autorizzazioni specifiche di Identity and Access Management (IAM).
In IAM, puoi negare l'accesso con i criteri di negazione. Ogni criterio di negazione è collegato 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 non possono utilizzare.
I criteri di negazione sono separati dai criteri di autorizzazione, noti anche come criteri IAM. Un criterio di autorizzazione consente di accedere alle risorse concedendo ruoli IAM alle entità.
Puoi gestire i criteri di negazione con Google Cloud CLI o l'API REST IAM
v2
.
Prima di iniziare
Attiva IAM API.
Configurare l'autenticazione.
Select the tab for how you plan to use the samples on this page:
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
Per utilizzare gli esempi di Terraform in questa pagina in un ambiente dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Vai
Per utilizzare gli Go esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Java
Per utilizzare gli Java esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Node.js
Per utilizzare gli Node.js esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
Python
Per utilizzare gli Python esempi in questa pagina in una località dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Per ulteriori informazioni, vedi Configurare l'autenticazione per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Leggi la panoramica dei criteri di negazione.
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 negazione:
Revisore criteri di negazione (
roles/iam.denyReviewer
) -
Per visualizzare, creare, aggiornare ed eliminare i criteri di rifiuto:
Amministratore rifiuto (
roles/iam.denyAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i criteri di negazione. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per gestire i criteri di negazione sono necessarie le seguenti autorizzazioni:
-
Per visualizzare i criteri di negazione:
-
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 i ruoli personalizzati o altri ruoli predefiniti.
Identifica le autorizzazioni da negare
Prima di creare un criterio di negazione, devi decidere quali autorizzazioni negare e a quali entità devono essere negate.
È possibile negare solo alcune autorizzazioni. Per un elenco delle autorizzazioni che puoi negare, vedi Autorizzazioni supportate nei criteri di negazione.
In alcuni casi, puoi utilizzare anche i gruppi di autorizzazioni per negare insiemi di autorizzazioni. Per saperne di più, consulta Gruppi di autorizzazioni.
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
Identifica il punto di collegamento
Ogni criterio di negazione è associato a un'organizzazione, una cartella o un progetto. Se collegati a una di queste risorse, i criteri di negazione vengono ereditati da tutte le risorse di livello inferiore nel progetto, nella cartella o nell'organizzazione. Per utilizzare i criteri di negazione, devi disporre di 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 del punto di attacco Organizzazione cloudresourcemanager.googleapis.com/organizations/ORG_ID
SostituisciORG_ID
con l'ID organizzazione numerico. Per l'API REST, esegui la codifica URL dell'intero valore.Esempio per gcloud CLI:
cloudresourcemanager.googleapis.com/organizations/123456789012
Esempio per l'API REST:
cloudresourcemanager.googleapis.com%2Forganizations%2F123456789012
Cartella cloudresourcemanager.googleapis.com/folders/FOLDER_ID
SostituisciFOLDER_ID
con l'ID cartella numerico. Per l'API REST, esegui la codifica URL dell'intero valore.Esempio per gcloud CLI:
cloudresourcemanager.googleapis.com/folders/987654321098
Esempio per l'API REST:
cloudresourcemanager.googleapis.com%2Ffolders%2F987654321098
Progetto cloudresourcemanager.googleapis.com/projects/PROJECT_ID
SostituisciPROJECT_ID
con l'ID progetto alfanumerico o numerico. Per l'API REST, esegui la codifica URL dell'intero valore.Esempio per gcloud CLI:
cloudresourcemanager.googleapis.com/projects/my-project
Esempio per l'API REST:
cloudresourcemanager.googleapis.com%2Fprojects%2Fmy-project
Crea un criterio di negazione
Puoi aggiungere criteri di negazione a organizzazioni, cartelle e progetti. Ogni risorsa può avere fino a 500 criteri di negazione.
I criteri di negazione contengono regole di negazione che specificano quanto segue:
- Le autorizzazioni da negare.
- Le entità a cui sono negate queste autorizzazioni.
(Facoltativo) Entità esenti dal rifiuto delle autorizzazioni.
Ad esempio, puoi negare un'autorizzazione per un gruppo, ma escludere utenti specifici che appartengono a quel gruppo.
(Facoltativo) Un'espressione di condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Nei criteri di negazione, le espressioni di condizioni possono utilizzare solo funzioni per i tag di risorse, mentre altre funzioni e operatori non sono supportati.
Ogni risorsa può avere fino a 500 regole di negazione in tutti i criteri di negazione associati.
I criteri di negazione vengono ereditati tramite la 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 e per le risorse specifiche del servizio all'interno di ogni progetto.
I criteri di negazione sostituiscono quelli 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 l'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. 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
: il nome visualizzato del criterio di negazione.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: le regole di negazione nel 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.In alcuni casi, puoi utilizzare anche i gruppi di autorizzazioni per negare insiemi di autorizzazioni. Per maggiori informazioni, consulta la sezione Gruppi di autorizzazioni.
-
deniedPrincipals
: un elenco di entità che non possono utilizzare le autorizzazioni specificate. Utilizza il formato dell'APIv2
per gli identificatori delle entità. -
exceptionPrincipals
: facoltativo. Un elenco di entità che possono utilizzare le autorizzazioni specificate, anche se sono incluse indeniedPrincipals
. Ad esempio, puoi utilizzare questo campo per creare un'eccezione per utenti specifici che appartengono a un gruppo negato. Utilizza il formato dell'APIv2
per gli identificatori delle entità. -
denialCondition
: facoltativo. Un'espressione di condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Contiene i seguenti campi:-
expression
: un'espressione di condizione che utilizza la sintassi Common Expression Language (CEL). L'espressione deve utilizzare le funzioni CEL per la valutazione dei tag delle risorse. Non sono supportati altri operatori e funzioni. -
title
: facoltativo. Un breve riassunto 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
[email protected]
:{ "displayName": "My deny policy.", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/[email protected]" ], "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
: l'identificatore del criterio 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 che contiene il criterio di negazione.
Per impostazione predefinita, se questo comando ha esito positivo, non viene stampato 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 progettomy-project
, utilizzando un file denominatopolicy.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, consulta Comandi Terraform di base. Per maggiori informazioni, consulta la documentazione di riferimento del provider Terraform.
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
policies.createPolicy
crea un criterio di negazione per una risorsa.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: un identificatore del criterio di negazione.POLICY_NAME
: il nome visualizzato del criterio di negazione.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: le regole di negazione nel 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.In alcuni casi, puoi utilizzare anche i gruppi di autorizzazioni per negare insiemi di autorizzazioni. Per maggiori informazioni, consulta la sezione Gruppi di autorizzazioni.
-
deniedPrincipals
: un elenco di entità che non possono utilizzare le autorizzazioni specificate. Utilizza il formato dell'APIv2
per gli identificatori delle entità. -
exceptionPrincipals
: facoltativo. Un elenco di entità che possono utilizzare le autorizzazioni specificate, anche se sono incluse indeniedPrincipals
. Ad esempio, puoi utilizzare questo campo per creare un'eccezione per utenti specifici che appartengono a un gruppo negato. Utilizza il formato dell'APIv2
per gli identificatori delle entità. -
denialCondition
: facoltativo. Un'espressione di condizione che specifica quando le entità non possono utilizzare le autorizzazioni. Contiene i seguenti campi:-
expression
: un'espressione di condizione che utilizza la sintassi Common Expression Language (CEL). L'espressione deve utilizzare le funzioni CEL per la valutazione dei tag delle risorse. Non sono supportati altri operatori e funzioni. -
title
: facoltativo. Un breve riassunto dello scopo della condizione. -
description
: facoltativo. Una descrizione più lunga della condizione.
-
Per esempi di regole di negazione, consulta Casi d'uso comuni.
-
Metodo HTTP e URL:
POST https://iam.googleapis.com/v2/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 di queste 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/[email protected]" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
La risposta identifica un'operazione a lunga esecuzione. Puoi monitorare lo stato dell'operazione a lunga esecuzione per scoprire quando è stata completata. Per maggiori dettagli, consulta Controllare lo stato di un'operazione a lunga esecuzione in questa pagina.
Elenca criteri di rifiuto
Una risorsa può avere più criteri di negazione. Puoi elencare tutti i criteri di negazione associati a una risorsa, quindi visualizzare ogni criterio di negazione per vedere le regole di negazione in ogni criterio.
gcloud
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
Specifica 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, il seguente elenco di comandi elenca i criteri di negazione associati a un'organizzazione il cui ID numerico è
123456789012
:gcloud iam policies list \ --attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \ --kind=denypolicies \ --format=json
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
policies.listPolicies
elenca i criteri di negazione per una risorsa.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies
Per inviare la richiesta, espandi una di queste 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" } ] }
Visualizza un criterio di negazione
Puoi visualizzare un criterio di negazione per vedere le regole di negazione che contiene, incluse le autorizzazioni negate e le entità che non possono utilizzare queste autorizzazioni.
gcloud
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
: l'identificatore del criterio 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 recupera il criterio di negazione denominato
my-deny-policy
per il progettomy-project
e lo salva in un file denominatopolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
policies.get
riceve un criterio di negazione per una risorsa.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: un identificatore del criterio di negazione.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Per inviare la richiesta, espandi una di queste 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/[email protected]" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Aggiorna un criterio di negazione
Dopo aver creato un criterio di negazione, puoi aggiornare le regole di negazione che contiene e il relativo nome visualizzato.
Per aggiornare un criterio di negazione, utilizza il pattern read-modify-write:
- Leggi la versione attuale delle norme.
- Modifica le informazioni contenute nelle norme in base alle tue esigenze.
- Scrivi le norme aggiornate.
Leggi il criterio di negazione
gcloud
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
: l'identificatore del criterio 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 recupera il criterio di negazione denominato
my-deny-policy
per il progettomy-project
e lo salva in un file denominatopolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
policies.get
riceve un criterio di negazione per una risorsa.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: un identificatore del criterio di negazione.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Per inviare la richiesta, espandi una di queste 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/[email protected]" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Modifica il criterio di negazione
Per modificare il criterio di negazione, devi apportare modifiche alla copia del criterio che hai letto in precedenza da IAM. Puoi aggiornare il nome visualizzato oppure aggiungere, modificare o rimuovere le regole di negazione. Le modifiche non avranno effetto finché non scrivi 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/[email protected]" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Scrivi il criterio di rifiuto aggiornato
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 del criterio. Il valoreetag
cambia ogni volta che aggiorni il criterio. Quando scrivi il criterio aggiornato, iletag
nella richiesta deve corrispondere all'attualeetag
archiviato in IAM. Se i valori non corrispondono, la richiesta ha esito negativo. Questa funzionalità aiuta a impedire che le modifiche si sovrascrivano a vicenda.gcloud
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
: l'identificatore del criterio 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 che contiene il criterio di negazione.
Per impostazione predefinita, se questo comando ha esito positivo, non viene stampato 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 progettomy-project
, utilizzando un file denominatopolicy.json
:gcloud iam policies update my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
policies.update
aggiorna un criterio di negazione.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: un identificatore del criterio di negazione.-
POLICY
: il criterio di negazione aggiornato.Ad esempio, per aggiungere un'autorizzazione al criterio mostrato nel passaggio precedente, sostituisci
POLICY
con il codice 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/[email protected]" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "iam.googleapis.com/roles.delete" ] } } ] }
Metodo HTTP e URL:
PUT https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Corpo JSON della richiesta:
POLICY
Per inviare la richiesta, espandi una di queste 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/[email protected]" ], "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 scoprire quando è stata completata. Per maggiori dettagli, consulta Controllare 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.
Se vuoi, puoi specificare il
etag
per la versione del criterio che stai eliminando. Se specifichietag
, deve corrispondere all'attualeetag
archiviato da IAM; se i valori non corrispondono, la richiesta non riesce. Puoi utilizzare questa funzionalità per assicurarti di eliminare il criterio previsto anziché una versione aggiornata del criterio.Se ometti
etag
dalla richiesta, IAM elimina il criterio incondizionatamente.gcloud
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
: l'identificatore del criterio 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
. SostituisciETAG
con l'attuale valoreetag
per il criterio di negazione.Per impostazione predefinita, se questo comando ha esito positivo, non viene stampato alcun output. Per stampare una risposta dettagliata, aggiungi il flag
--format=json
al comando.Ad esempio, il comando seguente elimina un criterio di negazione denominato
my-deny-policy
dal progettomy-project
:gcloud iam policies delete my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies
Go
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Go.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Java
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Java.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Node.js
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Node.js.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
Python
Per scoprire come installare e utilizzare la libreria client per IAM, vedi librerie client IAM. Per maggiori informazioni, consulta la documentazione di riferimento dell'API IAM Python.
Per eseguire l'autenticazione in IAM, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Prima di iniziare.
REST
Il metodo
policies.delete
elimina un criterio di negazione da una risorsa.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. POLICY_ID
: un identificatore del criterio di negazione.-
ETAG
: facoltativo. Un identificatore della versione del criterio. Se presente, questo valore deve corrispondere all'attuale valoreetag
per il criterio.
Metodo HTTP e URL:
DELETE https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?etag=ETAG
Per inviare la richiesta, espandi una di queste 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/[email protected]" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] } }
La risposta identifica un'operazione a lunga esecuzione. Puoi monitorare lo stato dell'operazione a lunga esecuzione per scoprire quando è stata completata. Per maggiori dettagli, consulta Controllare 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 o le librerie client, qualsiasi metodo che modifica un criterio di negazione 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.
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.
REST
Il metodo
policies.operations.get
restituisce lo stato di un'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
-
ENCODED_ATTACHMENT_POINT
: un identificatore con codifica URL per la risorsa a cui è associato il criterio di negazione. Per scoprire come formattare questo valore, consulta Identificare il punto di collegamento in questa pagina. -
OPERATION_ID
: l'identificatore dell'operazione. Ricevi questo identificatore nella risposta alla tua richiesta originale, come parte del nome dell'operazione. Utilizza il valore esadecimale alla fine del nome dell'operazione. Ad esempio,89cb3e508bf1ff01
.
Metodo HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID
Per inviare la richiesta, espandi una di queste 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 l'operazione ripetutamente. Utilizza il backoff esponenziale troncato per introdurre un ritardo tra ogni richiesta. Quando il campodone
è impostato sutrue
, l'operazione è completata e puoi interromperne la ricezione.Passaggi successivi
- Identifica le autorizzazioni supportate nei criteri di negazione.
- Ottieni il formato degli identificatori di entità nei criteri di negazione.
- Scopri come risolvere i problemi di accesso con i criteri di negazione.
- Scopri di più su come negare l'accesso alle entità.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-08-07 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }]