Gerenciar provedores e pools de identidade de carga de trabalho

Nesta página, explicamos como gerenciar os pools de identidade da carga de trabalho atuais e os provedores de identidade.

É possível gerenciar pools e provedores usando o Console do Google Cloud, a Google Cloud CLI ou a API REST.

Antes de começar

Crie um pool de identidade da carga de trabalho. Consulte uma das seguintes páginas para descobrir como:

Funções exigidas

Para as permissões necessárias para gerenciar pools e provedores de identidade de carga de trabalho, peça ao administrador que conceda a você os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos contêm as permissões necessárias para gerenciar pools e provedores de identidade da carga de trabalho. Para ver 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 os provedores e os pools de identidades da carga de trabalho:

  • Para visualizar pools e provedores de identidade de carga de trabalho:
    • iam.googleapis.com/workloadIdentityPoolProviders.get
    • iam.googleapis.com/workloadIdentityPoolProviders.list
    • iam.googleapis.com/workloadIdentityPools.get
    • iam.googleapis.com/workloadIdentityPools.list
  • Para criar, atualizar e excluir pools e provedores:
    • iam.googleapis.com/workloadIdentityPoolProviders.create
    • iam.googleapis.com/workloadIdentityPoolProviders.delete
    • iam.googleapis.com/workloadIdentityPoolProviders.undelete
    • iam.googleapis.com/workloadIdentityPoolProviders.update
    • iam.googleapis.com/workloadIdentityPools.create
    • iam.googleapis.com/workloadIdentityPools.delete
    • iam.googleapis.com/workloadIdentityPools.undelete
    • iam.googleapis.com/workloadIdentityPools.update

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Gerenciar pools de identidade da carga de trabalho

Nesta seção, mostramos como gerenciar pools de identidade da carga de trabalho.

Criar pools

Para criar pools de identidade da carga de trabalho em um projeto, faça o seguinte:

Console

No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

Acesse Pools de identidade da carga de trabalho

gcloud

Execute o comando gcloud iam workload-identity-pools create.

REST

Chame projects.locations.workloadIdentityPools.create().

Listar pools

Para listar todos os pools de identidades de carga de trabalho em um projeto, faça o seguinte:

Console

No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

Acesse Pools de identidade da carga de trabalho

gcloud

Execute o comando gcloud iam workload-identity-pools list.

REST

Chame projects.locations.workloadIdentityPools.list().

Acessar piscina

Para ver detalhes de um pool de identidades de carga de trabalho específico, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidade da carga de trabalho que você quer visualizar e clique no ícone Editar. O Console do Google Cloud mostra detalhes sobre o pool de identidades da carga de trabalho.

gcloud

Execute o comando gcloud iam workload-identity-pools describe.

REST

Chame projects.locations.workloadIdentityPools.get().

Atualizar um pool

É possível ativar ou desativar um pool de identidades de carga de trabalho. Também é possível alterar o nome de exibição ou a descrição.

Para atualizar um pool de identidades da carga de trabalho existente, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidade da carga de trabalho que você quer editar e clique no ícone Editar.

    Para desativar ou ativar o pool de identidades da carga de trabalho, clique no botão de alternância Status e em Desativar ou Ativar.

    Para editar o nome de exibição, clique em Editar ao lado dele. Atualize o nome e clique em Salvar.

    Para editar a descrição, use a CLI gcloud ou a API REST.

gcloud

Execute o comando gcloud iam workload-identity-pools update.

REST

Chame projects.locations.workloadIdentityPools.patch().

Excluir um pool

Ao excluir um pool de identidades de carga de trabalho, você também exclui os provedores de pools de identidades da carga de trabalho. Como resultado, as identidades no pool perdem o acesso aos recursos do Google Cloud.

É possível cancelar a exclusão de um pool até 30 dias após a exclusão. Depois desse período, a exclusão é permanente. Até que um pool seja excluído de modo permanente, você não poderá reutilizar o nome dele ao criar um novo pool de identidades de carga de trabalho.

Para excluir um pool de identidades da carga de trabalho e os provedores de identidade, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidade da carga de trabalho que você quer excluir e clique no ícone Editar.

  3. Clique em Excluir pool e em Excluir. O pool de identidades da carga de trabalho e os provedores de identidade dele são excluídos.

gcloud

Execute o comando gcloud iam workload-identity-pools delete.

REST

Chame projects.locations.workloadIdentityPools.delete().

Cancelar exclusão de um pool

É possível recuperar um pool de identidades de carga de trabalho excluído até 30 dias após a exclusão.

Para cancelar a exclusão de um pool, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Clique no botão de ativação Mostrar pools e provedores excluídos

  3. Encontre o pool de identidades de carga de trabalho que você quer cancelar a exclusão e clique no ícone Restaurar.

  4. Clique em Restaurar. O pool e os respectivos provedores são restaurados.

gcloud

Execute o comando gcloud iam workload-identity-pools undelete.

REST

Chame projects.locations.workloadIdentityPools.undelete().

Gerenciar provedores de pools de identidade da carga de trabalho

Nesta seção, mostramos como gerenciar provedores de pool de identidade da carga de trabalho.

Criar um provedor

Para criar um provedor de pools de identidade da carga de trabalho em um pool de identidades de carga de trabalho atual, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidades de carga de trabalho a que você quer adicionar um provedor e clique no ícone Editar.

  3. Clique em Adicionar provedor.

  4. Selecione o tipo de provedor a ser criado:

    • AWS: um provedor de identidade da Amazon Web Services (AWS).
    • OpenID Connect (OIDC): um provedor de identidade compatível com OIDC. Essa opção inclui o Microsoft Azure.
  5. Insira um nome para o provedor.

    O Console do Google Cloud usa o nome para criar um ID de provedor. Para alterar o ID do provedor, clique em Editar. Não será possível alterar o ID depois.

  6. Preencha os campos restantes para seu provedor:

    • AWS: insira o ID da conta do AWS.
    • OIDC: insira o URL do emissor. Para o Azure, o URL do emissor usa o formato https://sts.windows.net/AZURE_TENANT_ID. Para outros provedores, consulte a documentação deles.

    Quando terminar, clique em Continuar.

  7. Para configurar o mapeamento de atributos, clique em Editar mapeamento. O mapeamento de atributos permite usar informações sobre identidades externas para conceder acesso a um subconjunto dessas identidades.

  8. Opcional: para fornecer uma condição de atributo, que especifica as identidades que podem se autenticar, clique em Adicionar condição e digite uma expressão válida Linguagem de expressão comum (CEL, na sigla em inglês). Veja mais detalhes em Condições de atributo.

  9. Clique em Save. O provedor do pool de Identidade da carga de trabalho é criado.

gcloud

Execute o comando gcloud iam workload-identity-pools providers create-aws para criar um provedor da AWS.

Execute o comando gcloud iam workload-identity-pools providers create-oidc para criar um provedor OIDC. Essa opção inclui o Microsoft Azure.

REST

Chame projects.locations.workloadIdentityPools.providers.create().

Listar provedores

Para listar os provedores do pool de identidades de carga de trabalho em um projeto, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Para visualizar os provedores de um pool de identidades de carga de trabalho, clique no ícone Expandir nó do pool.

gcloud

Execute o comando gcloud iam workload-identity-pools providers list.

REST

Chame projects.locations.workloadIdentityPools.providers.list().

Acessar um provedor

Para ver detalhes de um provedor de pools de identidade de carga de trabalho específico, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidades da carga de trabalho que contém o provedor e clique no ícone Expandir nó do pool.

  3. Encontre o provedor de pool de identidades de carga de trabalho que você quer visualizar e clique no ícone Editar. O Console do Google Cloud mostra informações detalhadas sobre o provedor.

gcloud

Execute o comando gcloud iam workload-identity-pools providers describe.

REST

Chame projects.locations.workloadIdentityPools.providers.get().

Atualizar um provedor

É possível ativar ou desativar um provedor de pool de identidades de carga de trabalho. Também é possível atualizar as informações da conta e o mapeamento de atributos, além do nome de exibição e descrição.

Para atualizar um provedor de pools de identidade da carga de trabalho atual, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidade de carga de trabalho que contém o provedor e clique no ícone Expandir nó no pool.

  3. Encontre o provedor de pool de Identidade da carga de trabalho que você quer editar e clique no ícone Editar.

  4. Edite as informações do provedor e clique em Salvar.

gcloud

Execute o comando gcloud iam workload-identity-pools providers update-aws para atualizar um provedor da AWS.

Execute o comando gcloud iam workload-identity-pools providers update-oidc para atualizar um provedor OIDC. Essa opção inclui o Microsoft Azure.

REST

Chame projects.locations.workloadIdentityPools.providers.patch().

Excluir um provedor

Quando você exclui um provedor de pool de identidades de carga de trabalho, as identidades do provedor perdem o acesso aos recursos do Google Cloud.

É possível cancelar a exclusão de um provedor até 30 dias após a exclusão. Depois desse período, a exclusão é permanente. Até que um provedor seja excluído de modo permanente, você não poderá reutilizar o nome dele ao criar um novo provedor.

Para excluir um provedor de pool de Identidade da carga de trabalho, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Encontre o pool de identidade de carga de trabalho que contém o provedor e clique no ícone Editar.

  3. No painel Provedores, encontre o provedor que você quer excluir e clique no ícone Excluir.

  4. Clique em Excluir para excluir o provedor.

gcloud

Execute o comando gcloud iam workload-identity-pools providers delete.

REST

Chame projects.locations.workloadIdentityPools.providers.delete().

Cancelar a exclusão de um provedor

É possível recuperar um provedor de pools de identidades de carga de trabalho excluído até 30 dias após a exclusão. Para cancelar a exclusão de um provedor:

Console

  1. No Console do Google Cloud, acesse a página Pools de Identidades da carga de trabalho.

    Acesse Pools de identidade da carga de trabalho

  2. Clique no botão Mostrar provedores e pools excluídos.

  3. Encontre o pool de identidades da carga de trabalho que contém o provedor e clique no ícone Expandir nó do pool.

  4. Encontre o provedor para o qual você quer cancelar a exclusão e clique no ícone Restaurar.

  5. Clique em Restaurar. O provedor é restaurado.

gcloud

Execute o comando gcloud iam workload-identity-pools providers undelete.

REST

Chame projects.locations.workloadIdentityPools.providers.undelete().

Gerenciar restrições da federação de identidade da carga de trabalho

Você pode usar restrições da política da organização para restringir como os recursos em sua organização do Google Cloud podem ser usados.

Nesta seção, descrevemos as restrições recomendadas quando você usa a federação de identidade de carga de trabalho.

Restringir a configuração do provedor de identidade

Como administrador da organização, você precisa decidir com quais provedores de identidade sua organização poderá federar.

Para gerenciar quais provedores de identidade são permitidos, ative a restrição de lista constraints/iam.workloadIdentityPoolProviders na política da organização. Essa restrição especifica os URIs do emissor dos provedores permitidos. Use o Console do Google Cloud ou a Google Cloud CLI para ativar essa restrição.

Para permitir somente a federação da AWS, crie uma única restrição com o URI https://sts.amazonaws.com. O exemplo a seguir mostra como criar essa restrição usando a CLI gcloud:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.amazonaws.com --organization=ORGANIZATION_NUMBER

Também é possível especificar quais IDs de conta da AWS têm acesso aos seus recursos do Google Cloud. Para especificar os IDs da conta, use a restrição de lista constraints/iam.workloadIdentityPoolAwsAccounts:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolAwsAccounts \
    ACCOUNT_ID --organization=ORGANIZATION_NUMBER

Para permitir a federação de apenas um provedor OIDC, crie uma restrição única com o issuer_uri do provedor permitido. O exemplo a seguir só permite a federação de um locatário Azure específico:

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.windows.net/AZURE_TENANT_ID --organization=ORGANIZATION_NUMBER

A federação de um provedor de identidade SAML é um caso especial, porque as chaves públicas usadas para validar a declaração são fornecidas no momento da configuração, em vez de buscadas diretamente no provedor de identidade. Portanto, é recomendável que um usuário mal-intencionado tente fazer upload de um documento de metadados SAML com o código de entidade do provedor de identidade da sua organização, mas uma chave pública a que ele tem acesso à chave privada. A restrição da federação pelo ID da entidade nesse cenário oferece apenas uma ilusão de segurança. Por esse motivo, recomendamos que você permita apenas a criação de um pool de Identidade da carga de trabalho que permita a federação SAML em um projeto do Google Cloud gerenciado pela sua organização. É possível conceder identidades externas nesse acesso de pool de Identidade da carga de trabalho a recursos em toda a organização.

Para permitir a federação de provedores de identidade SAML, crie uma restrição que permita a palavra-chave especial KEY_UPLOAD.

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     KEY_UPLOAD --organization=ORGANIZATION_NUMBER

Repita esses comandos para permitir a federação de outros provedores.

Para bloquear a federação de todos os provedores:

  1. Crie um arquivo YAML contendo o seguinte:

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
    
  2. Transmita o arquivo para o comando gcloud resource-manager org-policies set-policy:

    gcloud resource-manager org-policies set-policy FILE_NAME.yaml \
        --organization=ORGANIZATION_NUMBER
    

Restringir a criação de chave de conta de serviço

A federação de identidade de carga de trabalho permite acessar recursos do Google Cloud de fora do Google Cloud sem usar uma chave de conta de serviço. Se você nunca usa chaves de conta de serviço para se autenticar, é possível reduzir o risco desativando a criação de chaves.

Para desativar a criação de chaves de conta de serviço, aplique a restrição booleana iam.disableServiceAccountKeyCreation na política da organização. Também é possível aplicar a restrição booleana iam.disableServiceAccountKeyUpload, que desativa o upload de chaves públicas para contas de serviço.

Use o Console do Google Cloud ou a CLI gcloud para ativar essas restrições. Por exemplo, os seguintes comandos da CLI gcloud ativam as duas restrições:

gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyCreation \
    --organization=ORGANIZATION_NUMBER
gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyUpload \
    --organization=ORGANIZATION_NUMBER

Monitorar a federação de identidade da carga de trabalho

É possível usar as métricas do Cloud Monitoring para monitorar eventos de autenticação dos pools e provedores de identidades da carga de trabalho. Para uma lista de métricas disponíveis, consulte Métricas do IAM.

A seguir

Saiba mais sobre a federação de identidade da carga de trabalho.