Como gerenciar pools e provedores de identidade de carga de trabalho

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

É possível gerenciar pools e provedores usando a ferramenta de linha de comando gcloud ou a API REST. O uso do Console do Cloud ou das bibliotecas de cliente do Google Cloud não é compatível com a versão Beta.

Antes de começar

Crie um pool de identidade de carga de trabalho e configure um provedor de identidade. Consulte uma das seguintes páginas para descobrir como fazer isso:

Como gerenciar pools de identidade da carga de trabalho

Como criar um pool

Para criar um pool de identidades de carga de trabalho:

gcloud

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

REST

Chame projects.locations.workloadIdentityPools.create().

Como listar pools

Para listar todos os pools de identidades de carga de trabalho em um projeto:

gcloud

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

REST

Chame projects.locations.workloadIdentityPools.list().

Como conseguir um pool

Para ver detalhes de um pool de identidades de carga de trabalho específico:

gcloud

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

REST

Chame projects.locations.workloadIdentityPools.get().

Como atualizar um pool

Para atualizar um pool de identidades da carga de trabalho existente:

gcloud

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

REST

Chame projects.locations.workloadIdentityPools.patch().

Como excluir um pool

Para excluir um pool de identidades de carga de trabalho:

gcloud

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

REST

Chame projects.locations.workloadIdentityPools.delete().

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

Como cancelar a 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:

gcloud

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

REST

Chame projects.locations.workloadIdentityPools.undelete().

Como gerenciar provedores de identidade de carga de trabalho

Como criar um provedor

Para criar um provedor de identidade de carga de trabalho:

gcloud

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

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

REST

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

Como listar provedores

Para listar todos os provedores de identidades de carga de trabalho em um projeto:

gcloud

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

REST

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

Como conseguir um provedor

Para ver detalhes de um provedor de identidades de carga de trabalho específico:

gcloud

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

REST

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

Como atualizar um provedor

Para atualizar um provedor de identidades de carga de trabalho existente:

gcloud

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

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

REST

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

Como excluir um provedor

Para excluir um provedor de identidades de carga de trabalho:

gcloud

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

REST

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

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

Como cancelar a exclusão de um pool

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

gcloud

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

REST

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

Como restringir a configuração do provedor de identidade usando políticas da organização

Por padrão, qualquer usuário com o papel Administrador de pool de Identidade da carga de trabalho (roles/iam.workloadIdentityPoolAdmin) pode configurar a federação com qualquer provedor de identidade compatível. No entanto, como administrador da organização, convém conceder acesso apenas a recursos de provedores confiáveis específicos.

Limite os provedores de identidade permitidos usando políticas da organização. No Console do Cloud ou usando a ferramenta de linha de comando gcloud, ative a restrição constraints/iam.workloadIdentityPoolProviders e especifique os URIs de emissor dos provedores permitidos.

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 ferramenta de linha de comando gcloud:

gcloud beta resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.amazonaws.com --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 beta resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.windows.net/azure-tenant-id --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 beta resource-manager org-policies set-policy:

    gcloud beta resource-manager org-policies set-policy file-name.yaml \
        --organization=organization-number
    

Para permitir a federação de qualquer provedor, exclua todas as restrições constraints/iam.workloadIdentityPoolProviders da sua organização.

A seguir