O Resource Manager fornece uma restrição de domínio que pode ser usada nas políticas da organização para limitar o compartilhamento de recursos com base no domínio ou na organização. Essa restrição limita o conjunto de identidades que podem ser usadas nas políticas de gerenciamento de identidade e acesso.
As políticas da organização podem usar essa restrição para limitar o compartilhamento de recursos a identidades que pertencem a um recurso específico da organização. Como alternativa, especifique um conjunto de um ou mais domínios, e as exceções podem ser concedidas por pasta ou por projeto. Para mais informações sobre como adicionar exceções, consulte Modificar a política da organização para um projeto.
A restrição de domínio não é retroativa. Depois que ela for definida, essa limitação será aplicada às alterações de política do IAM feitas a partir de então, e não a mudanças anteriores. A restrição de domínio será aplicada a todas as alterações na política do IAM, incluindo as alterações feitas por um agente de serviços em resposta a outra ação. Por exemplo, se você tiver um serviço automatizado que importa conjuntos de dados do BigQuery, um agente de serviço do BigQuery fará alterações na política do IAM no conjunto de dados recém-criado. Essa ação será restrita à restrição de domínio e bloqueada.
Por exemplo, considere duas organizações relacionadas: examplepetstore.com e altostrat.com. Você concedeu à identidade do examplepetstore.com um papel do IAM em altostrat.com. Depois, decidiu restringir as identidades por domínio e implementou uma política da organização com a restrição de domínio em altostrat.com. Nesse caso, as identidades existentes de examplepetstore.com não perderão o acesso em altostrat.com. A partir disso, só será possível conceder papéis do Cloud IAM às identidades do domínio altostrat.com.
A restrição de domínio é baseada na
limitação da lista
iam.allowedPolicyMemberDomains
.
Quando essa restrição é definida em um recurso de organização do Google Cloud, ela afeta todas as identidades que são pais desse recurso. Quando essa restrição é definida em um domínio do Google Workspace, ela afeta todas as identidades que estão nesse domínio. Isso inclui contas de usuário gerenciadas no console do Google Workspace, e não no console do Google Cloud.
Como definir a política da organização
A restrição de domínio é um tipo de restrição de lista.
Os IDs de cliente do Google Workspace e os IDs de recurso de organização do Google Cloud podem ser
adicionados e removidos da lista allowed_values
de uma restrição de domínio. A restrição de domínio não oferece suporte a valores negados,
e uma política da organização não pode ser salva com IDs na lista denied_values
.
Todos os domínios associados a uma conta do Google Workspace ou a um recurso da organização
listado no allowed_values
serão permitidos pela política da organização. Todos
os outros domínios serão negados pela política da organização.
É possível criar uma política da organização que aplique a restrição de restrição de domínio de forma condicional a qualquer recurso incluído na lista de recursos compatíveis. Por exemplo, buckets do Cloud Storage, conjuntos de dados do BigQuery ou VMs do Compute Engine.
Você precisa ter permissão para modificar as políticas da organização para definir essa restrição. Por exemplo, o papel
orgpolicy.policyAdmin
tem permissão para definir restrições da política da organização. O papel
resourcemanager.organizationAdmin
tem permissão para adicionar um usuário como administrador da Política da Organização.
Consulte a página
Como usar restrições
para saber como gerenciar políticas no nível da organização.
Console
Para definir uma política da organização que inclua uma restrição de domínio, faça o seguinte:
No console do Google Cloud, acesse a página Políticas da organização.
No seletor de projetos, selecione o recurso da organização em que você quer definir a política da organização.
Na página Políticas da organização, selecione Compartilhamento restrito de domínio na lista de restrições.
Na página Detalhes da política, clique em Gerenciar política.
Em Aplicável a, selecione Substituir política do recurso pai.
Clique em Adicionar uma regra.
Em Valores da política, selecione "Personalizado". Observação: a restrição de restrição de domínio não é compatível com Negar tudo.
Em Tipo de política, selecione Permitir. Observação: a restrição de restrição de domínio não é compatível com valores Deny.
Em Valores personalizados, insira um ID de recurso da organização ou ID de cliente do Google Workspace no campo.
Se você quiser adicionar vários IDs, clique em Novo valor da política para criar outro campo.
Clique em Concluído.
Se quiser, para tornar a restrição de restrição de domínio condicional em uma tag, clique em Adicionar condição.
No campo Título, insira um nome para a condição.
No campo Descrição, defina uma descrição para a condição. A descrição oferece contexto sobre as tags necessárias e como elas afetam os recursos.
Você pode usar o Criador de condições para criar uma condição que exija uma tag específica para que a restrição entre em vigor.
No menu suspenso Tipo de condição da guia Criador de condições, selecione Tag.
Selecione o Operador para sua condição. Para corresponder a uma tag inteira, use o operador matches. Para combinar uma chave de tag e um valor de tag, use o operador match ID.
Se você selecionou o operador corresponde, insira o nome do namespace de valor da tag. Se você selecionou o operador corresponde ao código, insira os códigos da chave e do valor.
Para criar várias condições, clique em Adicionar. Se você adicionar outra condição, poderá definir a lógica condicional para exigir todas elas alternando E. É possível configurar a lógica condicional para exigir que apenas uma das condições seja verdadeira, alternando Or.
É possível excluir uma expressão clicando no X grande à direita dos campos de condição.
Quando terminar de editar as condições, clique em Salvar.
Para aplicar a política, clique em Definir política.
gcloud
As políticas podem ser definidas pela Google Cloud CLI. Para criar uma política que inclua a restrição de domínio, execute o seguinte comando:
Para definir uma política da organização que inclua a restrição de domínio, execute o seguinte comando:
gcloud org-policies set-policy POLICY_PATH
Em que POLICY_PATH
é o caminho completo para o
arquivo YAML da política da organização, que deve ser semelhante ao seguinte:
name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
spec:
rules:
- condition: # This condition applies to the values block.
expression: "resource.matchTag('ORGANIZATION_ID/environment', 'dev')"
values:
allowedValues:
- PRINCIPAL_SET
- values:
allowedValues:
- PRINCIPAL_SET
Substitua:
- ORGANIZATION_ID com o ID do recurso da organização em que essa política será definida.
PRINCIPAL_SET para identificadores principais do Cloud Identity que você quer permitir, incluindo o ID do recurso da organização. Por exemplo,
is:principalSet://iam.googleapis.com/organizations/01234567890123
.Os IDs de cliente do Google Workspace precisam ser usados para todas as outras identidades que você quer permitir. Por exemplo,
is:C03g5e3bc
.
Somente as identidades pertencentes ao ID de recurso da organização ou
ao domínio do Google Workspace na lista de allowed_values
serão permitidas nas
políticas do IAM depois que essa política da organização for aplicada.
Os grupos e usuários humanos do Google Workspace precisam ser filhos desse recurso da organização
ou fazer parte do domínio do Google Workspace, e as contas de serviço
do IAM precisam ser filhas de um recurso da organização associado ao referido
domínio do Google Workspace.
Por exemplo, se você criou uma política da organização apenas com o ID de cliente do Google Workspace da sua empresa, somente os membros desse domínio podem ser adicionados à política do IAM a partir desse momento.
Para saber mais sobre o uso de restrições nas políticas da organização, consulte Como usar restrições.
Exemplo de mensagem de erro
Se você violar a restrição da organização de restrição de domínio ao tentar adicionar um membro que não esteja na lista allowed_values
, a operação falhará e uma mensagem de erro será exibida.
Console
gcloud
ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION: One or more users named in the policy do not belong to a permitted customer.
Como recuperar o ID de um recurso de organização
É possível conseguir o ID do recurso da organização usando o console do Google Cloud, a CLI gcloud ou a API Cloud Resource Manager.
Console
Para conferir o ID do recurso da sua organização usando o console do Google Cloud, faça o seguinte:
- Acesse o Console do Google Cloud:
- No seletor de projetos na parte de cima da página, selecione o recurso da sua organização.
- No lado direito, clique em Mais e em Configurações.
A página Configurações mostra o ID do recurso da organização.
gcloud
Para encontrar o ID do recurso da organização, execute o seguinte comando:
gcloud organizations list
Esse comando lista todos os recursos da organização aos quais você pertence e os IDs correspondentes.
API
Para encontrar o ID do recurso da sua organização usando a API Cloud Resource Manager, use o método
organizations.search()
, incluindo uma consulta para seu domínio. Exemplo:
GET https://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}
A resposta contém os metadados do recurso da organização que pertence a altostrat.com
, incluindo o ID do recurso da organização.
Depois de ter o ID do recurso da organização, use o identificador correto para o conjunto de participantes que pertencem a ele. Exemplo:
principalSet://iam.googleapis.com/organizations/01234567890123
Para mais informações sobre identificadores principais do IAM, consulte Identificadores principais.
Como recuperar um ID de cliente do Google Workspace
O ID do cliente do Google Workspace usado pela restrição de domínio pode ser recuperado de duas maneiras:
gcloud
O comando gcloud organizations list pode ser usado para ver todas as organizações em que você tem a permissão resourcemanager.organizations.get
:
gcloud organizations list
Esse comando retornará DISPLAY_NAME
, ID
(ID da organização) e
DIRECTORY_CUSTOMER_ID
. O ID de cliente do Google Workspace é o
DIRECTORY_CUSTOMER_ID
.
API
Use a API Directory do Google Workspace para recuperar um ID de cliente do Google Workspace.
Enquanto estiver conectado como administrador do Google Workspace, é possível acessar a documentação do método de API Clientes: get e clicar em Executar. Após a autorização, a resposta mostrará seu ID do cliente.
Como alternativa, use um cliente de API:
- Receba um token de acesso do OAuth para o escopo
https://www.googleapis.com/auth/admin.directory.customer.readonly
. Execute o seguinte comando para consultar a API do diretório do Google Workspace:
curl -# -X GET "https://www.googleapis.com/admin/directory/v1/customers/customerKey" \ -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
Esse comando retornará uma resposta JSON que inclui as informações
do cliente. O ID de cliente do Google Workspace é o id
.
Como restringir subdomínios
Se você permitir um recurso de organização do Google Cloud em uma restrição de restrição de domínio, ele vai permitir o acesso a todos os recursos associados a esse recurso de organização e bloquear o acesso a todos os outros.
Se você permitir um ID de cliente do Google Workspace em uma restrição de domínio, o acesso será limitado a todos os domínios associados a esse ID de cliente do Google Workspace e bloqueado para todos os outros. Cada conta do Google Workspace tem um domínio principal e zero ou mais domínios secundários. Todos os domínios associados ao ID de cliente do Google Workspace estarão sujeitos à restrição.
A aplicação da restrição de domínio a um recurso controla o domínio principal e todos os domínios secundários que podem acessar esse recurso e seus descendentes na hierarquia de recursos.
Para ver exemplos de combinações comuns de domínio e subdomínio do Google Workspace, consulte a tabela abaixo:
Domínio principal | Subdomínio | Restrição de domínio | O user@sub.altostrat.com é permitido? |
---|---|---|---|
altostrat.com | nenhum | Permitir: altostrat.com | Não |
altostrat.com | sub.altostrat.com | Permitir: altostrat.com | Sim |
altostrat.com | sub.altostrat.com | Permitir: sub.altostrat.com | Sim |
sub.altostrat.com | altostrat.com | Permitir: sub.altostrat.com | Sim |
sub.altostrat.com | nenhum | Permitir: sub.altostrat.com | Sim |
Para diferenciar o acesso à restrição de domínio entre dois domínios, cada
domínio precisa estar associado a uma conta do Google Workspace diferente. Cada
conta do Google Workspace está associada a um nó da organização e pode ter
suas próprias políticas aplicadas. Isso permite que você associe
altostrat.com
a uma conta do Google Workspace e sub.altostrat.com
a outra
para um controle de acesso mais granular. Para mais informações, consulte
Como gerenciar múltiplas organizações.
Solução de problemas conhecidos
As políticas da organização não são retroativas. Se for necessário forçar uma alteração na hierarquia de recursos que viole uma restrição aplicada, você poderá desativar a política, fazer a alteração e depois ativá-la novamente.
Nas seções a seguir, descrevemos problemas conhecidos que podem ocorrer com os serviços quando essa restrição é aplicada.
Vincular o Google Analytics 360 ao BigQuery
Se você tentar vincular o Google Analytics 360 ao BigQuery, em que a restrição de restrição de domínio é aplicada, a ação vai falhar com a mensagem de erro One or more users named in the policy do not belong to a permitted
customer
, mesmo que a conta de serviço analytics-processing-dev@system.gserviceaccount.com
já tenha sido adicionada como Editor
no nível do projeto, diretamente ou usando os Grupos do Google.
Para vincular o Google Analytics 360 ao BigQuery, faça o seguinte:
Desative a política da organização que contém a restrição de domínio.
Ative a restrição de domínio novamente.
Compartilhamento de dados públicos
Alguns produtos do Google Cloud, como o BigQuery, as funções do Cloud Run, o Cloud Run, o Cloud Storage e o Pub/Sub, aceitam o compartilhamento de dados públicos. Aplicar a restrição de compartilhamento restrito de domínio em uma política da organização impedirá que dados públicos sejam compartilhados.
Para compartilhar dados publicamente, desative a restrição de compartilhamento de domínio temporariamente para o recurso do projeto onde as informações a serem compartilhadas estão armazenadas. Depois de compartilhar o recurso, será possível reativar a restrição de compartilhamento restrito de domínio.
Coletor de registros do BigQuery para uma conta de faturamento
A conta de serviço usada pelo coletor de registros do BigQuery para contas de faturamento
(formato: b*@*.iam.gserviceaccount.com
) é tratada como externa e bloqueada pela
restrição de compartilhamento restrito de domínio em uma política da organização.
Para conceder a essa conta de serviço um papel em um conjunto de dados do BigQuery em um projeto
que tenha a restrição de domínio aplicada:
Desative a política da organização que contém a restrição de domínio.
Conceda à conta de serviço correspondente (formato:
b*@*.iam.gserviceaccount.com
) o papel do BigQuery indicado durante o processo de criação do coletor.Ative a restrição de domínio novamente.
Conta de serviço de exportação do Cloud Billing
Ativar a exportação do faturamento para um bucket com essa restrição ativada provavelmente causará uma falha. Não utilize essa restrição em buckets usados para exportação de faturamento.
O endereço de e-mail da conta de serviço de exportação do Cloud Billing é: 509219875288-kscf0cheafmf4f6tp1auij5me8qakbin@developer.gserviceaccount.com
Ativar o registro de acesso ao armazenamento
Se ativada, a restrição de domínio bloqueará qualquer domínio que não seja especificamente permitido pela política da organização. Isso impedirá que você conceda acesso às contas de serviço do Google. Para configurar a geração de registros de acesso ao armazenamento em um bucket do Cloud Storage com a restrição de domínio aplicada, faça o seguinte:
Desative a política da organização que contém a restrição de domínio.
Conceda a
cloud-storage-analytics@google.com
acessoWRITE
a esse bucket.Ative a restrição de domínio novamente.
Como conceder papéis de agente de serviço
Os papéis de agente de serviço são concedidos apenas a contas de serviço. Se você precisar conceder esse tipo de função, faça o seguinte:
Desative a política da organização que contém a restrição de domínio.
Conceda o papel de agente de serviço.
Ative a restrição de domínio novamente.
Ativar a API Firebase
Se ativada, a restrição de domínio bloqueará as contas de serviço que não são permitidas na política da organização. Isso impossibilita a ativação da API Firebase, que requer contas de serviço externas durante o processo de ativação da API. Depois que a API for ativada, será possível aplicar com segurança a restrição de domínio sem interferir na função da API Firebase. Para ativar a API Firebase:
Desative a política da organização que contém a restrição de domínio.
Ative a API Firebase Management.
Ative a restrição de domínio novamente.
Grupos do Google
Se a restrição de domínio for aplicada na sua organização, talvez não seja possível conceder funções a grupos do Google recém-criados, mesmo que eles pertençam a um domínio permitido. Isso ocorre porque pode levar até 24 horas para que um grupo seja totalmente propagado no Google Cloud. Se não for possível conceder uma função a um grupo do Google recém-criado, aguarde 24 horas e tente de novo.
Além disso, ao avaliar se um grupo pertence a um domínio permitido, o IAM avalia apenas o domínio do grupo. Ele não avalia os domínios de nenhum dos membros do grupo. Como resultado, os administradores do projeto podem ignorar a restrição de domínio adicionando membros externos aos Grupos do Google e concedendo papéis a esses grupos.
Para garantir que os administradores do projeto não possam ignorar a restrição de domínio, o administrador do Google Workspace precisa garantir que os proprietários do grupo não possam permitir participantes de fora do domínio no painel do administrador do Google Workspace.
Como forçar o acesso à conta
Se você precisar forçar o acesso à conta de um projeto que viola as restrições do domínio, faça o seguinte:
Remova a política da organização que contém a restrição de domínio.
Permita que o projeto acesse a conta.
Implemente a política da organização com a restrição de domínio novamente.
Como alternativa, você pode conceder acesso a um grupo do Google que contém as contas de serviço relevantes:
Crie um grupo do Google no domínio permitido.
Use o painel de administrador do Google Workspace e desative a restrição de domínio para esse grupo.
Adicione a conta de serviço ao grupo.
Conceda acesso ao grupo do Google na política de IAM.
Use o Pub/Sub como um endpoint para um app do Google Chat.
Quando você tenta conceder direitos de publicação no seu tópico à conta de serviço da API Google Chat, pode ser que você seja bloqueado se a restrição de compartilhamento de domínio restrito estiver ativada. Siga o processo para forçar o acesso à conta.