Ce document explique comment utiliser la fédération d'identité de charge de travail avec des Google Cloud bibliothèques d'authentification, appelées bibliothèques d'authentification, pour authentifier les charges de travail provenant 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 qui s'exécutent en dehors Google Cloud d'accéder Google Cloud aux ressources sans utiliser de clés de compte de service. Les bibliothèques d'authentification Google permettent cela en échangeant des identifiants externes contre des jetons d'accès éphémères Google Cloud .
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 que vous écriviez votre propre code.
Avant de commencer
Activez les API requises.
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation via le rôle Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.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 Google Cloud fonctionnalités intégrées de la bibliothèque d'authentification 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 de fournisseurs externes.
Le fichier de configuration des identifiants, généralement chargé à l'aide de la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS, peut demander 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 de sujet à 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 de 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 de 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 inclut des instructions pour les éléments suivants :
Utilisez le fichier de configuration des identifiants pour vous authentifier.
Pour permettre aux Google Cloud bibliothèques clientes de localiser et d'utiliser automatiquement votre fichier de configuration des identifiants, définissez la
GOOGLE_APPLICATION_CREDENTIALSvariable d'environnement sur 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 Google Cloud API :
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 n'est pas compatible avec 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 Google Cloud jeton d'accès. 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é AWS ni la région 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 Google Cloud ressources d'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 d'OIDC et de SAML
Lorsque vous initialisez le client d'authentification, fournissez un fournisseur de jetons personnalisé pour fournir un jeton de sujet qui est échangé contre un Google Cloud jeton d'accès. Le fournisseur doit renvoyer un jeton de sujet 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 Google Cloud ressources 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.
Étape suivante
- En savoir plus sur la fédération d'identité de charge de travail.