Como restringir identidades por domínio

Com o compartilhamento restrito de domínio, é possível limitar o compartilhamento de recursos com base em um domínio ou recurso da organização. Quando o compartilhamento restrito de domínio está ativo, somente os principais que pertencem a domínios ou organizações permitidos podem receber papéis do IAM na sua organização Google Cloud .

Há três tipos de políticas da organização que podem ser usadas para restringir identidades por domínio:

  • A restrição gerenciada iam.managed.allowedPolicyMembers
  • Políticas personalizadas da organização que fazem referência ao recurso iam.googleapis.com/AllowPolicy
  • A restrição gerenciada legada iam.allowedPolicyMemberDomains

Antes de começar

Escolha o método que você vai usar para implementar o compartilhamento com restrição de domínio. Para saber mais sobre os benefícios e desvantagens de cada método, consulte Métodos para restringir o compartilhamento por domínio.

Funções exigidas

Para receber as permissões necessárias para aplicar o compartilhamento restrito ao domínio, 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.

Usar a restrição iam.managed.allowedPolicyMembers para implementar o compartilhamento restrito de domínio

Console

  1. No console do Google Cloud , acesse a página Políticas da organização.

    Acessar a página Políticas da organização

  2. No seletor de projetos, selecione o projeto, a pasta ou a organização em que você quer editar a política da organização. A página Políticas da organização que aparece mostra uma lista filtrável das restrições de políticas da organização disponíveis para esse recurso.

  3. Na lista, selecione a restrição gerenciada Restringir membros permitidos da política em políticas de permissão do IAM.

  4. Na página Detalhes da política, clique em Gerenciar política.

  5. Na página Editar política, selecione Substituir a política do recurso pai.

  6. Selecione Adicionar uma regra e atualize a regra da política da organização.

  7. Em Aplicação, selecione Ativada.

  8. Para tornar a política da organização condicional em uma tag, clique em Adicionar condição. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional. Caso contrário, não será possível salvar a política. Para mais detalhes, consulte Como definir uma política da organização com tags.

  9. Na seção Parâmetros, configure os membros e os conjuntos principais a que você quer conceder papéis na sua organização e clique em Salvar.

  10. Se quiser visualizar o efeito da mudança na política da organização antes da aplicação, clique em Testar mudanças. Para mais informações sobre como testar mudanças nas políticas da organização, consulte Testar mudanças na política da organização com o Simulador de política.

  11. Para aplicar a política da organização no modo de teste, clique em Definir política de simulação. Para mais informações, consulte Criar uma política da organização no modo de simulação.

  12. Depois de verificar se a política da organização no modo de simulação funciona como pretendido, clique em Definir política para definir a política ativa.

gcloud

  1. Crie um arquivo YAML para definir a política da organização:

    name: organizations/ORG_ID/policies/iam.managed.allowedPolicyMembers
    spec:
    rules:
     - enforce: true
       parameters:
         allowedMemberSubjects:
           - ALLOWED_MEMBER_1
           - ALLOWED_MEMBER_2
         allowedPrincipalSets:
           - ALLOWED_PRINCIPAL_SET_1
           - ALLOWED_PRINCIPAL_SET_2
    

    Substitua:

    • ORG_ID: o ID numérico da sua organização Google Cloud.

    • ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: os membros a quem você quer conceder papéis na sua organização, por exemplo, user:example-user@example.com.

    • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: os conjuntos de principais a que você quer conceder papéis na sua organização. Por exemplo, //cloudresourcemanager.googleapis.com/organizations/0123456789012.

    Para tornar a política da organização condicional em uma tag, adicione um bloco condition ao rules. Se você adicionar uma regra condicional a uma política da organização, precisará incluir pelo menos uma regra não condicional. Caso contrário, a não será possível salvar a política. Para mais detalhes, consulte Como definir uma política da organização com tags.

  2. Defina a política com o comando org-policies set-policy e a flag spec:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    Substitua POLICY_PATH pelo caminho completo para o arquivo YAML da política da organização.

Para saber como testar a política no modo de simulação antes de aplicá-la, consulte Criar uma política da organização no modo de simulação.

Para saber como simular a política antes de aplicá-la, consulte Testar mudanças na política da organização com o Simulador de política.

REST

Para definir a política da organização, use o método organizations.policies.create.

POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies

O corpo JSON da solicitação contém a definição de uma política da organização. Se essa restrição não for compatível com parâmetros, omita o bloco parameters em rules.

{
  "name": "organizations/ORG_ID/policies/CONSTRAINT_NAME",
  "spec": {
    "rules": [
      {
        "enforce": true,
        "parameters": {
          "allowedMemberSubjects": [
            "ALLOWED_MEMBER_1",
            "ALLOWED_MEMBER_2"
          ],
          "allowedPrincipalSets": [
            "ALLOWED_PRINCIPAL_SET_1",
            "ALLOWED_PRINCIPAL_SET_2"
          ]
        }
      }
    ]
  }
}

Substitua:

  • ORG_ID: o ID numérico da sua organização Google Cloud.

  • CONSTRAINT_NAME: o nome da restrição que você quer definir.

  • ALLOWED_MEMBER_1, ALLOWED_MEMBER_2: os membros a quem você quer conceder papéis na sua organização, por exemplo, user:example-user@example.com.

  • ALLOWED_PRINCIPAL_SET_1, ALLOWED_PRINCIPAL_SET_2: os conjuntos de principais a que você quer conceder papéis na sua organização. Por exemplo, //cloudresourcemanager.googleapis.com/organizations/0123456789012.

Para tornar a política da organização condicional em uma tag, adicione um bloco condition ao rules. Se você adicionar uma regra condicional a uma política da organização, precisará incluir pelo menos uma regra não condicional. Caso contrário, a não será possível salvar a política. Para mais detalhes, consulte Como definir uma política da organização com tags.

Para saber como testar a política no modo de simulação antes de aplicá-la, consulte Criar uma política da organização no modo de simulação.

Para saber como simular a política antes de aplicá-la, consulte Testar mudanças na política da organização com o Simulador de política.

Usar políticas personalizadas da organização para implementar o compartilhamento restrito ao domínio

  1. Crie uma restrição personalizada que restrinja quais principais podem receber papéis na sua organização:

    1. Use a função memberInPrincipalSet da CEL com o principal da organização definido para restringir a concessão de papéis a membros da sua organização. Para saber como encontrar o ID da sua organização, consulte Como recuperar um conjunto principal da organização.

      Por exemplo, a restrição a seguir limita a concessão de papéis a membros da sua organização:

      name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly
      resourceTypes: iam.googleapis.com/AllowPolicy
      methodTypes:
        - CREATE
        - UPDATE
      condition:
        "resource.bindings.all(
          binding,
          binding.members.all(member,
            MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
          )
        )"
      actionType: ALLOW
      displayName: Only allow organization members to be granted roles
      
    2. Opcionalmente, refine a restrição adicionando outras funções da CEL, unidas por operadores lógicos (&&, || ou !). É possível adicionar qualquer uma das seguintes funções:

      Por exemplo, a restrição a seguir limita as concessões de papéis a membros da sua organização e a admin@example.com:

      name: organizations/ORG_ID/customConstraints/custom.allowInternalIdentitiesOnly
      resourceTypes: iam.googleapis.com/AllowPolicy
      methodTypes:
        - CREATE
        - UPDATE
      condition:
        "resource.bindings.all(
          binding,
          binding.members.all(member,
            (
              MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
              ||
              MemberSubjectMatches(member, ['user:admin@example.com'])
            )
          )
        )"
      actionType: ALLOW
      displayName: Only allow organization members and service agents to be granted roles
      
  2. Configure a restrição personalizada:

    Console

    Para criar uma restrição personalizada, faça o seguinte:

    1. No console do Google Cloud , acesse a página Políticas da organização.

      Acessar a página Políticas da organização

    2. No seletor de projetos, selecione o projeto em que você quer definir a política da organização.
    3. Clique em Restrição personalizada.
    4. Na caixa Nome de exibição, insira um nome legível para a restrição. Esse nome é usado em mensagens de erro e pode ser usado para identificação e depuração. Não use PII ou dados sensíveis em nomes de exibição, porque eles podem ser expostos em mensagens de erro. Esse campo pode ter até 200 caracteres.
    5. Na caixa ID da restrição, insira o nome que você quer para a nova restrição personalizada. Uma restrição personalizada só pode conter letras (maiúsculas e minúsculas) ou números, por exemplo, custom.disableGkeAutoUpgrade. Esse campo pode conter até 70 caracteres, sem contar o prefixo (custom.), por exemplo, organizations/123456789/customConstraints/custom. Não inclua PII ou dados sensíveis no ID da restrição, porque eles podem ser expostos em mensagens de erro.
    6. Na caixa Descrição, insira uma descrição legível da restrição. Essa descrição é usada como uma mensagem de erro quando a política é violada. Inclua detalhes sobre o motivo da violação e como resolver o problema. Não inclua PII ou dados sensíveis na descrição, porque eles podem ser expostos em mensagens de erro. Esse campo pode conter até 2.000 caracteres.
    7. Na caixa Tipo de recurso, selecione o nome do recurso REST do Google Cloud que contém o objeto e o campo que você quer restringir. Por exemplo, container.googleapis.com/NodePool. A maioria dos tipos de recursos aceita até 20 restrições personalizadas. Se você tentar criar mais restrições personalizadas, a operação vai falhar.
    8. Em Método de aplicação, selecione se quer aplicar a restrição em um método REST CREATE ou em ambos os métodos CREATE e UPDATE. Se você aplicar a restrição com o método UPDATE em um recurso que a viola, as mudanças nesse recurso serão bloqueadas pela política da organização, a menos que a mudança resolva a violação.
    9. Nem todos os serviços do Google Cloud aceitam os dois métodos. Para ver os métodos compatíveis com cada serviço, encontre o serviço em Serviços compatíveis.

    10. Para definir uma condição, clique em Editar condição.
      1. No painel Adicionar condição, crie uma condição de CEL que se refira a um recurso de serviço compatível, por exemplo, resource.management.autoUpgrade == false. Esse campo pode ter até 1.000 caracteres. Para detalhes sobre o uso da CEL, consulte Common Expression Language. Para mais informações sobre os recursos de serviço que você pode usar nas restrições personalizadas, consulte Serviços compatíveis com restrição personalizada.
      2. Clique em Salvar.
    11. Em Ação, selecione se você quer permitir ou negar o método avaliado quando a condição é atendida.
    12. A ação de negação significa que a operação para criar ou atualizar o recurso será bloqueada se a condição for avaliada como verdadeira.

      A ação de permissão significa que a operação para criar ou atualizar o recurso só é permitida se a condição for avaliada como verdadeira. Todos os outros casos, exceto os listados explicitamente na condição, estão bloqueados.

    13. Clique em Criar restrição.
    14. Quando você digita um valor em cada campo, a configuração YAML equivalente à restrição personalizada aparece à direita.

    gcloud

    1. Para criar uma restrição personalizada, crie um arquivo YAML com o seguinte formato:
    2. name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: RESOURCE_NAME
      methodTypes:
        - CREATE
      condition: "CONDITION"
      actionType: ACTION
      displayName: DISPLAY_NAME
      description: DESCRIPTION

      Substitua:

      • ORGANIZATION_ID: o ID da organização, como 123456789.
      • CONSTRAINT_NAME: o nome da sua nova restrição personalizada. Uma restrição personalizada só pode conter letras (maiúsculas e minúsculas) ou números, por exemplo, custom.allowInternalIdentitiesOnly. Esse campo pode ter até 70 caracteres.
      • RESOURCE_NAME: o nome totalmente qualificado do recurso Google Cloud que contém o objeto e o campo que você quer restringir. Por exemplo, iam.googleapis.com/AllowPolicy.
      • CONDITION: uma condição de CEL gravada em uma representação de um recurso de serviço compatível. Esse campo pode conter até 1.000 caracteres. Por exemplo, "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )".
      • Para mais informações sobre os recursos disponíveis para gravação de condições, consulte Recursos compatíveis.

      • ACTION: a ação a ser realizada se o condition for atendido. Só pode ser ALLOW.
      • A ação "permitir" significa que, se a condição for avaliada como verdadeira, a operação para criar ou atualizar o recurso será permitida. Isso também significa que todos os outros casos, exceto o listado explicitamente na condição, estão bloqueados.

      • DISPLAY_NAME: um nome legível para a restrição. Esse campo pode ter até 200 caracteres.
      • DESCRIPTION: uma descrição legível da restrição a ser exibida como uma mensagem de erro quando a política for violada. Esse campo pode conter até 2.000 caracteres.
    3. Depois de criar o arquivo YAML para uma nova restrição personalizada, faça a configuração necessária para disponibilizá-la para as políticas da organização. Para configurar uma restrição personalizada, use o comando gcloud org-policies set-custom-constraint:
    4. gcloud org-policies set-custom-constraint CONSTRAINT_PATH

      Substitua CONSTRAINT_PATH pelo caminho completo do arquivo de restrição personalizada. Por exemplo, /home/user/customconstraint.yaml.

      Após a conclusão, as restrições personalizadas vão estar disponíveis como políticas da organização na lista de políticas da organização do Google Cloud .

    5. Para verificar se a restrição personalizada existe, use o comando gcloud org-policies list-custom-constraints:
    6. gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID

      Substitua ORGANIZATION_ID pelo ID do recurso da organização.

      Para mais informações, consulte Como visualizar políticas da organização.

  3. Aplique a política personalizada da organização:

    Para aplicar uma restrição, crie uma política da organização que faça referência a ela e aplique essa política a um recurso do Google Cloud .

    Console

    1. No console do Google Cloud , acesse a página Políticas da organização.

      Acessar a página Políticas da organização

    2. No seletor de projetos, selecione o projeto em que você quer definir a política da organização.
    3. Na lista da página Políticas da organização, selecione uma restrição para acessar a página Detalhes da política associada.
    4. Para configurar a política da organização nesse recurso, clique em Gerenciar política.
    5. Na página Editar política, selecione Substituir a política do recurso pai.
    6. Clique em Adicionar uma regra.
    7. Na seção Aplicação, selecione se essa política da organização é aplicada ou não.
    8. Opcional: para tornar a política da organização condicional em uma tag, clique em Adicionar condição. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional para que a política seja salva. Para mais informações, consulte Como definir uma política da organização com tags.
    9. Clique em Testar mudanças para simular o efeito da política da organização. Para mais informações, consulte Testar mudanças na política da organização com o Simulador de política.
    10. Para aplicar a política da organização no modo de teste, clique em Definir política de simulação. Para mais informações, consulte Criar uma política da organização no modo de simulação.
    11. Depois de verificar se a política da organização no modo de simulação funciona como esperado, clique em Definir política para definir a política ativa.

    gcloud

    1. Para criar uma política da organização com regras booleanas, crie um arquivo YAML para a política que faça referência à restrição:
    2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      
      dryRunSpec:
        rules:
        - enforce: true

      Substitua:

      • PROJECT_ID: o projeto em que você quer aplicar a restrição.
      • CONSTRAINT_NAME: o nome definido para a restrição personalizada. Por exemplo, custom.allowInternalIdentitiesOnly.
    3. Para aplicar a política da organização no modo de teste, execute o seguinte comando com a flag dryRunSpec:
    4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

      Substitua POLICY_PATH pelo caminho completo para o arquivo YAML da política da organização. A política leva até 15 minutos para entrar em vigor.

    5. Depois de verificar se a política da organização no modo de simulação funciona conforme o esperado, defina a política ativa com o comando org-policies set-policy e a flag spec:
    6. gcloud org-policies set-policy POLICY_PATH --update-mask=spec

      Substitua POLICY_PATH pelo caminho completo para o arquivo YAML da política da organização. A política leva até 15 minutos para entrar em vigor.

Usar a restrição iam.allowedPolicyMemberDomains para implementar o compartilhamento restrito de domínio

A restrição de domínio é uma restrição gerenciada legada com a lista constraint_type. É possível especificar um conjunto de principais da organização ou um ID de cliente do Google Workspace na lista allowed_values de uma restrição de domínio. Para mais informações, consulte Conjunto de principais da organização x ID de cliente do Google Workspace.

Seu conjunto de principais da organização e ID do Google Workspace não são permitidos automaticamente. Para permitir que os principais na sua organização acessem recursos nela, o conjunto principal da organização ou o ID do Google Workspace precisa ser incluído como um conjunto principal permitido.

A restrição de domínio não permite negar valores, e uma política da organização não pode ser salva com IDs na lista denied_values.

É possível criar uma política da organização que aplique a 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.

Console

Para definir uma política da organização que inclua uma restrição de domínio, faça o seguinte:

  1. No console do Google Cloud , acesse a página Políticas da organização.

    Acessar a página Políticas da organização

  2. No seletor de projetos, selecione o recurso da organização em que você quer definir a política da organização.

  3. Na página Políticas da organização, selecione Compartilhamento restrito ao domínio na lista de restrições.

  4. Na página Detalhes da política, clique em Gerenciar política.

  5. Em É aplicável a, selecione Substituir a política do recurso pai.

  6. Clique em Adicionar uma regra.

  7. Em Valores da política, selecione "Personalizado".

  8. Em Tipo de política, selecione Permitir.

  9. Em Valores personalizados, insira um conjunto principal da organização ou um ID de cliente do Google Workspace no campo.

  10. Se quiser adicionar vários IDs, clique em Novo valor da política para criar um campo adicional.

  11. Clique em Concluído.

  12. Para tornar a restrição de domínio condicional em uma tag, clique em Adicionar condição.

    1. No campo Título, insira um nome para a condição.

    2. 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.

    3. 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.

      1. No menu Tipo de condição da guia Criador de condições, selecione Tag.

      2. 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.

      3. 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.

      4. 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.

      5. É possível excluir uma expressão clicando no X grande à direita dos campos de condição.

      6. Quando terminar de editar as condições, clique em Salvar.

  13. 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:

Somente as identidades especificadas na lista de allowed_values serão permitidas nas políticas de permissão depois que essa política da organização for aplicada. Para serem permitidos, os principais precisam estar no conjunto de principais da organização especificada ou fazer parte de um domínio especificado do Google Workspace.

Por exemplo, se você criou uma política da organização que permitia apenas o ID de cliente do domínio do Google Workspace da sua empresa, somente os principais associados a esse domínio poderiam ser adicionados à política de permissão a partir desse momento.

Exemplo de mensagem de erro

Quando a restrição gerenciada legada iam.allowedPolicyMemberDomains é violada ao tentar adicionar um principal que não está incluído na lista allowed_values, a operação falha e uma mensagem de erro é exibida.

Console

Captura de tela do 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 um conjunto principal da organização

É possível conseguir o ID do recurso da organização usando o console Google Cloud , a CLI gcloud ou a API Resource Manager.

Console

Para conseguir o ID do recurso da organização usando o Google Cloud console, faça o seguinte:

  1. Acesse o console do Google Cloud :

    Acesse o console do Google Cloud .

  2. No seletor de projetos na parte de cima da página, selecione o recurso da organização.
  3. 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 a que você pertence e os IDs correspondentes.

API

Para encontrar a ID do recurso da organização usando a API 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 principais a que ele pertence. Exemplo:

principalSet://iam.googleapis.com/organizations/01234567890123

Ao inserir o conjunto principal da organização, os seguintes principais podem receber papéis na sua organização:

  • Todos os pools de identidades da força de trabalho na sua organização
  • Todas as contas de serviço e pools de identidades da carga de trabalho em qualquer projeto da organização
  • Todos os agentes de serviço associados aos recursos da sua organização.

Para mais informações sobre identificadores principais do IAM, consulte Identificadores principais.

Como recuperar um ID de cliente do Google Workspace

Ao inserir o ID de cliente do Google Workspace, os seguintes principais podem receber papéis na sua organização:

  • Todas as identidades em todos os domínios associados ao seu ID de cliente do Google Workspace
  • Todos os pools de identidades da força de trabalho na sua organização
  • Todas as contas de serviço e pools de identidades da carga de trabalho em qualquer projeto da organização
  • Todos os agentes de serviço associados aos recursos da sua organização.

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:

  1. Receba um token de acesso do OAuth para o escopo https://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. 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.

Configurar exceções para o compartilhamento restrito de domínio

Alguns serviços do Google Cloud usam contas de serviço, agentes de serviço e outras contas para realizar ações em seu nome. O compartilhamento restrito por domínio pode impedir que essas contas recebam automaticamente os papéis do IAM necessários, o que pode causar falhas em determinadas ações.

A tabela a seguir lista ações no Google Cloud que podem ser afetadas pelo compartilhamento restrito ao domínio. Ele também lista as contas que precisam receber papéis automaticamente para que essas ações sejam bem-sucedidas.

Se você usa políticas da organização personalizadas ou a restrição gerenciada iam.managed.allowedPolicyMembers para implementar o compartilhamento restrito de domínio, considere adicionar essas contas como exceções à restrição. Para adicionar uma conta como exceção, adicione o identificador principal dela à lista de membros permitidos.

Se você usa a restrição gerenciada legada iam.allowedPolicyMemberDomains para implementar o compartilhamento restrito de domínios, talvez seja necessário forçar o acesso à conta para que essas contas executem as ações listadas.

Ação Identificador do principal
Ativar o coletor de registros do BigQuery para uma conta de faturamento serviceAccount:bUNIQUE_ID@gcp-sa-logging.iam.gserviceaccount.com
Ativar o registro de acesso ao armazenamento serviceAccount:cloud-storage-analytics@google.com
Usar o Pub/Sub como um endpoint para um app do Google Chat serviceAccount:chat-api-push@system.gserviceaccount.com
Usar o Pub/Sub para receber notificações do desenvolvedor em tempo real do Google Play serviceAccount:google-play-developer-notifications@system.gserviceaccount.com
Usar um URL assinado com o Cloud CDN serviceAccount:service-PROJECT_NUMBER@cloud-cdn-fill.iam.gserviceaccount.com
Autenticação de origem particular com o Cloud CDN serviceAccount:service-PROJECT_NUMBER@https-lb.iam.gserviceaccount.com

Serviços públicos do Cloud Run

O Cloud Run permite tornar os serviços públicos. No entanto, se você implementar o compartilhamento restrito de domínios, os usuários fora da sua organização não poderão acessar os serviços públicos do Cloud Run.

Para permitir que os usuários acessem serviços públicos do Cloud Run, é necessário desativar a verificação do IAM do invocador do Cloud Run para serviços do Cloud Run. Para mais informações, consulte Desativar o invoker do Cloud Run para serviços.

Compartilhar outros dados publicamente

Se você usa políticas personalizadas da organização para implementar o compartilhamento restrito de domínio, adicione uma exceção à política da organização para permitir o compartilhamento público de dados pessoais.

O compartilhamento público de dados envolve os principais especiais allUsers e allAuthenticatedUsers. Se você precisar compartilhar dados publicamente ao usar o compartilhamento restrito a um domínio, adicione uma exceção para esses principais. Só é possível adicionar exceções se você estiver usando políticas personalizadas da organização para implementar o compartilhamento restrito de domínio.

Para adicionar uma exceção para allUsers e allAuthenticatedUsers, crie uma política condicional personalizada da organização com base em tags de recursos.

  1. Crie uma chave de tag no recurso da sua organização.

    gcloud resource-manager tags keys create allUsersIngress \
      --parent=organizations/ORGANIZATION_ID
    

    Substitua ORGANIZATION_ID pelo ID da organização.

  2. Crie um valor para a chave de tag que você criou.

    gcloud resource-manager tags values create True \
    --parent=ORGANIZATION_ID/allUsersIngress \
    --description="Allow allUsers to access internal Cloud Run services"
    
  3. Anexe a tag aos recursos que você quer compartilhar publicamente.

  4. Crie uma restrição personalizada usando a função CEL memberSubjectMatches na expressão de condição da restrição.

    Por exemplo, a expressão de condição a seguir restringe as concessões de papéis a membros da sua organização, allUsers e allAuthenticatedUsers:

    name: organizations/ORGANIZATION_ID/customConstraints/custom.allowInternalAndSpecialIdentitiesOnly
    resourceTypes: iam.googleapis.com/AllowPolicy
    methodTypes:
      - CREATE
      - UPDATE
    condition:
      "resource.bindings.all(
        binding,
        binding.members.all(member,
          (
            MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID'])
            ||
            MemberSubjectMatches(member, ['allUsers', 'allAuthenticatedUsers'])
          )
        )
      )"
    actionType: ALLOW
    displayName: Only allow organization members, allusers, and allAuthenticatedUsers to be granted roles
    
  5. Crie uma política da organização que aplique a restrição personalizada.

    name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
    spec:
      rules:
      - allowAll: true
        condition:
          expression: resource.matchTag("ORGANIZATION_ID/allUsersIngress", "True")
          title: allowAllUsersIngress
    
  6. Aplique a política da organização.

    gcloud org-policies set-policy POLICY_PATH
    

    Substitua POLICY_PATH pelo caminho e nome do arquivo da política da organização.

A política condicional da organização permite conceder permissões à identidade allUsers em recursos marcados com allUsersIngress: true.

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:

  1. Remova a política da organização que contém a restrição de domínio.

  2. Permita que o projeto acesse a conta.

  3. 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:

  1. Crie um grupo do Google no domínio permitido.

  2. Use o painel de administrador do Google Workspace e desative a restrição de domínio para esse grupo.

  3. Adicione a conta de serviço ao grupo.

  4. Conceda acesso ao grupo do Google na política de permissão.