Este documento mostra como usar a Federação de identidade da carga de trabalho com Google Cloud bibliotecas de autenticação, conhecidas como bibliotecas de autenticação, para autenticar cargas de trabalho de provedores de identidade de terceiros, como AWS, Microsoft Azure e provedores que oferecem suporte ao OpenID Connect (OIDC) ou SAML 2.0.
A federação de identidade da carga de trabalho permite que aplicativos executados fora do Google Cloud Google Cloud acessem Google Cloud recursos sem usar chaves de conta de serviço. As bibliotecas de autenticação do Google ativam isso trocando credenciais externas por tokens de acesso de curta duração Google Cloud .
Para autenticação, é possível receber credenciais externas usando os seguintes métodos:
- Mecanismo padrão para configurações comuns.
- Fornecedores de credenciais personalizadas para fluxos de trabalho complexos que exigem que você escreva seu próprio código.
Antes de começar
Ativar as APIs necessárias
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter a permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pela função de proprietário (roles/owner). Caso contrário, você pode receber essa permissão pela função de administrador de uso do serviço (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.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 comumente aceitos, é possível usar os Google Cloud recursos integrados da biblioteca de autenticação para autenticar suas cargas de trabalho gerando um arquivo de configuração de credenciais. 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, normalmente 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:
- Fornecido 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 de assunto fazendo uma solicitação para um endpoint de URL local especificado.
- Fornecido pelo 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 Google Cloud bibliotecas de cliente localizem e usem automaticamente o arquivo de configuração de credenciais, defina a
GOOGLE_APPLICATION_CREDENTIALSvariável de ambiente como o caminho do arquivo JSON gerado.Exporte a variável de ambiente no 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 Google Cloud API:
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 personalizadas
Se o ambiente não oferece suporte aos recursos integrados da biblioteca de autenticação do Google ou se você quer implementar uma lógica personalizada para fornecer credenciais à biblioteca de autenticação do Google, use fornecedores de credenciais personalizadas 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 é adiada para o fornecedor para recuperar as credenciais de segurança da AWS a serem trocadas por um Google Cloud token de acesso. O fornecedor precisa retornar credenciais válidas e não expiradas quando o cliente as 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 Google Cloud recursos da AWS com um fornecedor de credenciais personalizadas.
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 Google Cloud token de acesso. O fornecedor precisa retornar um token de assunto válido e não expirado quando o cliente o chama.
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 Google Cloud recursos de provedores que oferecem suporte ao OpenID Connect (OIDC) ou SAML 2.0 com um fornecedor de credenciais personalizadas.
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.