Neste guia, explicamos como criar uma política da organização com restrições gerenciadas e gerenciadas legadas. Se você quiser ter mais controle sobre as políticas da organização, crie restrições personalizadas.
Para mais informações sobre restrições e os problemas que elas resolvem, consulte a lista de todas as restrições do serviço Política da organização.
Antes de começar
Leia a página Visão geral do serviço de política da organização para saber como funciona a política da organização.
Leia a página Avaliação de hierarquia para saber mais sobre a herança de políticas.
Funções exigidas
Para receber as permissões
necessárias a fim de gerenciar as políticas da organização,
peça ao administrador para conceder a você o
papel do IAM de Administrador de políticas da organização (roles/orgpolicy.policyAdmin) na organização.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Delegar a administração da política da organização
Para delegar a administração das políticas da organização a outro principal, adicione uma condição à vinculação de papel:
"bindings": [ { "role": "roles/orgpolicy.policyAdmin", "members": [ "PRINCIPAL_1", "PRINCIPAL_2" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "resource.matchTag('TAG_KEY', 'TAG_VALUE')" } } ]
Substitua:
PRINCIPAL_1,PRINCIPAL_2: uma lista de principais a quem você quer delegar a função de administrador da política da organização.TITLE: o título da sua expressão condicional, por exemplo, "Administrador da política da organização para ambientes de desenvolvimento".DESCRIPTION: uma descrição opcional para sua expressão.TAG_KEY: o nome do namespace da chave da tag. Por exemplo,123456789012/environment.TAG_VALUE: o nome do valor da tag. A função só é concedida em recursos em que essa tag está anexada, por exemplo,development.
Para mais informações sobre como usar condições em políticas de permissão, consulte a Visão geral das condições do IAM.
Usar regras de lista em uma política da organização
É possível definir uma política da organização no recurso Organização que use regras de lista para negar acesso a um serviço específico. O processo a seguir descreve como definir uma política da organização usando a Google Cloud CLI. Para instruções sobre como visualizar e definir políticas da organização usando o console do Google Cloud , consulte Aplicar políticas da organização.
As políticas da organização que usam regras de lista não podem ter mais de 500 valores permitidos ou negados individuais e não podem ter mais de 32 KB. Se uma política da organização for criada ou atualizada para ter mais de 500 valores ou ter mais de 32 KB, ela não poderá ser salva, e a solicitação vai retornar um erro.
Configurar a aplicação no recurso da organização
Para configurar a aplicação em uma organização usando a CLI gcloud, siga estas etapas:
Consiga a política atual no recurso da organização usando o comando
describe: Este comando retorna a política aplicada diretamente a este recurso:gcloud org-policies describe \ CONSTRAINT_NAME --organization=ORGANIZATION_IDSubstitua:
ORGANIZATION_ID: um identificador exclusivo do recurso da organização. O ID da organização é formatado como números decimais e não pode ter zeros à esquerda.CONSTRAINT_NAME: a restrição do serviço que você quer aplicar. Por exemplo, a restriçãogcp.restrictNonCmekServicesrestringe quais serviços podem criar recursos sem chaves de criptografia gerenciadas pelo cliente (CMEK).
Você também pode aplicar a política da organização a uma pasta ou um projeto com as sinalizações
--folderou--projecte o ID da pasta e ID do projeto, respectivamente.A resposta retorna a política da organização atual, se houver uma. Exemplo:
name: projects/841166443394/policies/gcp.resourceLocations spec: etag: BwW5P5cEOGs= inheritFromParent: true rules: - condition: expression: resource.matchTagId("tagKeys/1111", "tagValues/2222") values: allowedValues: - in:us-east1-locations - condition: expression: resource.matchTag("123/env", "prod") values: allowedValues: - in:us-west1-locations - values: deniedValues: - in:asia-south1-locations updateTime: '2021-01-19T12:00:51.095Z'Se uma política não for definida, isso retornará um erro
NOT_FOUND:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.Defina a política no projeto usando o comando
set-policy. Isso substitui qualquer política anexada ao recurso.Crie um arquivo temporário
/tmp/policy.yamlpara armazenar a política:name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME spec: rules: - values: deniedValues: - VALUE_AExecute o comando
set-policy:gcloud org-policies set-policy /tmp/policy.yaml
Veja a política efetiva atual usando
describe --effective. Isso retorna a política da organização conforme é avaliada neste momento na hierarquia de recursos com herança incluída.gcloud org-policies describe \ CONSTRAINT_NAME --effective \ --organization=ORGANIZATION_IDA saída do comando será:
name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME spec: etag: BwVJi0OOESU= rules: - values: deniedValues: - VALUE_AComo essa política da organização foi definida no nível da organização, ela será herdada por todos os recursos filhos que permitem a herança.
As mudanças nas políticas da organização podem levar até 15 minutos para serem totalmente aplicadas.
Configurar a aplicação em uma subárvore de hierarquia
Restrições com regras de lista determinam que recursos devem ser permitidos ou negados a partir de valores explicitamente definidos. Algumas restrições também podem aceitar valores que usam o prefixo under:, que especifica uma subárvore com esse recurso na raiz. Usar o prefixo under: em um valor permitido ou negado
faz com que a política da organização aja nesse recurso e em todos os filhos dele.
Para informações sobre as restrições que permitem o uso do prefixo under:, consulte a página Restrições da política da organização.
Um valor que usa o prefixo under: é chamado de uma string de subárvore de hierarquia. Uma string de subárvore de hierarquia especifica o tipo de recurso ao qual se aplica. Por exemplo, usar uma string de subárvore de
projects/PROJECT_ID ao definir a
restrição constraints/compute.storageResourceUseRestrictions permitirá ou
negará o uso do armazenamento do Compute Engine para PROJECT_ID
e todos os respectivos filhos.
Consiga a política atual no recurso da organização usando o comando
describe:gcloud org-policies describe \ CONSTRAINT_NAME \ --organization=ORGANIZATION_IDSubstitua:
ORGANIZATION_IDé um identificador exclusivo do recurso organização;CONSTRAINT_NAMEé a restrição para o serviço que você quer aplicar.
Você também pode aplicar a política da organização a uma pasta ou um projeto com as sinalizações
--folderou--projecte o ID da pasta e ID do projeto, respectivamente.Se uma política não for definida, isso retornará um erro
NOT_FOUND:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.Defina a política no projeto usando o comando
set-policy. O prefixounder:define a restrição para negar o recurso nomeado e todos os seus recursos filho.Crie um arquivo temporário
/tmp/policy.yamlpara armazenar a política:name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME spec: rules: - values: deniedValues: - under:folders/VALUE_AExecute o comando
set-policy:gcloud org-policies set-policy /tmp/policy.yaml
Em que:
under:é um prefixo que significa que o que vem a seguir é uma string de subárvore.folders/VALUE_Aé o ID da pasta do recurso raiz que você quer negar. Este recurso será negado, bem como todos os seus filhos na hierarquia de recursos.
Você também pode aplicar o prefixo
under:a organizações e projetos, como nos exemplos a seguir:under:organizations/VALUE_Xunder:projects/VALUE_Y
Veja a política efetiva atual usando
describe --effective.gcloud org-policies describe \ CONSTRAINT_NAME --effective \ --organization=ORGANIZATION_IDA saída do comando será:
name: organizations/ORGANIZATION_ID/policies/CONSTRAINT_NAME spec: rules: - values: deniedValues: - under:folders/VALUE_AA política agora avalia para negar a pasta VALUE_A e todos os seus recursos filhos.
As mudanças nas políticas da organização podem levar até 15 minutos para serem totalmente aplicadas.
Mesclar a política da organização em um projeto
É possível definir uma política da organização em um recurso, que será mesclada a qualquer política herdada do recurso pai. Em seguida, essa política mesclada será avaliada para criar uma nova política vigente com base nas regras de herança.
Consiga a política atual no recurso usando o comando
describe:gcloud org-policies describe \ CONSTRAINT_NAME \ --project=PROJECT_IDSubstitua:
PROJECT_ID: o identificador exclusivo do projeto.CONSTRAINT_NAME: a restrição para o serviço que você quer aplicar.
Se uma política não for definida, isso retornará um erro
NOT_FOUND:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.Exiba a política efetiva atual usando o comando
describe --effective:gcloud org-policies describe \ CONSTRAINT_NAME --effective \ --project=PROJECT_IDA saída do comando incluirá um valor negado que é herdado do recurso Organização:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - values: deniedValues: - VALUE_ADefina a política no projeto usando o comando
set-policy.Crie um arquivo temporário
/tmp/policy.yamlpara armazenar a política:name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: inheritFromParent: true rules: - values: deniedValues: - VALUE_B - VALUE_CExecute o comando
set-policy:gcloud org-policies set-policy /tmp/policy.yaml
Use o comando
describe --effectivenovamente para exibir a política atualizada:gcloud org-policies describe \ CONSTRAINT_NAME --effective \ --project=PROJECT_IDA saída do comando incluirá o resultado efetivo da mesclagem da política do recurso e do pai:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - values: deniedValues: - VALUE_A - VALUE_B - VALUE_C
As mudanças nas políticas da organização podem levar até 15 minutos para serem totalmente aplicadas.
Restaurar comportamento de restrição padrão
É possível usar o comando reset para redefinir a política e usar o comportamento padrão
da restrição. Para ver uma lista de todas as restrições disponíveis e os valores
padrão, consulte
Restrições da política da organização.
No exemplo a seguir, imagine que o comportamento padrão da restrição é permitir todos os valores.
Encontre a política vigente no projeto para mostrar a política atual mesclada:
gcloud org-policies describe \ CONSTRAINT_NAME --effective \ --project=PROJECT_IDSubstitua PROJECT_ID pelo identificador exclusivo do seu projeto. A saída do comando será:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - values: deniedValues: - VALUE_A - VALUE_B -