Configure a federação de identidades de cargas de trabalho com outros fornecedores de identidade

Este guia descreve como usar a Workload Identity Federation com outros fornecedores de identidade (IdPs).

Para se autenticar no Trusted Cloud, pode permitir que a carga de trabalho troque as suas credenciais específicas do ambiente por credenciais Trusted Cloud de curta duração através da federação de identidades da carga de trabalho.

As cargas de trabalho executadas fora do Trusted Cloud podem ter acesso a credenciais existentes específicas do ambiente, por exemplo:

  • Uma carga de trabalho pode conseguir obter um token de afirmação do OpenID Connect (OIDC) de um fornecedor de identidade (IdP).

  • Uma carga de trabalho pode obter um token de afirmação SAML de um fornecedor de identidade (IdP).

A utilização da Workload Identity Federation pode ajudar a reduzir o número de credenciais que requerem rotação.

As secções seguintes descrevem como pode usar a Workload Identity Federation com IdPs que suportam os protocolos de autenticação OpenID Connect (OIDC) ou SAML.

Prepare o IdP externo

Só tem de realizar estes passos uma vez para cada IdP.

Antes de começar, verifique se o seu IdP externo cumpre os seguintes requisitos:

OIDC

  • O IdP suporta o OpenID Connect 1.0.

  • O IdP tem um URI do emissor.

  • O JWK do IdP usado para validar um token de declaração OIDC pode ser fornecido de uma das seguintes formas:

    • Pontos finais de metadados OIDC protegidos com SSL e TLS. Os URLs dos pontos finais têm de começar por https:// e os pontos finais são acessíveis publicamente através da Internet. Os pontos finais protegidos com certificados autoassinados não são suportados pelo Trusted Cloud.

      Trusted Cloud usa estes pontos finais para transferir o JWK do seu IdP e usa este conjunto de chaves para validar tokens.

    • Ficheiros JWKS do OIDC carregados diretamente para o Trusted Cloud. Ao usar este método, o ponto final não precisa de ser acessível publicamente. Os campos x5c e x5t no interior de JWK não são suportados e têm de ser removidos antes do carregamento.

SAML

  • O IdP suporta SAML 2.0.

  • O IdP fornece um documento de metadados do SP SAML que descreve a configuração do fornecedor de serviços SAML e contém o certificado de assinatura do IdP.

    Trusted Cloud usa este certificado para validar as afirmações e as respostas SAML.

  • Os requisitos da chave de assinatura X.509 SAML incluem o seguinte:

    • Uma chave pública RSA envolvida num certificado X.509 v3.

    • Requisitos de validade do certificado:

      • notBefore: uma data/hora que não seja superior a 7 dias no futuro
      • notAfter: uma data/hora que não seja superior a 25 anos no futuro
    • Algoritmos recomendados:

Um fornecedor do Workload Identity Pool pode ser configurado com, no máximo, três chaves de assinatura num determinado momento. Quando existem várias chaves, Trusted Cloud itera por elas e tenta usar cada chave não expirada para satisfazer um pedido de troca de tokens.

Como prática recomendada de segurança, recomendamos vivamente que não reutilize o mesmo par de chaves com outros serviços.

Se o seu IdP cumprir estes critérios, faça o seguinte:

OIDC

Configure o seu IdP para que a sua carga de trabalho possa obter tokens de ID que cumpram os seguintes critérios:

  • Os tokens são assinados com o algoritmo RS256 ou ES256.
  • Os tokens contêm uma reivindicação aud com o seguinte valor:

    https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
    

    Substitua o seguinte:

    • PROJECT_NUMBER: o número do projeto do projeto que usa para criar o Workload Identity Pool. Trusted Cloud
    • POOL_ID: um ID à sua escolha que identifica o Workload Identity Pool. Tem de usar o mesmo ID quando criar o Workload Identity Pool mais tarde.
    • WORKLOAD_PROVIDER_ID: um ID à sua escolha que identifica o fornecedor do Workload Identity Pool. Tem de usar o mesmo ID quando criar o fornecedor do Workload Identity Pool mais tarde.

    Em alternativa, pode configurar o fornecedor do Workload Identity Pool para esperar um público-alvo personalizado.

  • Os tokens contêm uma reivindicação exp que está no futuro e uma reivindicação iat que está no passado.

    O valor de exp tem de ser superior ao valor de iat, no máximo, 24 horas.

Normalmente, é melhor usar tokens de ID quando faz uma troca de tokens, porque os tokens de ID refletem a identidade do utilizador. Se decidir usar tokens de acesso, certifique-se de que estes cumprem os seguintes requisitos adicionais:

  • Os tokens de acesso estão no formato JSON Web Token
  • Os tokens de acesso contêm uma reivindicação ISSUER para que o URL ISSUER/.well-known/openid-configuration aponte para o ponto final de metadados OIDC do IdP.

  • Para carregar chaves JWK locais, consulte o artigo Faça a gestão de JWKs OIDC.

SAML

Configure o IdP para que as afirmações SAML contenham elementos que cumpram os seguintes critérios:

  • Um elemento Issuer definido como o ID da entidade configurado no fornecedor do Workload Identity Pool. O formato do emissor tem de ser omitido ou definido como urn:oasis:names:tc:SAML:2.0:nameid-format:entity.
  • Um elemento Subject com:
    • um elemento NameID.
    • Exatamente um elemento SubjectConfirmation com Method definido como urn:oasis:names:tc:SAML:2.0:cm:bearer.
    • Um elemento SubjectConfirmationData com NotOnOrAfter definido como uma data/hora que ocorre no futuro e nenhum valor NotBefore.
  • Um elemento Conditions com:

    • NotBefore omitido ou no passado.
    • NotOnOrAfter omitidos ou no futuro.
    • Um Audience formatado da seguinte forma:

      https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID
      

      Substitua o seguinte:

      • PROJECT_NUMBER: o número do projeto do projeto que usa para criar o Workload Identity Pool. Trusted Cloud
      • POOL_ID: um ID à sua escolha que identifica o Workload Identity Pool. Tem de usar o mesmo ID quando criar o Workload Identity Pool mais tarde.
      • WORKLOAD_PROVIDER_ID: um ID à sua escolha que identifica o fornecedor do Workload Identity Pool. Tem de usar o mesmo ID quando criar o fornecedor do Workload Identity Pool mais tarde.
  • pelo menos um elemento AuthnStatement.

  • Um elemento SessionNotOnOrAfter com uma indicação de tempo que ocorre no futuro. Em alternativa, omita o elemento.

Para afirmações SAML incluídas numa resposta SAML, a resposta SAML tem de conter:

  • Exatamente uma afirmação que cumpre os critérios de afirmação SAML descritos anteriormente nesta secção.
  • Um atributo IssueInstant com um valor inferior a 1 hora no passado.
  • StatusCode urn:oasis:names:tc:SAML:2.0:status:Success.

A declaração SAML, a resposta ou ambas têm de ser assinadas.

Configure a Workload Identity Federation

Só tem de realizar estes passos uma vez para cada IdP. Em seguida, pode usar o mesmo Workload Identity Pool e fornecedor para várias cargas de trabalho e em vários Trusted Cloud projetos.

Para começar a configurar a Workload Identity Federation, faça o seguinte:

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Go to project selector

  2. É recomendável usar um projeto dedicado para gerir os fornecedores e os conjuntos de identidades de carga de trabalho.
  3. Verify that billing is enabled for your Trusted Cloud project.

  4. Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.

    Enable the APIs

Faça a gestão de JWKs OIDC carregados por si (opcional)

Esta secção mostra como gerir JWKs OIDC carregados por si nos fornecedores OIDC do Workload Identity Pool.

Crie um fornecedor e carregue JWKs do OIDC

Para criar JWKs OIDC, consulte Implementações de JWT, JWS, JWE, JWK e JWA.

Para carregar um ficheiro JWK OIDC quando cria um fornecedor do Workload Identity Pool, execute o comando gcloud iam workload-identity-pools providers create-oidc com --jwk-json-path="JWK_JSON_PATH". Substitua JWK_JSON_PATH pelo caminho para o ficheiro JSON de JWKs.

Esta operação cria chaves carregadas com as do ficheiro.

Atualize os JWKs do OIDC

Para atualizar os JWKs de OIDC, execute o comando gcloud iam workload-identity-pools providers update-oidc com --jwk-json-path="JWK_JSON_PATH". Substitua JWK_JSON_PATH pelo caminho para o ficheiro JSON de JWKs.

Esta operação substitui todas as chaves carregadas existentes pelas chaves no ficheiro. Não pode restaurar as chaves substituídas.

Elimine todos os JWKs OIDC carregados

Para eliminar todos os JWKs OIDC carregados e voltar a usar o URI do emissor para obter as chaves, execute o comando gcloud iam workload-identity-pools providers update-oidc com --jwk-json-path="JWK_JSON_PATH". Substitua JWK_JSON_PATH pelo caminho para um ficheiro vazio. Use a flag --issuer-uri para definir o URI do emissor.

Esta operação elimina todas as chaves carregadas existentes e substitui-as pelas chaves no ficheiro. Não pode restaurar as chaves eliminadas.

Defina um mapeamento de atributos e uma condição

Os tokens OIDC ou as afirmações SAML emitidas pelo seu IdP podem conter vários atributos, e tem de decidir que atributo quer usar como identificador do assunto (google.subject) em Trusted Cloud.

Opcionalmente, pode mapear atributos adicionais. Em seguida, pode consultar estes atributos quando conceder acesso a recursos.

OIDC

Os mapeamentos de atributos podem usar as reivindicações incorporadas no token de ID ou no token de acesso emitido pelo IdP externo.

Tem de mapear uma destas reivindicações para google.subject para identificar o utilizador de forma exclusiva. Para se proteger contra ameaças de roubo de identidade, escolha uma reivindicação com um valor exclusivo que não possa ser alterado.

Muitos IdPs preenchem a reivindicação sub com um ID exclusivo e imutável. Para estes IdPs, considere mapear a reivindicação sub para google.subject:

google.subject=assertion.sub

Evite usar uma reivindicação como email para este fim. Normalmente, os endereços de email podem ser reatribuídos ou alterados, pelo que não identificam um utilizador de forma única e permanente.

SAML

Os mapeamentos de atributos podem usar os elementos <Subject> e <Attribute> incorporados na declaração emitida pelo IdP externo. Os atributos SAML podem ser referidos através das seguintes palavras-chave:

  • assertion.subject contém o NameID do utilizador autenticado encontrado no elemento <Subject>.
  • assertion.attributes['ATTRIBUTE_NAME'] contém uma lista de valores para o elemento <Attribute> com o mesmo nome.

Tem de mapear uma destas reivindicações para google.subject para identificar o utilizador de forma única. Para se proteger contra ameaças de roubo de identidade, escolha uma reivindicação com um valor único que não possa ser alterado.

Muitos IdPs preenchem o elemento NameId com um ID exclusivo e imutável. Para estes IdPs, considere mapear o atributo NameId para google.subject:

google.subject=assertion.subject

Evite usar um atributo como http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress para este fim. Normalmente, é possível reatribuir ou alterar os endereços de email, pelo que não identificam um utilizador de forma única e permanente.

Opcionalmente, defina uma condição de atributo. As condições de atributos são expressões CEL que podem verificar atributos de afirmação e atributos de destino. Se a condição do atributo for avaliada como true para uma determinada credencial, a credencial é aceite. Caso contrário, a credencial é rejeitada.

OIDC

Pode usar uma condição de atributo para restringir os utilizadores que podem usar a Workload Identity Federation para obter tokens Trusted Cloud de curta duração.

Por exemplo, a seguinte condição restringe o acesso a tokens que contêm uma reivindicação service_account personalizada com um valor true:

assertion.service_account==true

SAML

Pode usar uma condição de atributo para restringir os utilizadores que podem usar a Workload Identity Federation para obter tokens Trusted Cloud de curta duração.

Por exemplo, a seguinte condição restringe o acesso a afirmações que contêm um atributo personalizado https://example.com/SAML/Attributes/AllowGcpFederation com um valor true:

assertion.attributes['https://example.com/SAML/Attributes/AllowGcpFederation'][0]=='true'

Crie o Workload Identity Pool e o fornecedor

Funções necessárias

Para obter as autorizações de que precisa para configurar a Workload Identity Federation, peça ao seu administrador para lhe conceder as seguintes funções de IAM no projeto:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Em alternativa, a função básica de proprietário da IAM (roles/owner) também inclui autorizações para configurar a federação de identidades. Não deve conceder funções básicas num ambiente de produção, mas pode concedê-las num ambiente de desenvolvimento ou teste.

Já recolheu todas as informações necessárias para criar um Workload Identity Pool e um fornecedor:

Consola

  1. Na Trusted Cloud consola, aceda à página Novo fornecedor e conjunto de cargas de trabalho.

    Aceda a Novo fornecedor e Workload Identity Pool

  2. Em Crie um Identity Pool, introduza o seguinte:

    • Nome: nome do conjunto. O nome também é usado como ID do conjunto. Não pode alterar o ID do conjunto mais tarde.
    • Descrição: texto que descreve a finalidade do grupo.
  3. Clique em Continuar.

  4. Configure as definições do fornecedor da seguinte forma:

    OIDC

    • Em Selecionar um fornecedor, selecione OpenID Connect (OIDC).
    • Em Nome do fornecedor, introduza um nome para o fornecedor. O nome também é usado como ID do fornecedor. Não é possível alterar o ID do fornecedor depois de o fornecedor ser criado.
    • Em URL do emissor, introduza o URL do emissor do seu IdP. O URL tem de começar por https://
    • Opcional: em Ficheiro JWK (JSON), escolha um ficheiro JWK para carregar. Se este campo não for fornecido,o Trusted Cloud tenta obter um JWK do emissor.
    • Públicos-alvo permitidos: público-alvo esperado dos tokens de ID.

    SAML

    • Em Selecionar um fornecedor, selecione SAML.
    • Em Nome do fornecedor, introduza um nome para o fornecedor. O nome também é usado como ID do fornecedor. Não é possível alterar o ID do fornecedor depois de o fornecedor ser criado.
    • Em Ficheiro de metadados do IDP (XML), carregue o documento XML de metadados SAML fornecido pelo seu fornecedor de identidade.
  5. Clique em Continuar.

  6. Em Configurar atributos do fornecedor, adicione os mapeamentos de atributos que identificou anteriormente neste guia.

  7. Em Condições de atributos, introduza a condição de atributo que identificou anteriormente neste guia. Deixe o campo em branco se não tiver uma condição de atributo.

  8. Para criar o Workload Identity Pool e o fornecedor, clique em Guardar.

gcloud

  1. Para criar um novo Workload Identity Pool, execute o seguinte comando:

    gcloud iam workload-identity-pools create POOL_ID \
        --location="global" \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Substitua o seguinte:

    • POOL_ID: o ID exclusivo do conjunto.
    • DISPLAY_NAME: o nome do conjunto.
    • DESCRIPTION: uma descrição do grupo que escolhe. Esta descrição é apresentada quando concede acesso a identidades de conjunto.
  2. Para adicionar um fornecedor do Workload Identity Pool, faça o seguinte:

    OIDC

    Para adicionar um fornecedor do Workload Identity Pool de OIDC, execute o seguinte comando:

    gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \
        --location="global" \
        --workload-identity-pool="POOL_ID" \
        --issuer-uri="ISSUER" \
        --allowed-audiences="AUDIENCE" \
        --attribute-mapping="MAPPINGS" \
        --attribute-condition="CONDITIONS"
        --jwk-json-path="JWK_JSON_PATH"
    

    Substitua o seguinte:

    • WORKLOAD_PROVIDER_ID: um ID do fornecedor do Workload Identity Pool exclusivo à sua escolha.
    • POOL_ID: o ID do Workload Identity Pool que criou anteriormente.
    • ISSUER: um URI do emissor, conforme definido nos metadados do OIDC.
    • AUDIENCE: o público-alvo esperado dos tokens de ID, que, para muitos fornecedores, corresponde ao ID de cliente.
    • MAPPINGS: uma lista separada por vírgulas de mapeamentos de atributos que criou anteriormente neste guia.
    • CONDITIONS: uma condição de atributo opcional que criou anteriormente neste guia. Remova o parâmetro se não tiver uma condição de atributo.
    • JWK_JSON_PATH: Um caminho opcional para um JWKs do OIDC carregado localmente. Se este parâmetro não for fornecido,o Trusted Cloud usa o caminho /.well-known/openid-configuration do seu IdP para obter os JWKs que contêm as chaves públicas.

    SAML

    Para adicionar um fornecedor do Workload Identity Pool SAML, execute o seguinte comando:

    gcloud iam workload-identity-pools providers create-saml WORKLOAD_PROVIDER_ID \
        --location="global" \
        --workload-identity-pool="POOL_ID" \
        --idp-metadata-path="IDP_METADATA_PATH" \
        --attribute-mapping="MAPPINGS" \
        --attribute-condition="CONDITIONS"
    

    Substitua o seguinte:

    • POOL_ID: o ID do conjunto
    • IDP_METADATA_PATH: o caminho local para o documento de metadados do IdP SAML
    • MAPPINGS: uma lista separada por vírgulas de mapeamentos de atributos que criou anteriormente neste guia
    • CONDITIONS: Opcional: a condição do atributo que criou anteriormente neste guia

    O prefixo gcp- está reservado e não pode ser usado num ID do Workload Identity Pool ou do fornecedor do Workload Identity Pool.

    Opcional: aceite afirmações SAML encriptadas do seu IdP

    Para permitir que o seu IdP SAML 2.0 produza afirmações SAML encriptadas que podem ser aceites pela federação de identidade da carga de trabalho, faça o seguinte:

    • Na federação de identidade da carga de trabalho, faça o seguinte:
      • Crie um par de chaves assimétricas para o fornecedor do Workload Identity Pool.
      • Transferir um ficheiro de certificado que contém a chave pública.
      • Configure o seu IdP SAML para usar a chave pública para encriptar as afirmações SAML que emite.
    • No IdP, faça o seguinte:
      • Ative a encriptação de afirmações, também conhecida como encriptação de tokens.
      • Carregue a chave pública que criou na federação de identidade da carga de trabalho.
      • Confirme que o seu IdP produz afirmações SAML encriptadas.
    Tenha em atenção que, mesmo com as chaves do fornecedor de encriptação SAML configuradas, a federação de identidade da carga de trabalho pode continuar a processar uma afirmação de texto simples.

    Crie chaves de encriptação de afirmações SAML de federação de identidade da força de trabalho

    Esta secção explica como criar um par de chaves assimétricas que permite à federação de identidades de cargas de trabalho aceitar afirmações SAML encriptadas.

    Trusted Cloud by S3NS usa a chave privada para desencriptar as afirmações SAML emitidas pelo seu IdP. Para criar um par de chaves assimétricas para utilização com a encriptação SAML, execute o seguinte comando. Para saber mais, consulte o artigo Algoritmos de encriptação SAML suportados.

    gcloud iam workload-identity-pools providers keys create KEY_ID \
        --workload-identity-pool WORKLOAD_POOL_ID \
        --provider WORKLOAD_PROVIDER_ID \
        --location global \
        --use encryption \
        --spec KEY_SPECIFICATION

    Substitua o seguinte:

    • KEY_ID: um nome de chave à sua escolha
    • WORKLOAD_POOL_ID: o ID da piscina
    • WORKLOAD_PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool
    • KEY_SPECIFICATION: a especificação principal, que pode ser uma das seguintes: rsa-2048, rsa-3072 e rsa-4096.

    Depois de criar o par de chaves, para transferir a chave pública para um ficheiro de certificado, execute o seguinte comando. Apenas a federação de identidade da carga de trabalho tem acesso à chave privada.

    gcloud iam workload-identity-pools providers keys describe KEY_ID \
        --workload-identity-pool WORKLOAD_POOL_ID \
        --provider WORKLOAD_PROVIDER_ID \
        --location global \
        --format "value(keyData.key)" \
        > CERTIFICATE_PATH

    Substitua o seguinte:

    • KEY_ID: o nome da chave
    • WORKLOAD_POOL_ID: o ID da piscina
    • WORKLOAD_PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool
    • CERTIFICATE_PATH: o caminho para escrever o certificado, por exemplo, saml-certificate.cer ou saml-certificate.pem

    Configure o seu IdP compatível com SAML 2.0 para emitir afirmações SAML encriptadas

    Configure o seu IdP SAML para usar o certificado público transferido no último passo para encriptar as afirmações SAML que emite. Consulte a equipa do IdP para obter instruções específicas.

    Depois de configurar o IdP para encriptar afirmações SAML, recomendamos que verifique se as afirmações que gera estão realmente encriptadas. Mesmo com a encriptação de afirmações SAML configurada, a federação de identidade da carga de trabalho ainda pode processar afirmações de texto simples.

    Elimine as chaves de encriptação da federação de identidade da carga de trabalho

    Para eliminar chaves de encriptação SAML, execute o seguinte comando:
      gcloud iam workload-identity-pools providers keys delete KEY_ID \
          --workload-identity-pool WORKLOAD_POOL_ID \
          --provider WORKLOAD_PROVIDER_ID \
          --location global

    Substitua o seguinte:

    • KEY_ID: o nome da chave
    • WORKLOAD_POOL_ID: o ID da piscina
    • WORKLOAD_PROVIDER_ID: o ID do fornecedor do Workforce Identity Pool

    Algoritmos de encriptação SAML suportados

    A federação de identidade da carga de trabalho suporta os seguintes algoritmos de transporte de chaves:

    A federação de identidade da carga de trabalho suporta os seguintes algoritmos de encriptação de blocos:

Autentique uma carga de trabalho

Tem de realizar estes passos uma vez para cada carga de trabalho.

Permita que a sua carga de trabalho externa aceda aos recursos do Trusted Cloud

Para dar acesso aos recursos à sua carga de trabalho, recomendamos que conceda acesso direto aos recursos ao principal. Trusted Cloud Neste caso, o principal é o utilizador federado. Alguns Trusted Cloud produtos têm limitações da API Google Cloud. Se a sua carga de trabalho chamar um ponto final da API que tenha uma limitação, pode, em alternativa, usar a representação de contas de serviço. Neste caso, o principal é a Trusted Cloud conta de serviço, que funciona como a identidade. Concede acesso à conta de serviço no recurso.

Acesso direto aos recursos

Pode conceder acesso a uma identidade federada diretamente nos recursos através da Trusted Cloud consola ou da CLI gcloud.

Consola

Para usar a Trusted Cloud consola para conceder funções de IAM diretamente num recurso, tem de aceder à página do recurso e, em seguida, conceder a função. O exemplo seguinte mostra como aceder à página do Cloud Storage e conceder a função Storage Object Viewer (roles/storage.objectViewer) a uma identidade federada diretamente num contentor do Cloud Storage.

  1. Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.

    Aceda aos contentores

  2. Na lista de contentores, clique no nome do contentor para o qual quer conceder a função.

  3. Selecione o separador Autorizações junto à parte superior da página.

  4. Clique no botão Conceder acesso.

    É apresentada a caixa de diálogo Adicionar responsáveis.

  5. No campo Novos responsáveis, introduza uma ou mais identidades que precisam de acesso ao seu contentor.

    Por assunto

    principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
    

    Substitua o seguinte:

    • PROJECT_NUMBER: o número do projeto
    • POOL_ID: o ID do conjunto de trabalhos
    • SUBJECT: o indivíduo assunto mapeado a partir do seu IdP, por exemplo, administrator@example.com

    Por grupo

    principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
    

    Substitua o seguinte:

    • PROJECT_NUMBER: o número do projeto
    • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
    • GROUP: o grupo mapeado a partir do seu IdP, por exemplo: administrator-group@example.com

    Por atributo

    principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
    

    Substitua o seguinte:

    • PROJECT_NUMBER: o número do projeto
    • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
    • ATTRIBUTE_NAME: um dos atributos mapeados a partir do seu IdP
    • ATTRIBUTE_VALUE: o valor do atributo
  6. Selecione uma ou mais funções no menu pendente Selecionar uma função. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.

  7. Clique em Guardar.

gcloud

Para usar a CLI gcloud para conceder funções de IAM num recurso num projeto, faça o seguinte:

  1. Obtenha o número do projeto no qual o recurso está definido.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. Conceder acesso ao recurso.

    Para usar a CLI gcloud para conceder a função Storage Object Viewer (roles/storage.objectViewer) a identidades externas que cumprem determinados critérios, execute o seguinte comando.

    Por assunto

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

    Por grupo

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

    Por atributo

    gcloud storage buckets add-iam-policy-binding BUCKET_ID \
        --role=roles/storage.objectViewer \
        --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

    Substitua o seguinte:

    • BUCKET_ID: o contentor no qual conceder acesso
    • PROJECT_NUMBER: o número do projeto. do projeto que contém o Workload Identity Pool
    • POOL_ID: o ID do Workload Identity Pool
    • SUBJECT: o valor esperado para o atributo que mapeou para google.subject
    • GROUP: o valor esperado para o atributo que mapeou para google.groups
    • ATTRIBUTE_NAME: o nome de um atributo personalizado no mapeamento de atributos
    • ATTRIBUTE_VALUE: o valor do atributo personalizado no mapeamento de atributos

    Pode conceder funções em qualquer Trusted Cloud recurso que suporte políticas de autorização do IAM.

Simulação de identidade de conta de serviço

  1. Para criar uma conta de serviço para a carga de trabalho externa, faça o seguinte:

    1. Enable the IAM, Security Token Service, and Service Account Credentials APIs.

      Enable the APIs

    2. Crie uma conta de serviço que represente a carga de trabalho. Recomendamos que use uma conta de serviço dedicada para cada carga de trabalho. A conta de serviço não tem de estar no mesmo projeto que o conjunto de identidades de carga de trabalho, mas tem de fazer referência ao projeto que contém a conta de serviço.

    3. Conceda acesso à conta de serviço aos recursos aos quais quer que as identidades externas acedam.

  2. Para permitir que a identidade federada use a identidade da conta de serviço, faça o seguinte:

Consola

Para usar a Trusted Cloud consola para conceder funções do IAM a uma identidade federada com uma conta de serviço, faça o seguinte:

Conta de serviço no mesmo projeto

  1. Para conceder acesso através da representação da conta de serviço para uma conta de serviço no mesmo projeto, faça o seguinte:

    1. Aceda à página Workload Identity Pools.

      Aceda aos Workload Identity Pools

    2. Selecione Conceder acesso.

    3. Na caixa de diálogo Conceder acesso à conta de serviço, selecione Conceder acesso através da simulação da conta de serviço.

    4. Na lista Contas de serviço, selecione a conta de serviço para as identidades externas se fazerem passar por ela e faça o seguinte:

    5. Para escolher que identidades no conjunto podem roubar a identidade da conta de serviço, execute uma das seguintes ações:

      • Para permitir que apenas identidades específicas do conjunto de identidades da carga de trabalho se façam passar pela conta de serviço, selecione Apenas identidades que correspondam ao filtro.

      • Na lista Nome do atributo, selecione o atributo pelo qual quer filtrar.

      • No campo Valor do atributo, introduza o valor esperado do atributo; por exemplo, se usar um mapeamento de atributos google.subject=assertion.sub, defina o nome do atributo como subject e o valor do atributo como o valor da reivindicação sub em tokens emitidos pelo seu fornecedor de identidade externo.

    6. Para guardar a configuração, clique em Guardar e, de seguida, em Ignorar.

Conta de serviço num projeto diferente

  1. Para conceder acesso através da representação de conta de serviço a uma conta de serviço num projeto diferente, faça o seguinte:

    1. Aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione a conta de serviço que quer roubar.

    3. Clique em Gerir acesso.

    4. Clique em Adicionar principal.

    5. No campo Novo principal, introduza um dos seguintes identificadores principais para as identidades no seu conjunto que vão roubar a identidade da conta de serviço.

      Por assunto

      principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
      

      Substitua o seguinte:

      • PROJECT_NUMBER: o número do projeto
      • POOL_ID: o ID do conjunto de trabalhos
      • SUBJECT: o indivíduo assunto mapeado a partir do seu IdP, por exemplo, administrator@example.com

      Por grupo

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
      

      Substitua o seguinte:

      • PROJECT_NUMBER: o número do projeto
      • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
      • GROUP: o grupo mapeado a partir do seu IdP, por exemplo: administrator-group@example.com

      Por atributo

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
      

      Substitua o seguinte:

      • PROJECT_NUMBER: o número do projeto
      • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
      • ATTRIBUTE_NAME: um dos atributos mapeados a partir do seu IdP
      • ATTRIBUTE_VALUE: o valor do atributo

      Por piscina

      principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
      

      Substitua o seguinte:

      • PROJECT_NUMBER: o número do projeto
      • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
    6. Em Selecionar uma função, selecione a função de utilizador da identidade de carga de trabalho (roles/iam.workloadIdentityUser).

    7. Para guardar a configuração, clique em Guardar.

gcloud

Para conceder a função Workload Identity User (roles/iam.workloadIdentityUser) a um conjunto de principais ou um principal federado, execute o seguinte comando. Para saber mais sobre os identificadores de principais da federação de identidades da carga de trabalho, consulte o artigo Tipos de principais.

Por assunto

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"

Por grupo

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"

Por atributo

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
    --role=roles/iam.workloadIdentityUser \
    --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"

Substitua o seguinte:

  • SERVICE_ACCOUNT_EMAIL: o endereço de email da conta de serviço
  • PROJECT_NUMBER: o número do projeto. do projeto que contém o Workload Identity Pool
  • POOL_ID: o ID do Workload Identity Pool
  • SUBJECT: o valor esperado para o atributo que mapeou para google.subject
  • GROUP: o valor esperado para o atributo que mapeou para google.groups
  • ATTRIBUTE_NAME: o nome de um atributo personalizado no mapeamento de atributos
  • ATTRIBUTE_VALUE: o valor do atributo personalizado no mapeamento de atributos

Transfira uma configuração de credenciais

Esta secção descreve como transferir a configuração das credenciais através da Trusted Cloud consola.

Para permitir que a sua carga de trabalho aceda às bibliotecas de cliente, tem de transferir e configurar primeiro as credenciais predefinidas da aplicação (ADC) fazendo o seguinte:

  1. Na Trusted Cloud consola, aceda à página Workload Identity Pools.

    Aceda aos Workload Identity Pools
  2. Na tabela, selecione o seu conjunto para aceder à página de detalhes do conjunto.

  3. Clique em Conceder acesso.

  4. Selecione Conceder acesso através de identidades federadas (recomendado).

  5. Para transferir a Credencial predefinida da aplicação (ADC) para que a sua carga de trabalho possa aceder às bibliotecas cliente, faça o seguinte:

    1. Clique em Transferir config.

    2. Na caixa de diálogo Configurar a sua aplicação, faça o seguinte:

      1. Na lista pendente Fornecedor, selecione o seu fornecedor.

      2. Em Caminho do token OIDC ou Caminho da declaração SAML, introduza o caminho onde o token ou a declaração se encontra.

      3. Na lista pendente Tipo de formato, selecione o formato.

    3. Clique em Transferir configuração e anote o caminho onde guardou o ficheiro.

Crie uma configuração de credenciais

As bibliotecas cliente do Google Cloud, a CLI gcloud e o Terraform podem obter automaticamente credenciais externas e usar estas credenciais para aceder ao Trusted Cloud. Para permitir que as bibliotecas e as ferramentas concluam este processo, tem de fornecer um ficheiro de configuração de credenciais. Este ficheiro define o seguinte:

  • Onde obter credenciais externas
  • Que Workload Identity Pool e fornecedor usar
  • Que conta de serviço usar como identidade, se usar a funcionalidade de usar a identidade de uma conta de serviço

As bibliotecas cliente da nuvem obtêm credenciais externas a partir de um ficheiro local, um URL HTTP, executando um ficheiro executável local:

  • Credenciais provenientes de executáveis: as bibliotecas iniciam um executável sempre que precisam de uma nova credencial. Se o executável conseguir obter uma nova credencial externa, tem de escrever um documento JSON no STDOUT que se assemelha ao seguinte:

    OIDC

    {
      "version": 1,
      "success": true,
      "token_type": "urn:ietf:params:oauth:token-type:id_token",
      "id_token": "HEADER.PAYLOAD.SIGNATURE",
      "expiration_time": 1620499962
    }
    

    Se o ficheiro executável não conseguir obter uma nova credencial, tem de escrever um documento JSON em STDOUT com o seguinte aspeto:

    {
      "version": 1,
      "success": false,
      "code": "401",
      "message": "Caller not authorized."
    }
    

    Os documentos JSON usam os seguintes campos:

    • version: a versão da saída JSON. Apenas a versão 1 é suportada.
    • success: o estado da resposta.

      Quando true, a resposta tem de conter os campos id_token e token_type. O ficheiro executável tem de ser concluído com o código de saída 0.

      Quando false, a resposta tem de conter os campos code e message e terminar com um valor diferente de zero.

    • token_type: o tipo de token da credencial externa. Os valores suportados são:

      • urn:ietf:params:oauth:token-type:id_token
      • urn:ietf:params:oauth:token-type:jwt
    • id_token: a credencial externa.

    • expiration_time: O tempo de validade do token OIDC em segundos (tempo de época Unix). Este campo só é obrigatório quando um ficheiro de saída foi especificado na configuração das credenciais.

    • code: a string do código de erro.

    • message: A mensagem de erro.

    SAML

    {
      "version": 1,
      "success": true,
      "token_type": "urn:ietf:params:oauth:token-type:saml2",
      "saml_response": "...",
      "expiration_time": 1620499962
    }
    

    Se o ficheiro executável não conseguir obter uma nova credencial, tem de escrever um documento JSON em STDOUT com o seguinte aspeto:

    {
      "version": 1,
      "success": false,
      "code": "401",
      "message": "Caller not authorized."
    }
    

    Os documentos JSON usam os seguintes campos:

    • version: a versão da saída JSON. Apenas a versão 1 é suportada.
    • success: o estado da resposta.

      Quando true, a resposta tem de conter os campos id_token e token_type. O ficheiro executável tem de ser concluído com o código de saída 0.

      Quando false, a resposta tem de conter os campos code e message e terminar com um valor diferente de zero.

    • token_type: o tipo de token da credencial externa. Tem de ser urn:ietf:params:oauth:token-type:saml2.

    • saml_response: A resposta SAML ou a declaração SAML com codificação base64.

    • expiration_time: a hora de validade da declaração em segundos (hora de época Unix). Este campo só é obrigatório quando um ficheiro de saída foi especificado na configuração das credenciais.

    • code: a string do código de erro.

    • message: A mensagem de erro.

    Quando inicia o ficheiro executável, as bibliotecas cliente definem as seguintes variáveis de ambiente:

    • GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE: Público-alvo da configuração das credenciais. Sempre presente.
    • GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE: Tipo de token de assunto esperado. Sempre presente.
    • GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL: Email da conta de serviço. Apenas presente quando é usada a simulação da conta de serviço.
    • GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE: Localização do ficheiro de saída da configuração das credenciais. Só está presente quando especificado na configuração das credenciais.

    Para usar credenciais provenientes de executáveis, tem de definir a variável de ambiente GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES como 1.

  • Credenciais provenientes de ficheiros: as bibliotecas leem a credencial externa de um ficheiro JSON ou de texto simples local. Por exemplo:

    JSON

    {
      "mytoken": "ey...
    }
    

    Texto

    ey...
    

    A credencial externa pode ser:

    • Um token OIDC
    • Uma resposta SAML
    • Uma afirmação SAML codificada em base64

    Tem de atualizar periodicamente o ficheiro para que contenha sempre uma credencial válida. Por exemplo, se o token OIDC ou a declaração SAML for válida durante uma hora, tem de atualizar o ficheiro, pelo menos, uma vez por hora.

  • Credenciais provenientes de URLs: as bibliotecas fazem um pedido GET a um ponto final HTTP sempre que precisam de uma nova credencial. O ponto final tem de devolver uma resposta de texto simples ou JSON equivalente ao formato usado pelas credenciais provenientes de ficheiros.

Para criar um ficheiro de configuração de credenciais, faça o seguinte:

Credenciais provenientes de executáveis

gcloud iam workload-identity-pools create-cred-config \
    projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \
    --output-file=FILEPATH.json \
    --executable-command=EXECUTABLE_COMMAND \
    --executable-timeout-millis=EXECUTABLE_TIMEOUT \
    --executable-output-file=EXECUTABLE_OUTPUT_FILE

Substitua o seguinte:

  • PROJECT_NUMBER: o número do projeto do projeto que contém o Workload Identity Pool.
  • POOL_ID: o ID do Workload Identity Pool.
  • WORKLOAD_PROVIDER_ID: o ID do fornecedor do Workload Identity Pool.
  • SERVICE_ACCOUNT_EMAIL: se usar a simulação de conta de serviço, substitua-o pelo endereço de email da conta de serviço. Omita este sinalizador se não usar a simulação da conta de serviço.
  • SERVICE_ACCOUNT_TOKEN_LIFETIME: se usar a representação da conta de serviço, substitua-o pela duração total da chave de acesso da conta de serviço, em segundos. Por predefinição, é de uma hora quando não é fornecido. Omita este sinalizador se não usar a simulação da conta de serviço. Para especificar uma duração total superior a uma hora, tem de configurar a constraints/iam.allowServiceAccountCredentialLifetimeExtension restrição da política organizacional.
  • FILEPATH: o ficheiro no qual guardar a configuração.
  • EXECUTABLE_COMMAND: o comando completo, incluindo argumentos, a executar para obter o token de ID OIDC, por exemplo, --executable-command="/path/to/command --foo=bar".
  • EXECUTABLE_TIMEOUT: a duração opcional em milissegundos a aguardar pela execução do ficheiro executável (predefinição: 30 s).
  • EXECUTABLE_OUTPUT_FILE: um caminho que aponta para as credenciais de terceiros geradas pelo executável. Isto é útil para colocar as credenciais em cache. Ao especificar este caminho, as bibliotecas de autenticação verificam primeiro a sua existência antes de executar o ficheiro executável.

Credenciais provenientes de ficheiros

gcloud iam workload-identity-pools create-cred-config \
    projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \
    --output-file=FILEPATH.json \
    --credential-source-file=TOKEN_FILEPATH \
    --credential-source-type=SOURCE_TYPE \
    --credential-source-field-name=FIELD_NAME

Substitua o seguinte:

  • PROJECT_NUMBER: o número do projeto do projeto que contém o Workload Identity Pool.
  • POOL_ID: o ID do Workload Identity Pool.
  • WORKLOAD_PROVIDER_ID: o ID do fornecedor do Workload Identity Pool.
  • SERVICE_ACCOUNT_EMAIL: se usar a simulação de conta de serviço, substitua-o pelo endereço de email da conta de serviço. Omita este sinalizador se não usar a simulação da conta de serviço.
  • SERVICE_ACCOUNT_TOKEN_LIFETIME: se usar a representação da conta de serviço, substitua-o pela duração total da chave de acesso da conta de serviço, em segundos. Por predefinição, é de uma hora quando não é fornecido. Omita este sinalizador se não usar a simulação da conta de serviço. Para especificar uma duração total superior a uma hora, tem de configurar a constraints/iam.allowServiceAccountCredentialLifetimeExtension restrição da política organizacional.
  • FILEPATH: o ficheiro no qual guardar a configuração.
  • TOKEN_FILEPATH: o caminho onde os tokens de ID do OIDC são armazenados.
  • SOURCE_TYPE: o formato do ficheiro de token de ID do OIDC, definido como text (predefinição) ou json.
  • FIELD_NAME: o campo no ficheiro de texto que contém o token (se SOURCE_TYPE for json).

Credenciais provenientes de URLs

gcloud iam workload-identity-pools create-cred-config \
    projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --service-account-token-lifetime-seconds=SERVICE_ACCOUNT_TOKEN_LIFETIME \
    --output-file=FILEPATH.json \
    --credential-source-url="TOKEN_URL" \
    --credential-source-headers="KEY_1=VALUE_1,KEY_2=VALUE_2" \
    --credential-source-type=SOURCE_TYPE \
    --credential-source-field-name=FIELD_NAME

Substitua o seguinte:

  • PROJECT_NUMBER: número do projeto do projeto que contém o Workload Identity Pool.
  • POOL_ID: ID do Workload Identity Pool.
  • WORKLOAD_PROVIDER_ID: ID do fornecedor do Workload Identity Pool
  • SERVICE_ACCOUNT_EMAIL: se usar a simulação de identidade de uma conta de serviço, substitua-o pelo endereço de email da conta de serviço. Omita este sinalizador se não usar a simulação da conta de serviço.
  • SERVICE_ACCOUNT_TOKEN_LIFETIME: se usar a representação da conta de serviço, substitua-o pela duração total da chave de acesso da conta de serviço, em segundos. Por predefinição, é de uma hora quando não é fornecido. Omita este sinalizador se não usar a simulação da conta de serviço. Para especificar uma duração total superior a uma hora, tem de configurar a constraints/iam.allowServiceAccountCredentialLifetimeExtension restrição da política organizacional.
  • FILEPATH: ficheiro no qual guardar a configuração.
  • TOKEN_URL: URL para obter o token de ID do OIDC
  • KEY_n, VALUE_n: cabeçalhos personalizados a incluir no pedido HTTP para TOKEN_URL
  • SOURCE_TYPE: formato do ficheiro de token de ID do OIDC, definido como text (predefinição) ou json
  • FIELD_NAME: campo no ficheiro de texto que contém o token (se SOURCE_TYPE for json)

Use a configuração de credenciais para aceder a Trusted Cloud

Para permitir que as ferramentas e as bibliotecas de cliente usem a configuração das suas credenciais, faça o seguinte:

  1. Inicialize uma variável de ambiente GOOGLE_APPLICATION_CREDENTIALS e direcione-a para o ficheiro de configuração das credenciais:

    Bash

      export GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
      
    onde FILEPATH é o caminho relativo para o ficheiro de configuração das credenciais.

    PowerShell

      $env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
      
    onde FILEPATH é o caminho relativo para o ficheiro de configuração das credenciais.
  2. Use uma biblioteca ou uma ferramenta de cliente que suporte a federação de identidades da carga de trabalho e que possa encontrar credenciais automaticamente:

    C++

    As Trusted Cloud bibliotecas cliente para C++ suportam a federação de identidades da carga de trabalho desde a versão v2.6.0. Para usar a Workload Identity Federation, tem de criar as bibliotecas de cliente com a versão 1.36.0 ou posterior do gRPC.

    Ir

    As bibliotecas cliente para Go suportam a federação de identidades da carga de trabalho se usarem a versão v0.0.0-20210218202405-ba52d332ba99 ou posterior do módulo golang.org/x/oauth2.

    Para verificar que versão deste módulo a sua biblioteca de cliente usa, execute os seguintes comandos:

    cd $GOPATH/src/cloud.google.com/go
    go list -m golang.org/x/oauth2
    

    Java

    As bibliotecas cliente para Java suportam a Workload Identity Federation se usarem a versão 0.24.0 ou posterior do artefacto com.google.auth:google-auth-library-oauth2-http.

    Para verificar que versão deste artefacto a sua biblioteca de cliente usa, execute o seguinte comando Maven no diretório da aplicação:

    mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
    

    Node.js

    As bibliotecas de cliente para Node.js suportam a Federação de identidades da carga de trabalho se usarem a versão 7.0.2 ou posterior do pacote google-auth-library.

    Para verificar que versão deste pacote a sua biblioteca de cliente usa, execute o seguinte comando no diretório da aplicação:

    npm list google-auth-library
    

    Quando cria um objeto GoogleAuth, pode especificar um ID do projeto ou permitir que a GoogleAuth encontre o ID do projeto automaticamente. Para encontrar o ID do projeto automaticamente, a conta de serviço no ficheiro de configuração tem de ter a função Navegador (roles/browser) ou uma função com autorizações equivalentes no seu projeto. Para obter detalhes, consulte o README para o pacote google-auth-library.

    Python

    As bibliotecas cliente para Python suportam a Federação de identidades de carga de trabalho se usarem a versão 1.27.0 ou posterior do pacote google-auth.

    Para verificar que versão deste pacote a sua biblioteca de cliente usa, execute o seguinte comando no ambiente onde o pacote está instalado:

    pip show google-auth
    

    Para especificar um ID do projeto para o cliente de autenticação, pode definir a variável de ambiente GOOGLE_CLOUD_PROJECT ou permitir que o cliente encontre o ID do projeto automaticamente. Para encontrar o ID do projeto automaticamente, a conta de serviço no ficheiro de configuração tem de ter a função de navegador (roles/browser) ou uma função com autorizações equivalentes no seu projeto. Para obter detalhes, consulte o manual do utilizador do pacote google-auth.

    gcloud

    Para autenticar com a Workload Identity Federation, use o comando gcloud auth login:

    gcloud auth login --cred-file=FILEPATH.json
    

    Substitua FILEPATH pelo caminho para o ficheiro de configuração das credenciais.

    O suporte para a Workload Identity Federation na CLI gcloud está disponível na versão 363.0.0 e versões posteriores da CLI gcloud.

    Terraform

    O Trusted Cloud fornecedor suporta a Workload Identity Federation se usar a versão 3.61.0 ou posterior:

    terraform {
      required_providers {
        google = {
          source  = "hashicorp/google"
          version = "~> 3.61.0"
        }
      }
    }
    

    bq

    Para autenticar através da Workload Identity Federation, use o comando gcloud auth login, da seguinte forma:

    gcloud auth login --cred-file=FILEPATH.json
    

    Substitua FILEPATH pelo caminho para o ficheiro de configuração das credenciais.

    O suporte para a Workload Identity Federation no bq está disponível na versão 390.0.0 e versões posteriores da CLI gcloud.

O que se segue?