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 ver pools e provedores: leitor do pool de Identidade da carga de trabalho do IAM (roles/iam.workloadIdentityPoolViewer)
  • Para visualizar, criar, atualizar e excluir pools e provedores: administrador de pool de Identidade da carga de trabalho do IAM (roles/iam.workloadIdentityPoolAdmin)

Para mais informações sobre como conceder papéis, consulte Gerenciar o 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

  • 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

Listar pools

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

Console

No console, acesse a página Pools da Identidade 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, acesse a página Pools da Identidade 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 mostra detalhes sobre o pool da Identidade 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, acesse a página Pools da Identidade 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, acesse a página Pools da Identidade 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, acesse a página Pools da Identidade 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

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, acesse a página Pools da Identidade 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 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, acesse a página Pools da Identidade 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, acesse a página Pools da Identidade 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 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, acesse a página Pools da Identidade 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, acesse a página Pools da Identidade 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, acesse a página Pools da Identidade 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 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 identidades de carga de trabalho que permita a federação SAML em um projeto do GCP gerenciado pela sua organização. É possível conceder identidades externas nesse acesso de pool de identidades de 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 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 federações de identidade da carga de trabalho

A federação de identidade da carga de trabalho fornece várias métricas do Cloud Monitoring para você monitorar seus provedores e pools de identidade da carga de trabalho. Consulte a documentação do Cloud Monitoring para mais informações sobre como visualizar ou configurar alertas personalizados nessas métricas.

Tipo de métrica Etapa do lançamento
Nome de exibição
Classe, Tipo, Unidade
Recursos monitorados
Descrição
Rótulos
iam.googleapis.com/workload_identity_federation/count BETA
Contagem de federação de identidade da carga de trabalho
DELTAINT641
iam.googleapis.com/WorkloadIdentityPoolProvider
Contagem de trocas de tokens usando a federação de identidade da carga de trabalho.
result: se a solicitação for bem-sucedida, o valor será success. Se a solicitação falhar, o valor corresponderá a um dos possíveis tipos de erro OAuth 2.0 documentados em https://tools.ietf.org/html/rfc6749#section-5.2, por exemplo, invalid_client.
iam.googleapis.com/workload_identity_federation/key_usage_count
Contagem de uso de chaves de federação da identidade da carga de trabalho. No momento, essa métrica rastreia somente chaves SAML.
DELTAINT641
iam.googleapis.com/WorkloadIdentityPoolProvider
Contagem de vezes que uma chave é usada como parte da federação de identidade da carga de trabalho.
key: o identificador de uma chave pública usada durante uma federação de identidade de carga de trabalho.
use: para que a chave foi usada. Estes são os valores possíveis para use (outros valores podem ser adicionados no futuro):
  • verify: verifica uma assinatura

A seguir

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