Este documento mostra como usar a federação de identidade da carga de trabalho com bibliotecas de autenticação do Google Cloud , conhecidas como bibliotecas de autenticação, para autenticar cargas de trabalho de provedores de identidade de terceiros, como AWS, Microsoft Azure e provedores compatíveis com OpenID Connect (OIDC) ou SAML 2.0.
A federação de identidade da carga de trabalho permite que aplicativos em execução fora do Google Cloud acessem Google Cloud recursos sem usar chaves de conta de serviço. As bibliotecas de autenticação do Google permitem isso trocando credenciais externas por tokens de acesso Google Cloud de curta duração.
Para autenticação, é possível receber credenciais externas usando os seguintes métodos:
- Mecanismo padrão para configurações comuns.
- Fornecedores de credenciais personalizados para fluxos de trabalho complexos que exigem a criação do próprio código.
Antes de começar
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Configure a federação de identidade da carga de trabalho com seu provedor de identidade.
Autenticar usando o mecanismo de credenciais padrão
Para provedores de identidade de terceiros com suporte comum, use os recursos integrados da bibliotecaGoogle Cloud auth para autenticar suas cargas de trabalho gerando um arquivo de configuração de credencial. Esse arquivo fornece as informações necessárias para que as bibliotecas de autenticação federem identidades de provedores externos.
O arquivo de configuração de credenciais, geralmente carregado usando a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS, pode instruir as bibliotecas de autenticação a receber o token de assunto de terceiros usando um dos seguintes métodos:
- Fornecidas pelo arquivo:a biblioteca lê o token de assunto de um arquivo local. Um processo separado precisa garantir que esse arquivo contenha um token válido e não expirado.
- Fornecido pelo URL:a biblioteca busca o token do assunto fazendo uma solicitação para um endpoint de URL local especificado.
- De origem executável:a biblioteca executa um comando executável configurado. A saída padrão do executável precisa conter o token de assunto.
Gere o arquivo de configuração de credenciais para seu provedor específico:
- AWS
- Azure
Provedor de identidade OIDC ou SAML
Esta página inclui instruções para o seguinte:
Use o arquivo de configuração de credenciais para autenticar.
Para permitir que as bibliotecas de cliente Google Cloud localizem e usem automaticamente seu arquivo de configuração de credenciais, defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALScomo o caminho do arquivo JSON gerado.Exporte a variável de ambiente no seu shell:
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.jsonDepois de definir a variável de ambiente, as bibliotecas de cliente processam o fluxo de autenticação.
O exemplo de código a seguir mostra como fazer uma chamada autenticada para uma API Google Cloud :
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Autenticar usando fornecedores de credenciais personalizados
Se o ambiente não for compatível com os recursos integrados da biblioteca de autenticação do Google ou se você quiser implementar uma lógica personalizada para fornecer credenciais a ela, use fornecedores de credenciais personalizados para autenticar suas cargas de trabalho.
Acessar recursos da AWS
Ao inicializar o cliente de autenticação, forneça uma implementação personalizada de um fornecedor de credenciais. A instância do cliente adia o fornecedor para recuperar credenciais de segurança da AWS para trocar por um token de acesso Google Cloud . O fornecedor precisa retornar credenciais válidas e não expiradas quando o cliente o chama.
O cliente de autenticação não armazena em cache as credenciais de segurança ou a região da AWS retornadas. Portanto, implemente o armazenamento em cache no fornecedor para evitar solicitações redundantes dos mesmos recursos.
Os exemplos de código a seguir mostram como configurar o acesso a recursos do Google Cloud da AWS com um fornecedor de credenciais personalizado.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Acessar recursos do OIDC e do SAML
Ao inicializar o cliente de autenticação, forneça um fornecedor de token personalizado para fornecer um token de assunto que é trocado por um token de acesso Google Cloud . O fornecedor precisa retornar um token de assunto válido e não expirado quando o cliente o chamar.
O cliente de autenticação não armazena em cache o token retornado. Portanto, implemente o armazenamento em cache no fornecedor para evitar solicitações redundantes do mesmo token de assunto.
Os exemplos de código a seguir mostram como configurar o acesso a recursos do Google Cloud de provedores que oferecem suporte ao OpenID Connect (OIDC) ou SAML 2.0 com um fornecedor de credenciais personalizado.
Node.js
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Node.js do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A seguir
- Saiba mais sobre a federação de identidade da carga de trabalho.