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
ex5t
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 futuronotAfter
: uma data/hora que não seja superior a 25 anos no futuro
Algoritmos recomendados:
- RSAwithSHA256 (tamanhos de chaves suportados [bits]: 2048, 3072 e 4096)
- ECDSAwithSHA256
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
ouES256
. 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 CloudPOOL_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çãoiat
que está no passado.O valor de
exp
tem de ser superior ao valor deiat
, 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 URLISSUER/.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 comourn:oasis:names:tc:SAML:2.0:nameid-format:entity
. - Um elemento
Subject
com:- um elemento
NameID
. - Exatamente um elemento
SubjectConfirmation
comMethod
definido comourn:oasis:names:tc:SAML:2.0:cm:bearer
. - Um elemento
SubjectConfirmationData
comNotOnOrAfter
definido como uma data/hora que ocorre no futuro e nenhum valorNotBefore
.
- um elemento
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 CloudPOOL_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:
-
In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.
É recomendável
usar um projeto dedicado para gerir os fornecedores e os conjuntos de identidades de carga de trabalho.
-
Verify that billing is enabled for your Trusted Cloud project.
-
Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service 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 oNameID
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:
-
Administrador do Workload Identity Pool (
roles/iam.workloadIdentityPoolAdmin
) -
Administrador da conta de serviço (
roles/iam.serviceAccountAdmin
)
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
Na Trusted Cloud consola, aceda à página Novo fornecedor e conjunto de cargas de trabalho.
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.
Clique em Continuar.
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.
Clique em Continuar.
Em Configurar atributos do fornecedor, adicione os mapeamentos de atributos que identificou anteriormente neste guia.
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.
Para criar o Workload Identity Pool e o fornecedor, clique em Guardar.
gcloud
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.
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 conjuntoIDP_METADATA_PATH
: o caminho local para o documento de metadados do IdP SAMLMAPPINGS
: uma lista separada por vírgulas de mapeamentos de atributos que criou anteriormente neste guiaCONDITIONS
: 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.
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 escolhaWORKLOAD_POOL_ID
: o ID da piscinaWORKLOAD_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
ersa-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 chaveWORKLOAD_POOL_ID
: o ID da piscinaWORKLOAD_PROVIDER_ID
: o ID do fornecedor do Workforce Identity PoolCERTIFICATE_PATH
: o caminho para escrever o certificado, por exemplo,saml-certificate.cer
ousaml-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 chaveWORKLOAD_POOL_ID
: o ID da piscinaWORKLOAD_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:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
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.
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor para o qual quer conceder a função.
Selecione o separador Autorizações junto à parte superior da página.
Clique no botão add_box Conceder acesso.
É apresentada a caixa de diálogo Adicionar responsáveis.
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 projetoPOOL_ID
: o ID do conjunto de trabalhosSUBJECT
: 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 projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosGROUP
: 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 projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosATTRIBUTE_NAME
: um dos atributos mapeados a partir do seu IdPATTRIBUTE_VALUE
: o valor do atributo
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.
Clique em Guardar.
gcloud
Para usar a CLI gcloud para conceder funções de IAM num recurso num projeto, faça o seguinte:
Obtenha o número do projeto no qual o recurso está definido.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
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 acessoPROJECT_NUMBER
: o número do projeto. do projeto que contém o Workload Identity PoolPOOL_ID
: o ID do Workload Identity PoolSUBJECT
: o valor esperado para o atributo que mapeou paragoogle.subject
GROUP
: o valor esperado para o atributo que mapeou paragoogle.groups
ATTRIBUTE_NAME
: o nome de um atributo personalizado no mapeamento de atributosATTRIBUTE_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
Para criar uma conta de serviço para a carga de trabalho externa, faça o seguinte:
-
Enable the IAM, Security Token Service, and Service Account Credentials APIs.
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.
Conceda acesso à conta de serviço aos recursos aos quais quer que as identidades externas acedam.
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
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:
Aceda à página Workload Identity Pools.
Selecione Conceder acesso.
Na caixa de diálogo Conceder acesso à conta de serviço, selecione Conceder acesso através da simulação da conta de serviço.
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:
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 comosubject
e o valor do atributo como o valor da reivindicaçãosub
em tokens emitidos pelo seu fornecedor de identidade externo.
Para guardar a configuração, clique em Guardar e, de seguida, em Ignorar.
Conta de serviço num projeto diferente
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:
Aceda à página Contas de serviço.
Selecione a conta de serviço que quer roubar.
Clique em Gerir acesso.
Clique em Adicionar principal.
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 projetoPOOL_ID
: o ID do conjunto de trabalhosSUBJECT
: 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 projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosGROUP
: 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 projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosATTRIBUTE_NAME
: um dos atributos mapeados a partir do seu IdPATTRIBUTE_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 projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhos
Em Selecionar uma função, selecione a função de utilizador da identidade de carga de trabalho (
roles/iam.workloadIdentityUser
).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çoPROJECT_NUMBER
: o número do projeto. do projeto que contém o Workload Identity PoolPOOL_ID
: o ID do Workload Identity PoolSUBJECT
: o valor esperado para o atributo que mapeou paragoogle.subject
GROUP
: o valor esperado para o atributo que mapeou paragoogle.groups
ATTRIBUTE_NAME
: o nome de um atributo personalizado no mapeamento de atributosATTRIBUTE_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:
-
Na Trusted Cloud consola, aceda à página Workload Identity Pools.
Aceda aos Workload Identity Pools -
Na tabela, selecione o seu conjunto para aceder à página de detalhes do conjunto.
-
Clique em Conceder acesso.
-
Selecione Conceder acesso através de identidades federadas (recomendado).
-
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:
-
Clique em Transferir config.
-
Na caixa de diálogo Configurar a sua aplicação, faça o seguinte:
-
Na lista pendente Fornecedor, selecione o seu fornecedor.
-
Em Caminho do token OIDC ou Caminho da declaração SAML, introduza o caminho onde o token ou a declaração se encontra.
Na lista pendente Tipo de formato, selecione o formato.
-
-
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 camposid_token
etoken_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 camposcode
emessage
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 camposid_token
etoken_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 camposcode
emessage
e terminar com um valor diferente de zero.token_type
: o tipo de token da credencial externa. Tem de serurn: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
como1
.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 aconstraints/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 aconstraints/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 comotext
(predefinição) oujson
.FIELD_NAME
: o campo no ficheiro de texto que contém o token (seSOURCE_TYPE
forjson
).
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 PoolSERVICE_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 aconstraints/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 OIDCKEY_n
,VALUE_n
: cabeçalhos personalizados a incluir no pedido HTTP paraTOKEN_URL
SOURCE_TYPE
: formato do ficheiro de token de ID do OIDC, definido comotext
(predefinição) oujson
FIELD_NAME
: campo no ficheiro de texto que contém o token (seSOURCE_TYPE
forjson
)
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:
Inicialize uma variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
e direcione-a para o ficheiro de configuração das credenciais:Bash
ondeexport GOOGLE_APPLICATION_CREDENTIALS=`pwd`/FILEPATH.json
FILEPATH
é o caminho relativo para o ficheiro de configuração das credenciais.PowerShell
onde$env:GOOGLE_APPLICATION_CREDENTIALS = Resolve-Path 'FILEPATH.json'
FILEPATH
é o caminho relativo para o ficheiro de configuração das credenciais.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 aGoogleAuth
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 oREADME
para o pacotegoogle-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 pacotegoogle-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?
- Leia mais sobre a federação de identidades da carga de trabalho.
- Saiba mais acerca das práticas recomendadas para usar a Workload Identity Federation.
- Veja como pode gerir Workload Identity Pools e fornecedores.