Ce document explique comment utiliser la fédération d'identité de charge de travail avec les bibliothèques d'authentification Google Cloud , appelées bibliothèques d'authentification, pour authentifier les charges de travail à partir de fournisseurs d'identité tiers tels qu'AWS, Microsoft Azure et les fournisseurs compatibles avec OpenID Connect (OIDC) ou SAML 2.0.
La fédération d'identité de charge de travail permet aux applications exécutées en dehors de Google Cloudd'accéder aux ressources Google Cloud sans utiliser de clés de compte de service. Les bibliothèques d'authentification Google permettent cet échange d'identifiants externes contre des jetons d'accès Google Cloud à courte durée de vie.
Pour l'authentification, vous pouvez obtenir des identifiants externes à l'aide des méthodes suivantes :
- Mécanisme standard pour les configurations courantes.
- Fournisseurs d'identifiants personnalisés pour les workflows complexes qui nécessitent d'écrire votre propre code.
Avant de commencer
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.Configurez la fédération d'identité de charge de travail avec votre fournisseur d'identité.
S'authentifier à l'aide du mécanisme d'identifiants standard
Pour les fournisseurs d'identité tiers couramment compatibles, vous pouvez utiliser les fonctionnalités intégrées de la bibliothèque d'authentificationGoogle Cloud pour authentifier vos charges de travail en générant un fichier de configuration des identifiants. Ce fichier fournit les informations nécessaires aux bibliothèques d'authentification pour fédérer les identités des fournisseurs externes.
Le fichier de configuration des identifiants, généralement chargé à l'aide de la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS, peut indiquer aux bibliothèques d'authentification d'obtenir le jeton de sujet tiers à l'aide de l'une des méthodes suivantes :
- Basé sur un fichier : la bibliothèque lit le jeton d'objet à partir d'un fichier local. Un processus distinct doit s'assurer que ce fichier contient un jeton valide et non expiré.
- Basé sur une URL : la bibliothèque récupère le jeton du sujet en envoyant une requête à un point de terminaison d'URL local spécifié.
- Basé sur un exécutable : la bibliothèque exécute une commande exécutable configurée. La sortie standard de l'exécutable doit contenir le jeton sujet.
Générez le fichier de configuration des identifiants pour votre fournisseur spécifique :
- AWS
- Azure
Fournisseur d'identité OIDC ou SAML
Cette page contient des instructions pour les opérations suivantes :
Utilisez le fichier de configuration des identifiants pour vous authentifier.
Pour permettre aux bibliothèques clientes Google Cloud de localiser et d'utiliser automatiquement votre fichier de configuration d'identifiants, définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALSsur le chemin d'accès au fichier JSON généré.Exportez la variable d'environnement dans votre shell :
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.jsonUne fois la variable d'environnement définie, les bibliothèques clientes gèrent le flux d'authentification.
L'exemple de code suivant montre comment effectuer un appel authentifié à une API Google Cloud :
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Node.js.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Go.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
S'authentifier à l'aide de fournisseurs d'identifiants personnalisés
Si votre environnement ne prend pas en charge les fonctionnalités intégrées de la bibliothèque d'authentification Google ou si vous souhaitez implémenter une logique personnalisée pour fournir des identifiants à la bibliothèque d'authentification Google, utilisez des fournisseurs d'identifiants personnalisés pour authentifier vos charges de travail.
Accéder aux ressources d'AWS
Lorsque vous initialisez le client d'authentification, fournissez une implémentation personnalisée d'un fournisseur d'identifiants. L'instance cliente s'en remet au fournisseur pour récupérer les identifiants de sécurité AWS à échanger contre un jeton d'accès Google Cloud . Le fournisseur doit renvoyer des identifiants valides et non expirés lorsque le client l'appelle.
Le client d'authentification ne met pas en cache les identifiants de sécurité ni la région AWS renvoyés. Vous devez donc implémenter la mise en cache dans le fournisseur pour éviter les requêtes redondantes pour les mêmes ressources.
Les exemples de code suivants montrent comment configurer l'accès aux ressources Google Clouddepuis AWS avec un fournisseur d'identifiants personnalisé.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Node.js.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Accéder aux ressources depuis OIDC et SAML
Lorsque vous initialisez le client d'authentification, fournissez un fournisseur de jetons personnalisés pour fournir un jeton d'objet qui est échangé contre un jeton d'accès Google Cloud . Le fournisseur doit renvoyer un jeton d'objet valide et non expiré lorsque le client l'appelle.
Le client d'authentification ne met pas en cache le jeton renvoyé. Vous devez donc implémenter la mise en cache dans le fournisseur pour éviter les requêtes redondantes pour le même jeton de sujet.
Les exemples de code suivants montrent comment configurer l'accès aux ressources Google Cloudà partir de fournisseurs compatibles avec OpenID Connect (OIDC) ou SAML 2.0 avec un fournisseur d'identifiants personnalisé.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Node.js.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étapes suivantes
- En savoir plus sur la fédération d'identité de charge de travail.