Nesta página, explicamos como negar o acesso de principais impedindo que eles usem permissões específicas de gerenciamento de identidade e acesso (IAM).
No IAM, você nega acesso com políticas de negação. Cada política de negação é anexada a uma organização, pasta ou projeto do Google Cloud. Essa política contém regras de negação, que identificam os principais e listam as permissões que os principais não podem usar.
As políticas de negação são separadas das políticas de permissão, também conhecidas como políticas do IAM. Uma política de permissão fornece acesso a recursos concedendo papéis do IAM aos principais.
É possível gerenciar as políticas de negação com o console do Google Cloud, Google Cloud CLI ou a API REST v2
do IAM.
Antes de começar
Enable the IAM API.
Configure a autenticação.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Go
Para usar os exemplos Go desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Java
Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Node.js
Para usar os exemplos Node.js desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para conseguir as permissões necessárias para gerenciar políticas de negação, peça ao administrador que conceda a você os seguintes papéis de IAM na organização:
-
Para ver as políticas de negação:
Revisor de negação (
roles/iam.denyReviewer
) -
Para visualizar, criar, atualizar e excluir políticas de negação:
Administrador de negação (
roles/iam.denyAdmin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para gerenciar políticas de negação. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para gerenciar as políticas de negação:
-
Para ver as políticas de negação, faça o seguinte:
-
iam.denypolicies.get
-
iam.denypolicies.list
-
-
Para criar, atualizar e excluir políticas de negação, faça o seguinte:
-
iam.denypolicies.create
-
iam.denypolicies.delete
-
iam.denypolicies.get
-
iam.denypolicies.update
-
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Identificar permissões para negar
Antes de criar uma política de negação, decida quais permissões você quer negar e quais são as principais negadas.
Apenas algumas permissões podem ser negadas. Para ver uma lista de permissões que podem ser negadas, consulte Permissões compatíveis com as políticas de negação.
Em alguns casos, você também pode usar grupos de permissões para negar conjuntos de permissões. Para mais informações, consulte Grupos de permissões.
Gerencie as políticas de negação com a API REST
v2
, que requer um formato especial para nomes de permissões. Por exemplo, a permissão para criar um papel personalizado do IAM é nomeada da seguinte maneira:- API
v1
:iam.roles.create
- API
v2
:iam.googleapis.com/roles.create
Criar uma política de negação
É possível adicionar políticas de negação a organizações, pastas e projetos. Cada recurso pode ter até 500 políticas de negação.
As políticas de negação contêm regras de negação, que especificam o seguinte:
- Permissões para negar.
- As principais que têm essas permissões negadas.
Opcional: principais isentos da negação de permissões.
Por exemplo, você pode negar uma permissão para um grupo, mas isentar usuários específicos que pertençam a ele.
Opcional: uma expressão de condição que especifica quando os principais não podem usar as permissões. Nas políticas de negação, as expressões de condição só podem usar funções para tags de recursos. Outras funções e operadores não são compatíveis.
Cada recurso pode ter até 500 regras de negação em todas as políticas de negação anexadas.
As políticas de negação são herdadas pela hierarquia de recursos. Por exemplo, se você negar uma permissão no nível da organização, ela também será negada nas pastas e nos projetos dessa organização e nos recursos específicos do serviço de cada projeto.
As políticas de negação substituem as permitidas. Se um principal tiver um papel que contenha uma permissão específica, mas uma política de negação disser que o principal não pode usar essa permissão, o principal não poderá usá-la.
Console
No console do Google Cloud, acesse a guia Deny na página IAM.
Selecione um projeto, pasta ou organização.
Clique em
Criar política de negação.Na seção Nome da política, defina o ID da política seguindo um destes procedimentos:
- No campo Nome de exibição, insira um nome de exibição para a chave. Preencher esse campo preenche automaticamente o campo ID. Se você quiser mudar o ID da política, atualize o texto no campo ID.
- No campo ID, insira um ID para a política.
Na seção Regras de negação, defina as regras de negação da política. Cada política de negação precisa ter pelo menos uma regra de negação. Para adicionar outras regras de negação, clique em Adicionar regra de negação.
Para cada regra de negação, faça o seguinte:
- No campo Participantes negados, adicione um ou mais participantes que você
quer impedir de usar as permissões especificadas. O principal pode
ser qualquer um dos tipos na lista de identificadores de
participantes
v2
do IAM, exceto os participantes com IDs que começam comdeleted:
. - Opcional: no campo Participantes de exceção, adicione os participantes que você quer que usem as permissões especificadas, mesmo que eles estejam incluídos na seção Participantes negados. Por exemplo, é possível usar esse campo para criar uma exceção para usuários específicos que pertencem a um grupo negado.
Nas seções Permissões negadas, adicione as permissões que você quer negar. As permissões precisam ser compatíveis com as políticas de negação.
Em alguns casos, você também pode usar grupos de permissões para negar conjuntos de permissões. Para mais informações, consulte Grupos de permissões.
Opcional: adicione permissões de exceção. As permissões de exceção são permissões que você não quer que essa regra de negação negue, mesmo que estejam incluídas na lista de permissões negadas. Por exemplo, é possível usar esse campo para criar exceções para permissões específicas em um grupo de permissões.
Para adicionar permissões de exceção, clique em Permissões de exceção, em
Adicionar outra permissão e digite a permissão no campo Permissão 1. Continue adicionando permissões até incluir todas que você quer isentar da política de negação.Opcional: adicione uma condição de negação para especificar quando os principais não podem usar a permissão. Para adicionar uma condição de negação, clique em
Adicionar condição de negação e defina os seguintes campos:- Título: (opcional) Um breve resumo da finalidade da condição.
- Descrição: opcional. Uma descrição mais longa da condição.
Expressão de condição: é possível adicionar uma expressão de condição usando o Criador de condições ou o Editor de condições. O Criador de condições fornece uma interface interativa para selecionar o tipo de condição desejado, o operador e outros detalhes aplicáveis sobre a expressão. O editor de condições oferece uma interface baseada em texto para inserir manualmente uma expressão usando a sintaxe da Common Expression Language (CEL).
As condições de negação precisam ser baseadas em tags de recurso. Outras funções e operadores não são compatíveis.
- No campo Participantes negados, adicione um ou mais participantes que você
quer impedir de usar as permissões especificadas. O principal pode
ser qualquer um dos tipos na lista de identificadores de
participantes
Clique em Criar.
gcloud
Para criar uma política de negação para um recurso, comece criando um arquivo JSON que contenha a política. Uma política de negação usa o seguinte formato:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Forneça os valores a seguir:
POLICY_NAME
: o nome de exibição da política de negação.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: as regras de negação na política. Cada regra de negação pode conter estes campos:-
deniedPermissions
: uma lista de permissões que os principais especificados não podem usar. As permissões precisam ser compatíveis com as políticas de negação.Em alguns casos, você também pode usar grupos de permissões para negar conjuntos de permissões. Para mais informações, consulte Grupos de permissões.
-
exceptionPermissions
: uma lista de permissões que os principais especificados podem usar, mesmo que essas permissões estejam incluídas emdeniedPermissions
. Por exemplo, é possível usar esse campo para criar exceções para permissões específicas em um grupo de permissões. -
deniedPrincipals
: uma lista de principais que não podem usar as permissões especificadas. Use o formato de APIv2
para os identificadores principais. -
exceptionPrincipals
: opcional. Uma lista de principais que podem usar as permissões especificadas, mesmo que eles estejam incluídos emdeniedPrincipals
. Por exemplo, é possível usar esse campo para criar uma exceção para usuários específicos que pertencem a um grupo negado. Use o formato de APIv2
para os identificadores principais. -
denialCondition
: opcional. Uma expressão de condição que especifica quando os principais não podem usar as permissões. Contém os campos a seguir:-
expression
: uma expressão de condição que usa a sintaxe Common Expression Language (CEL). A expressão precisa usar as funções da CEL para avaliação de tags de recursos. Outras funções e operadores não são compatíveis. -
title
: opcional. Um breve resumo da finalidade da condição. -
description
: opcional. Uma descrição mais longa da condição.
-
Veja exemplos de regras de negação em Casos de uso comuns.
-
Por exemplo, a política de negação a seguir contém uma regra de negação, que nega uma permissão a Lucian:
{ "displayName": "My deny policy.", "rules": [ { "denyRule": { "deniedPrincipals": [ "principal://goog/subject/lucian@example.com" ], "deniedPermissions": [ "iam.googleapis.com/roles.create" ] } } ] }
Em seguida, execute o comando
gcloud iam policies create
:gcloud iam policies create POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Forneça os valores a seguir:
-
POLICY_ID
: o identificador da política de negação. -
ATTACHMENT_POINT
: um identificador para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. -
POLICY_FILE
: o caminho do arquivo JSON que contém a política de negação.
Por padrão, se este comando for bem-sucedido, não imprimirá nenhuma saída. Para exibir uma resposta detalhada, adicione a sinalização
--format=json
ao comando.Por exemplo, o comando a seguir cria uma política de negação chamada
my-deny-policy
para o projetomy-project
, usando um arquivo chamadopolicy.json
:gcloud iam policies create my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método
policies.createPolicy
cria uma política de negação para um recurso.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. POLICY_ID
: um identificador para a política de negação.POLICY_NAME
: o nome de exibição da política de negação.-
DENY_RULE_1
,DENY_RULE_2
,...DENY_RULE_N
: as regras de negação na política. Cada regra de negação pode conter estes campos:-
deniedPermissions
: uma lista de permissões que os principais especificados não podem usar. As permissões precisam ser compatíveis com as políticas de negação.Em alguns casos, você também pode usar grupos de permissões para negar conjuntos de permissões. Para mais informações, consulte Grupos de permissões.
-
exceptionPermissions
: uma lista de permissões que os principais especificados podem usar, mesmo que essas permissões estejam incluídas emdeniedPermissions
. Por exemplo, é possível usar esse campo para criar exceções para permissões específicas em um grupo de permissões. -
deniedPrincipals
: uma lista de principais que não podem usar as permissões especificadas. Use o formato de APIv2
para os identificadores principais. -
exceptionPrincipals
: opcional. Uma lista de principais que podem usar as permissões especificadas, mesmo que eles estejam incluídos emdeniedPrincipals
. Por exemplo, é possível usar esse campo para criar uma exceção para usuários específicos que pertencem a um grupo negado. Use o formato de APIv2
para os identificadores principais. -
denialCondition
: opcional. Uma expressão de condição que especifica quando os principais não podem usar as permissões. Contém os campos a seguir:-
expression
: uma expressão de condição que usa a sintaxe Common Expression Language (CEL). A expressão precisa usar as funções da CEL para avaliação de tags de recursos. Outras funções e operadores não são compatíveis. -
title
: opcional. Um breve resumo da finalidade da condição. -
description
: opcional. Uma descrição mais longa da condição.
-
Veja exemplos de regras de negação em Casos de uso comuns.
-
Método HTTP e URL:
POST https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies?policyId=POLICY_ID
Corpo JSON da solicitação:
{ "displayName": "POLICY_NAME", "rules": [ { "denyRule": DENY_RULE_1 }, { "denyRule": DENY_RULE_2 }, { "denyRule": DENY_RULE_N } ] }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } } ] } }
A resposta identifica uma operação de longa duração. É possível monitorar o status da operação de longa duração para descobrir quando ela é concluída. Para detalhes, consulte Verificar o status de uma operação de longa duração nesta página.
Listar políticas de negação
Um recurso pode ter várias políticas de negação. É possível listar todas as políticas de negação anexadas a um recurso e, em seguida, visualizar cada política de negação para ver as regras de negação em cada política.
Console
No console do Google Cloud, acesse a guia Deny na página IAM.
Selecione um projeto, pasta ou organização.
O console do Google Cloud lista todas as políticas de negação que se aplicam a esse projeto, pasta ou organização. Isso inclui políticas de negação que foram herdadas de outros recursos. Para mais informações sobre a herança de políticas de negação, consulte Herança de políticas de negação.
gcloud
Para listar as políticas de negação de um recurso, execute o comando
gcloud iam policies list
:gcloud iam policies list \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Forneça o seguinte valor:
-
ATTACHMENT_POINT
: um identificador para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo.
Por exemplo, o comando a seguir lista as políticas de negação anexadas a uma organização com o ID numérico
123456789012
:gcloud iam policies list \ --attachment-point=cloudresourcemanager.googleapis.com/organizations/123456789012 \ --kind=denypolicies \ --format=json
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método
policies.listPolicies
lista as políticas de negação de um recurso.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo.
Método HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" } ] }
Ver uma política de negação
É possível visualizar uma política de negação para ver as regras de negação que ela contém, inclusive as permissões negadas e os principais que não podem usar essas permissões.
Console
No console do Google Cloud, acesse a guia Deny na página IAM.
Selecione um projeto, pasta ou organização.
Na coluna ID da política, clique no ID da política que você quer visualizar.
O console do Google Cloud mostra os detalhes da política de negação, incluindo o ID, quando ela foi criada e as regras de negação na política.
gcloud
Para receber a política de negação de um recurso, execute o comando
gcloud iam policies get
:gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Forneça os valores a seguir:
-
POLICY_ID
: o identificador da política de negação. -
ATTACHMENT_POINT
: um identificador para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo.
Por exemplo, o comando a seguir recebe a política de negação chamada
my-deny-policy
para o projetomy-project
e a salva em um arquivo chamadopolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método
policies.get
recebe uma política de negação para um recurso.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. POLICY_ID
: um identificador para a política de negação.
Método HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } } ] }
Atualizar uma política de negação
Depois de criar uma política de negação, você pode atualizar as regras de negação que ela contém, bem como seu nome de exibição.
É possível atualizar uma política de negação usando o console do Google Cloud ou um dos seguintes métodos programáticos:
- A gcloud CLI
- A API REST
- As bibliotecas de cliente do IAM
Atualizar uma política de negação usando o console do Google Cloud
No console do Google Cloud, acesse a guia Deny na página IAM.
Selecione um projeto, pasta ou organização.
Na coluna ID da política, clique no ID da política que você quer editar.
Clique em
Editar.Atualize a política de negação:
- Para mudar o nome de exibição da política, edite o campo Nome de exibição.
- Para editar uma regra de negação, clique nela e modifique os participantes, participantes de exceção, permissões negadas, permissões de exceção ou a condição de negação.
- Para remover uma regra de negação, encontre a que você quer excluir e clique em Excluir na linha.
- Para adicionar uma regra de negação, clique em Adicionar regra de negação e crie uma regra de negação como você faz ao criar uma política de negação.
Quando terminar de atualizar a política de negação, clique em Salvar.
Atualizar uma política de negação de forma programática
Para atualizar uma política de negação usando a gcloud CLI, a API REST ou as bibliotecas de cliente do IAM, use o padrão read-modify-write:
- Leia a versão atual da política.
- Modifique as informações na política conforme necessário.
- Grave a política atualizada.
Ler a política de negação
gcloud
Para receber a política de negação de um recurso, execute o comando
gcloud iam policies get
:gcloud iam policies get POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --format=json
Forneça os valores a seguir:
-
POLICY_ID
: o identificador da política de negação. -
ATTACHMENT_POINT
: um identificador para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo.
Por exemplo, o comando a seguir recebe a política de negação chamada
my-deny-policy
para o projetomy-project
e a salva em um arquivo chamadopolicy.json
:gcloud iam policies get my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --format=json \ > ./policy.json
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método
policies.get
recebe uma política de negação para um recurso.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. POLICY_ID
: um identificador para a política de negação.
Método HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } } ] }
Modificar a política de negação
Para modificar a política de negação, faça alterações na cópia da política lida no IAM. É possível atualizar o nome de exibição ou adicionar, alterar ou remover regras de negação. As mudanças não entram em vigor até que você grave a política atualizada.
Por exemplo, adicione uma permissão a uma regra de negação existente:
{ "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" ] } } ] }
Gravar a política de negação atualizada
Depois de modificar a política de negação localmente, escreva a política de negação atualizada no IAM.
Cada política de negação contém um campo
etag
que identifica a versão da política. Oetag
muda sempre que você atualiza a política. Quando você grava a política atualizada, oetag
na solicitação precisa corresponder aoetag
atual armazenado no IAM. se os valores não corresponderem, a solicitação falhará. Esse recurso ajuda a evitar que alterações simultâneas substituam-se.gcloud
Para atualizar a política de negação de um recurso, execute o comando
gcloud iam policies update
:gcloud iam policies update POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies \ --policy-file=POLICY_FILE
Forneça os valores a seguir:
-
POLICY_ID
: o identificador da política de negação. -
ATTACHMENT_POINT
: um identificador para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. -
POLICY_FILE
: o caminho do arquivo JSON que contém a política de negação.
Por padrão, se este comando for bem-sucedido, não imprimirá nenhuma saída. Para exibir uma resposta detalhada, adicione a sinalização
--format=json
ao comando.Por exemplo, o comando a seguir atualiza uma política de negação chamada
my-deny-policy
para o projetomy-project
, usando um arquivo chamadopolicy.json
:gcloud iam policies update my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies \ --policy-file=policy.json
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método
policies.update
atualiza uma política de negação.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. POLICY_ID
: um identificador para a política de negação.-
POLICY
: a política de negação atualizada.Por exemplo, para adicionar uma permissão à política mostrada na etapa anterior, substitua
POLICY
pelo seguinte:{ "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" ] } } ] }
Método HTTP e URL:
PUT https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID
Corpo JSON da solicitação:
POLICY
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } } ] } }
A resposta identifica uma operação de longa duração. É possível monitorar o status da operação de longa duração para descobrir quando ela é concluída. Para detalhes, consulte Verificar o status de uma operação de longa duração nesta página.
Excluir uma política de negação
Se você não quiser mais aplicar as regras em uma política de negação, poderá excluir a política de negação.
Opcionalmente, é possível especificar
etag
para a versão da política que você está excluindo. Se você especificar oetag
, ele precisará corresponder aoetag
atual armazenado pelo IAM. se os valores não corresponderem, a solicitação falhará. Use esse recurso para garantir a exclusão da política pretendida, em vez de uma versão atualizada dela.Se você omitir
etag
da solicitação, o IAM excluirá a política condicionalmente.Console
No console do Google Cloud, acesse a guia Deny na página IAM.
Selecione um projeto, pasta ou organização.
Na coluna ID da política, clique no ID da política que você quer excluir.
Clique em
Excluir. Na caixa de diálogo, clique em Confirmar.
gcloud
Para excluir uma política de negação de um recurso, execute o comando
gcloud iam policies delete
:gcloud iam policies delete POLICY_ID \ --attachment-point=ATTACHMENT_POINT \ --kind=denypolicies
Forneça os valores a seguir:
-
POLICY_ID
: o identificador da política de negação. -
ATTACHMENT_POINT
: um identificador para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo.
Opcionalmente, é possível adicionar a sinalização
--etag=ETAG
. SubstituaETAG
pelo valor atual daetag
para a política de negação.Por padrão, se este comando for bem-sucedido, não imprimirá nenhuma saída. Para exibir uma resposta detalhada, adicione a sinalização
--format=json
ao comando.Por exemplo, o comando a seguir exclui uma política de negação chamada
my-deny-policy
do projetomy-project
:gcloud iam policies delete my-deny-policy \ --attachment-point=cloudresourcemanager.googleapis.com/projects/my-project \ --kind=denypolicies
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método
policies.delete
exclui uma política de negação de um recurso.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. POLICY_ID
: um identificador para a política de negação.-
ETAG
: opcional. Um identificador da versão da política. Se presente, esse valor precisa corresponder ao valoretag
atual da política.
Método HTTP e URL:
DELETE https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/denypolicies/POLICY_ID?etag=ETAG
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "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" ] } } ] } }
A resposta identifica uma operação de longa duração. É possível monitorar o status da operação de longa duração para descobrir quando ela é concluída. Para detalhes, consulte Verificar o status de uma operação de longa duração nesta página.
Verificar o status de uma operação de longa duração
Quando você usa a API REST ou as bibliotecas de cliente, qualquer método que altere uma política de negação retorna uma operação de longa duração, ou LRO. A operação de longa duração rastreia o status da solicitação e indica se a alteração na política foi concluída.
Go
Nas amostras de código desta página, mostramos como aguardar a conclusão de uma operação de longa duração e acessar o resultado dela.
Java
Nas amostras de código desta página, mostramos como aguardar a conclusão de uma operação de longa duração e acessar o resultado dela.
Node.js
Nas amostras de código desta página, mostramos como aguardar a conclusão de uma operação de longa duração e acessar o resultado dela.
Python
Nas amostras de código desta página, mostramos como aguardar a conclusão de uma operação de longa duração e acessar o resultado dela.
REST
O método
policies.operations.get
retorna o status de uma operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
ENCODED_ATTACHMENT_POINT
: um identificador codificado por URL para o recurso a que a política de negação está anexada. Para saber como formatar esse valor, consulte Ponto de anexo. -
OPERATION_ID
: o identificador da operação. Você recebe esse identificador na resposta à sua solicitação original, como parte do nome da operação. Use o valor hexadecimal no final do nome da operação. Por exemplo,89cb3e508bf1ff01
.
Método HTTP e URL:
GET https://iam.googleapis.com/v2/policies/ENCODED_ATTACHMENT_POINT/operations/OPERATION_ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F1234567890123/denypolicies/my-policy/operations/89cb3e508bf1ff01", "done": true }
Se o campo
done
da operação não estiver presente, continue a monitorar o status recebendo a operação repetidamente. Use a espera exponencial truncada para introduzir um atraso entre cada solicitação. Quando o campodone
estiver definido comotrue
, a operação será concluída e você poderá interromper a operação.A seguir
- Identifique as permissões compatíveis com políticas de negação.
- Descubra o formato dos identificadores principais nas políticas de negação.
- Descubra como solucionar problemas de acesso com políticas de negação.
- Saiba mais sobre como negar acesso a principais.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-22 UTC.