Ce guide explique comment utiliser la fédération d'identité de charge de travail pour permettre aux charges de travail exécutées sur Azure Kubernetes Service (AKS), Amazon Elastic Kubernetes Service ou sur un cluster Kubernetes auto-hébergé de s'authentifier auprès de Google Cloud.
Kubernetes vous permet de configurer un cluster de sorte que les charges de travail puissent obtenir des jetons de compte de service Kubernetes à partir d'un volume projeté. En configurant la fédération d'identité de charge de travail, vous pouvez autoriser les charges de travail à utiliser ces jetons de compte de service Kubernetes pour s'authentifier auprès de Google Cloud.
Si vous utilisez GKE, employez Workload Identity Federation pour GKE au lieu de configurer la fédération d'identité de charge de travail.
Avant de commencer
Avant de configurer la fédération d'identité de charge de travail, assurez-vous que votre cluster Kubernetes répond aux critères suivants :
GKE
Pour les utilisateurs de Google Kubernetes Engine (GKE), consultez S'authentifier auprès des API Google Cloud à partir de charges de travail GKE.
AKS
Assurez-vous que votre cluster remplit les critères suivants :
Vous avez activé la fonctionnalité d'émetteur OIDC.
Vous devez activer cette fonctionnalité afin que la fédération d'identité de charge de travail puisse accéder aux métadonnées OpenID Connect et au jeu de clés Web JSON (JWKS) pour le cluster.
EKS
Vous n'avez pas besoin de modifier votre configuration EKS.
Kubernetes
Assurez-vous que votre cluster remplit les critères suivants :
Vous utilisez Kubernetes en version 1.20 ou ultérieure.
Les versions précédentes de Kubernetes utilisaient un format de jeton de compte de service différent, non compatible avec les instructions de ce document.
Vous avez configuré
kube-apiserver
afin qu'il accepte les projections des volumes de jetonsServiceAccount
.
Le cluster n'a pas besoin d'être accessible sur Internet.
Configurer la fédération d'identité de charge de travail
Cette procédure n'est requise qu'une seule fois pour chaque cluster Kubernetes. Vous pouvez ensuite utiliser le même pool d'identités de charge de travail et le même fournisseur pour plusieurs pods Kubernetes et sur plusieurs projets Google Cloud.
Pour commencer à configurer la fédération d'identité de charge de travail, procédez comme suit :
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Nous vous recommandons d'
utiliser un projet dédié pour gérer les pools d'identités de charge de travail et les fournisseurs.
-
Make sure that billing is enabled for your Google Cloud project.
Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.
Définir un mappage et une condition d'attribut
Les jetons de compte de service Kubernetes contiennent plusieurs revendications, y compris les suivantes :
sub
: contient l'espace de noms et le nom du compte de service, par exemplesystem:serviceaccount:NAMESPACE:KSA_NAME
, oùNAMESPACE
est l'espace de noms du compte de service etKSA_NAME
est le nom du compte de service."kubernetes.io".namespace
: contient l'espace de noms du compte de service."kubernetes.io".serviceaccount.name
: contient le nom du compte de service."kubernetes.io".pod.name
: contient le nom du pod.
Pour utiliser sub
comme identifiant de sujet (google.subject
) dans Google Cloud, utilisez le mappage suivant :
google.subject=assertion.sub
Vous pouvez éventuellement mapper d'autres attributs. Vous pouvez ensuite faire référence à ces attributs lorsque vous autorisez l'accès aux ressources. Exemple :
google.subject=assertion.sub, attribute.namespace=assertion['kubernetes.io']['namespace'], attribute.service_account_name=assertion['kubernetes.io']['serviceaccount']['name'], attribute.pod=assertion['kubernetes.io']['pod']['name']
Vous pouvez également définir une condition d'attribut.
Les conditions d'attribut sont des expressions CEL qui peuvent vérifier les attributs d'assertion et les attributs cibles. Si la condition d'attribut renvoie true
pour un identifiant donné, celui-ci est accepté. Dans le cas contraire, l'identifiant est rejeté.
Vous pouvez utiliser une condition d'attribut pour limiter les comptes de service Kubernetes pouvant utiliser la fédération d'identité de charge de travail afin d'obtenir des jetons Google Cloud de courte durée.
Par exemple, la condition suivante limite l'accès aux comptes de service Kubernetes provenant des espaces de noms backend
et monitoring
:
assertion['kubernetes.io']['namespace'] in ['backend', 'monitoring']
Créer le pool d'identité de charge de travail et le fournisseur
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer la fédération d'identité de charge de travail, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Administrateur de pools Workload Identity (
roles/iam.workloadIdentityPoolAdmin
) -
Administrateur de compte de service (
roles/iam.serviceAccountAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Le rôle de base IAM "Propriétaire" (roles/owner
) inclut également des autorisations permettant de configurer la fédération d'identité.
Les rôles de base ne doivent pas être attribués dans un environnement de production, mais ils peuvent être attribués dans un environnement de développement ou de test.
Pour créer un pool d'identités de charge de travail et un fournisseur, procédez comme suit :
AKS
Déterminez l'URL de l'émetteur de votre cluster AKS :
az aks show -n NAME -g RESOURCE_GROUP --query "oidcIssuerProfile.issuerUrl" -otsv
Remplacez les éléments suivants :
NAME
: nom du cluster.RESOURCE_GROUP
: groupe de ressources du cluster.
La commande renvoie l'URL de l'émetteur. Vous aurez besoin de l'URL de l'émetteur à l'une des étapes suivantes.
Si la commande ne renvoie aucune URL d'émetteur, vérifiez que vous avez bien activé la fonctionnalité d'émetteur OIDC.
Créez un pool d'identités de charge de travail :
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Remplacez les éléments suivants :
POOL_ID
: ID unique du pool.DISPLAY_NAME
: nom du pool.DESCRIPTION
: description du pool que vous choisissez. Cette description apparaît lorsque vous accordez l'accès aux identités du pool.
Ajoutez le cluster AKS en tant que fournisseur de pools d'identités de charge de travail :
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Remplacez les éléments suivants :
WORKLOAD_PROVIDER_ID
: ID unique de fournisseur de pools d'identités de charge de travail de votre choix.POOL_ID
: ID du pool d'identités de charge de travail que vous avez créé précédemment.ISSUER
: URI d'émetteur que vous avez déterminé précédemment.MAPPINGS
: liste de mappages d'attributs séparés par des virgules que vous avez créés précédemment dans ce guideCONDITIONS
: condition d'attribut facultative que vous avez créée précédemment dans ce guide. Supprimez le paramètre si vous n'avez pas de condition d'attribut.
EKS
Déterminez l'URL de l'émetteur de votre cluster EKS :
aws eks describe-cluster --name NAME --query "cluster.identity.oidc.issuer" --output text
Remplacez
NAME
par le nom du cluster.La commande renvoie l'URL de l'émetteur. Vous aurez besoin de l'URL de l'émetteur à l'une des étapes suivantes.
Créez un pool d'identités de charge de travail :
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Remplacez les éléments suivants :
POOL_ID
: ID unique du pool.DISPLAY_NAME
: nom du pool.DESCRIPTION
: description du pool que vous choisissez. Cette description apparaît lorsque vous accordez l'accès aux identités du pool.
Ajoutez le cluster EKS en tant que fournisseur de pools d'identités de charge de travail :
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"
Remplacez les éléments suivants :
WORKLOAD_PROVIDER_ID
: ID unique de fournisseur de pools d'identités de charge de travail de votre choix.POOL_ID
: ID du pool d'identités de charge de travail que vous avez créé précédemment.ISSUER
: URI d'émetteur que vous avez déterminé précédemment.MAPPINGS
: liste de mappages d'attributs séparés par des virgules que vous avez créés précédemment dans ce guideCONDITIONS
: condition d'attribut facultative que vous avez créée précédemment dans ce guide. Supprimez le paramètre si vous n'avez pas de condition d'attribut.
Kubernetes
Connectez-vous à votre cluster Kubernetes et utilisez
kubectl
pour déterminer l'URL de l'émetteur de votre cluster :kubectl get --raw /.well-known/openid-configuration | jq -r .issuer
Vous aurez besoin de l'URL de l'émetteur à l'une des étapes suivantes.
Téléchargez le jeu de clés Web JSON (JWKS) du cluster :
kubectl get --raw /openid/v1/jwks > cluster-jwks.json
Dans l'une des étapes suivantes, vous devez importer le JWKS pour que la fédération d'identité de charge de travail puisse vérifier l'authenticité des jetons de compte de service Kubernetes émis par votre cluster.
Créez un pool d'identités de charge de travail :
gcloud iam workload-identity-pools create POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Remplacez les éléments suivants :
POOL_ID
: ID unique du pool.DISPLAY_NAME
: nom du pool.DESCRIPTION
: description du pool que vous choisissez. Cette description apparaît lorsque vous accordez l'accès aux identités du pool.
Ajoutez le cluster Kubernetes en tant que fournisseur de pools d'identités de charge de travail, puis importez le JWKS du cluster :
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --issuer-uri="ISSUER" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS" \ --jwk-json-path="cluster-jwks.json"
Remplacez les éléments suivants :
WORKLOAD_PROVIDER_ID
: ID unique de fournisseur de pools d'identités de charge de travail de votre choix.POOL_ID
: ID du pool d'identités de charge de travail que vous avez créé précédemment.ISSUER
: URI d'émetteur que vous avez déterminé précédemment.MAPPINGS
: liste de mappages d'attributs séparés par des virgules que vous avez créés précédemment dans ce guideCONDITIONS
: condition d'attribut facultative que vous avez créée précédemment dans ce guide. Supprimez le paramètre si vous n'avez pas de condition d'attribut.
Accorder l'accès à une charge de travail Kubernetes
Cette section explique comment configurer une charge de travail Kubernetes pour accéder aux API Google Cloud à l'aide de l'accès direct aux ressources de la fédération d'identité de charge de travail ou de l'emprunt d'identité de compte de service.
Vous devez effectuer ces étapes une fois pour chaque charge de travail Kubernetes devant accéder à Google Cloud.
Nous vous recommandons d'utiliser la Fédération d'identité de charge de travail. Toutefois, lorsque vous utilisez la fédération d'identité, certaines méthodes d'API peuvent présenter des limites. Pour obtenir la liste des limites, consultez Fédération des identités: produits et limites.
Si les méthodes utilisées par votre charge de travail présentent de telles limites, vous pouvez utiliser l'emprunt d'identité IAM.
Utiliser la fédération d'identité de charge de travail pour accorder un accès direct aux ressources
Dans cette section, vous allez utiliser la fédération d'identité de charge de travail pour accorder un rôle IAM à un compte de service Kubernetes afin qu'il puisse accéder directement aux ressources Google Cloud.
Pour créer un compte de service Kubernetes et lui attribuer un rôle, procédez comme suit:
Créez un compte de service Kubernetes :
kubectl create serviceaccount KSA_NAME --namespace NAMESPACE
Remplacez les éléments suivants :
KSA_NAME
: nom du compte de service.NAMESPACE
: espace de noms dans lequel créer le compte de service.
Accordez l'accès IAM au compte de service Kubernetes pour une ressource Google Cloud.
Conformément au principe du moindre privilège, nous vous recommandons de n'accorder que les rôles spécifiques aux ressources auxquelles votre application doit accéder.
Dans l'exemple suivant, la commande attribue le rôle Lecteur de cluster Kubernetes Engine (
roles/container.clusterViewer
) au compte de service que vous avez créé. La commande utilise le sujet que vous avez mappé précédemment dans ce document.gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/container.clusterViewer \ --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT \ --condition=None
Remplacez les éléments suivants :
PROJECT_NUMBER
: numéro numérique du projet Google Cloud associé à l'ID de votre projet.POOL_ID
: ID du pool d'identités de la charge de travail.MAPPED_SUBJECT
: compte de service Kubernetes à partir de la revendication de votre jeton d'identification que vous avez mappée surgoogle.subject
. Par exemple, si vous avez mappégoogle.subject=assertions.sub
et que votre jeton d'ID contient"sub": "system:serviceaccount:default:my-kubernetes-serviceaccount"
, alorsMAPPED_SUBJECT
estsystem:serviceaccount:default:my-kubernetes-serviceaccount
.
Vous pouvez attribuer des rôles sur n'importe quelle ressource Google Cloud compatible avec les stratégies d'autorisation IAM. La syntaxe de l'identifiant de compte principal dépend de la ressource Kubernetes. Pour obtenir la liste des identifiants compatibles, consultez la section Identifiants de compte principal pour la fédération d'identité de charge de travail pour GKE.
Vous pouvez maintenant déployer une charge de travail qui utilise le compte de service Kubernetes pour accéder aux ressources Google Cloud auxquelles vous avez accordé l'accès.
Autre solution: utiliser l'emprunt d'identité d'un compte de service IAM pour accorder l'accès
Pour configurer votre compte de service Kubernetes afin qu'il emprunte l'identité du compte de service IAM, procédez comme suit:
Si vous ne l'avez pas déjà fait, créez un ServiceAccount Kubernetes:
kubectl create serviceaccount KSA_NAME --namespace NAMESPACE
Remplacez les éléments suivants :
KSA_NAME
: nom du compte de service.NAMESPACE
: espace de noms dans lequel créer le compte de service.
Créez un compte de service IAM qui représente la charge de travail.
Le compte de service ne doit pas obligatoirement se trouver dans le même projet que le pool d'identités de charge de travail, mais vous devez spécifier le projet qui contient le compte de service lorsque vous y faites référence.
gcloud iam service-accounts create IAM_SA_NAME \ --project=IAM_SA_PROJECT_ID
Remplacez les éléments suivants :
IAM_SA_NAME
: nom du compte de service.IAM_SA_PROJECT_ID
: ID de projet du compte de service.
Accordez à votre compte de service IAM l'accès aux ressources Google Cloud spécifiques auxquelles la charge de travail Kubernetes doit accéder.
gcloud projects add-iam-policy-binding IAM_SA_PROJECT_ID \ --member="serviceAccount:IAM_SA_NAME@IAM_SA_PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE"
Remplacez les éléments suivants :
IAM_SA_PROJECT_ID
: ID du projet dans lequel vous avez créé votre compte de service.IAM_SA_NAME
: nom du compte de service.ROLE
: avec le nom du rôle, par exempleroles/container.clusterViewer
Accordez au compte de service Kubernetes l'accès nécessaire pour emprunter l'identité du compte de service IAM:
gcloud iam service-accounts add-iam-policy-binding \ IAM_SA_NAME@IAM_SA_PROJECT_ID.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
Remplacez les éléments suivants :
IAM_SA_NAME
: nom du compte de service.PROJECT_ID
: ID du projet dans lequel vous exécutez KubernetesIAM_SA_PROJECT_NUMBER
: numéro de projet du projet dans lequel vous avez créé votre compte de service.POOL_ID
: ID du pool d'identités de la charge de travail.MAPPED_SUBJECT
: compte de service Kubernetes à partir de la revendication de votre jeton d'identification que vous avez mappée surgoogle.subject
. Par exemple, si vous avez mappégoogle.subject=assertions.sub
et que votre jeton d'ID contient"sub": "system:serviceaccount:default:my-kubernetes-serviceaccount"
, alorsMAPPED_SUBJECT
estsystem:serviceaccount:default:my-kubernetes-serviceaccount
.
Pour en savoir plus sur l'autorisation d'accéder aux API Google Cloud via les comptes de service IAM, consultez la page Comprendre les comptes de service.
Vous pouvez maintenant déployer une charge de travail qui utilise le compte de service Kubernetes et le compte de service IAM pour accéder aux ressources Google Cloud auxquelles vous avez accordé l'accès.
Déployer la charge de travail Kubernetes
Pour déployer une charge de travail Kubernetes pouvant accéder aux ressources Google Cloud, procédez comme suit:
Créez un fichier de configuration des identifiants :
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 \ --credential-source-file=/var/run/service-account/token \ --credential-source-type=text \ --output-file=credential-configuration.json
Remplacez les éléments suivants :
PROJECT_NUMBER
: numéro du projet contenant le pool d'identités de charge de travailPOOL_ID
: ID du pool d'identités de charge de travailWORKLOAD_PROVIDER_ID
: ID du fournisseur du pool d'identités de charge de travailSERVICE_ACCOUNT_EMAIL
: adresse e-mail du compte de service, si vous avez configuré votre compte de service Kubernetes pour utiliser l'emprunt d'identité de compte de service IAM. Omettez cette option si vous avez configuré votre compte de service Kubernetes pour utiliser l'accès direct aux ressources.
Le fichier de configuration des identifiants permet aux bibliothèques clientes Cloud, à gcloud CLI et à Terraform de déterminer les éléments suivants :
- Où obtenir des identifiants externes
- Quel pool d'identités de charge de travail et quel fournisseur utiliser
- À quel compte de service emprunter l'identité
Importez le fichier de configuration des identifiants en tant que ConfigMap
kubectl create configmap CONFIGMAP_NAME \ --from-file credential-configuration.json \ --namespace NAMESPACE
Remplacez les éléments suivants :
CONFIGMAP_NAME
: nom du ConfigMap.NAMESPACE
: espace de noms dans lequel créer le ConfigMap.
Déployez une charge de travail et faites en sorte qu'elle utilise le compte de service Kubernetes et ConfigMap.
Créez un fichier manifeste et configurez-le comme suit :
- Installez un volume de jetons projeté pour que la charge de travail puisse obtenir un jeton de compte de service Kubernetes à partir d'un fichier local. Configurez le volume de sorte que le jeton du compte de service Kubernetes utilise l'audience attendue par votre fournisseur de pools d'identité de charge de travail.
- Installez le ConfigMap contenant le fichier de configuration des identifiants afin que la charge de travail puisse accéder à la configuration requise pour utiliser la fédération d'identité de charge de travail.
- Ajoutez une variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
contenant le chemin d'accès du fichier de configuration des identifiants, afin que les charges de travail puissent trouver ce fichier.
Vous trouverez ci-dessous un exemple de fichier manifeste qui utilise le compte de service Kubernetes et ConfigMap pour permettre à la Google Cloud CLI de s'authentifier auprès de Google Cloud :
apiVersion: v1 kind: Pod metadata: name: example namespace: NAMESPACE spec: containers: - name: example image: google/cloud-sdk:alpine command: ["/bin/sh", "-c", "gcloud auth login --cred-file $GOOGLE_APPLICATION_CREDENTIALS && gcloud auth list && sleep 600"] volumeMounts: - name: token mountPath: "/var/run/service-account" readOnly: true - name: workload-identity-credential-configuration mountPath: "/etc/workload-identity" readOnly: true env: - name: GOOGLE_APPLICATION_CREDENTIALS value: "/etc/workload-identity/credential-configuration.json" serviceAccountName: KSA_NAME volumes: - name: token projected: sources: - serviceAccountToken: audience: https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID expirationSeconds: 3600 path: token - name: workload-identity-credential-configuration configMap: name: CONFIGMAP_NAME
Vous pouvez suivre la même approche pour permettre aux outils et aux charges de travail utilisant l'une des bibliothèques clientes suivantes de trouver automatiquement les identifiants :
C++
Les bibliothèques clientes Google Cloud pour C++ sont compatibles avec la fédération d'identité de charge de travail depuis la version v2.6.0. Pour utiliser la fédération d'identité de charge de travail, vous devez créer les bibliothèques clientes avec la version 1.36.0 ou ultérieure de gRPC.
Go
Les bibliothèques clientes pour Go sont compatibles avec la fédération d'identité si elles utilisent la version 0.0.0-20210218202405-ba52d332ba99 ou une version ultérieure du module
golang.org/x/oauth2
.Pour vérifier quelle version de ce module est utilisée par votre bibliothèque cliente, exécutez les commandes suivantes :
cd $GOPATH/src/cloud.google.com/go go list -m golang.org/x/oauth2
Java
Les bibliothèques clientes pour Java sont compatibles avec la fédération d'identité si elles utilisent la version 0.24.0 ou une version ultérieure de l'artefact
com.google.auth:google-auth-library-oauth2-http
.Pour vérifier la version de cet artefact utilisée par votre bibliothèque cliente, exécutez la commande Maven suivante dans le répertoire de votre application :
mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
Node.js
Les bibliothèques clientes pour Node.js sont compatibles avec la fédération d'identité de charge de travail si elles utilisent la version 7.0.2 ou ultérieure du package
google-auth-library
.Pour vérifier la version de ce package utilisée par votre bibliothèque cliente, exécutez la commande suivante dans le répertoire de votre application :
npm list google-auth-library
Lorsque vous créez un objet
GoogleAuth
, vous pouvez spécifier un ID de projet ou autoriserGoogleAuth
à le trouver automatiquement. Pour trouver automatiquement l'ID du projet, le compte de service dans le fichier de configuration doit disposer du rôle de visiteur (roles/browser
) ou d'un rôle avec des autorisations équivalentes sur votre projet. Pour en savoir plus, consultez la sectionREADME
du packagegoogle-auth-library
.Python
Les bibliothèques clientes pour Python sont compatibles avec la fédération d'identité si elles utilisent la version 1.27.0 ou ultérieure du package
google-auth
.Pour vérifier la version de ce package utilisée par votre bibliothèque cliente, exécutez la commande suivante dans l'environnement dans lequel le package est installé :
pip show google-auth
Pour spécifier un ID de projet pour le client d'authentification, vous pouvez définir la variable d'environnement
GOOGLE_CLOUD_PROJECT
ou autoriser le client à trouver automatiquement l'ID du projet. Pour trouver automatiquement l'ID du projet, le compte de service dans le fichier de configuration doit disposer du rôle de visiteur (roles/browser
) ou d'un rôle avec des autorisations équivalentes sur votre projet. Pour en savoir plus, consultez le guide de l'utilisateur du packagegoogle-auth
.gcloud
Pour vous authentifier à l'aide de la fédération d'identité de charge de travail, utilisez la commande
gcloud auth login
:gcloud auth login --cred-file=FILEPATH.json
Remplacez
FILEPATH
par le chemin d'accès au fichier de configuration des identifiants.La fédération d'identité de charge de travail dans gcloud CLI est disponible dans les versions 363.0.0 et ultérieures de gcloud CLI.
Terraform
Le fournisseur Google Cloud est compatible avec la fédération d'identité de charge de travail si vous utilisez la version 3.61.0 ou ultérieure :
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.61.0" } } }
bq
Pour vous authentifier à l'aide de la fédération d'identité de charge de travail, utilisez la commande
gcloud auth login
, comme suit :gcloud auth login --cred-file=FILEPATH.json
Remplacez
FILEPATH
par le chemin d'accès au fichier de configuration des identifiants.La fédération d'identité de charge de travail dans bq est disponible dans les versions 390.0.0 et ultérieures de gcloud CLI.
Vous pouvez également vérifier que l'authentification fonctionne correctement en exécutant la commande suivante :
kubectl exec example --namespace NAMESPACE -- gcloud auth print-access-token
Étape suivante
- Apprenez-en plus sur la fédération d'identité de charge de travail.
- Découvrez les bonnes pratiques d'utilisation de la fédération d'identité de charge de travail.
- Découvrez comment vous pouvez gérer les pools d'identités de charge de travail et les fournisseurs.