Configurer l'authentification des identités de charge de travail gérées pour Compute Engine

Ce document explique comment configurer des identités de charge de travail gérées pour Compute Engine à l'aide de gcloud CLI. Il explique également comment configurer le provisionnement automatique et la gestion du cycle de vie des identités de charge de travail gérées pour Compute Engine à l'aide de Certificate Authority Service, qui vous permet d'établir des connexions TLS mutuelles (mTLS) entre les charges de travail.

Pour demander l'accès aux identités de charge de travail gérées pour Compute Engine, remplissez le formulaire de demande d'accès.

Avant de commencer

  1. Créez ou sélectionnez un projet Google Cloud .

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un projet Google Cloud  :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud .

  2. Demandez l'accès à la version preview des identités de charge de travail gérées pour Compute Engine.

  3. Comprendre les identités de charge de travail gérées

  4. Découvrez ce qu'est l'émission de certificats à l'aide de Certificate Authority Service.

  5. Découvrez comment authentifier les charges de travail Compute Engine à l'aide d'identités de charge de travail gérées.

  6. Activez les API IAM et Certificate Authority Service :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    gcloud services enable iam.googleapis.com privateca.googleapis.com

  7. Configurez Google Cloud CLI afin d'utiliser le projet ajouté à la liste d'autorisation pour la facturation et les quotas.

    gcloud config set billing/quota_project PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet qui a été ajouté à la liste d'autorisation pour l'identité de charge de travail gérée en preview.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer des identités de charge de travail gérées et provisionner des certificats d'identité de charge de travail gérés, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez 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 les identités de charge de travail gérées. 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.

Présentation

Pour utiliser des identités de charge de travail gérées pour vos applications, vous devez effectuer les tâches suivantes :

  1. Administrateur de la sécurité

  2. Administrateur de Compute :

    Activez les identités de charge de travail gérées pour les charges de travail exécutées dans Compute Engine :

Créez un pool d'identités de charge de travail.

  1. Pour configurer des identités de charge de travail gérées, vous devez créer un pool en mode TRUST_DOMAIN.

    gcloud iam workload-identity-pools create POOL_ID \
      --location="global" \
      --mode="TRUST_DOMAIN"
    

    Remplacez POOL_ID par l'ID unique du pool. L'ID doit comporter entre 4 et 32 caractères, ne contenir que des caractères alphanumériques minuscules et des tirets, et commencer et se terminer par un caractère alphanumérique. Une fois que vous avez créé un pool d'identités de charge de travail, vous ne pouvez plus modifier son ID.

  2. Pour vérifier que votre pool d'identités de charge de travail a été créé en mode TRUST_DOMAIN, exécutez la commande workload-identity-pools describe.

    gcloud iam workload-identity-pools describe POOL_ID \
      --location="global"
    

    Le résultat ressemble à ce qui suit :

    mode: TRUST_DOMAIN
    name: projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID
    state: ACTIVE
    

    Si mode: TRUST_DOMAIN ne figure pas dans le résultat de la commande, vérifiez que votre projet a été ajouté à la liste d'autorisation pour la version preview de l'identité de charge de travail gérée et que vous avez correctement configuré votre gcloud CLI afin d'utiliser le projet approprié pour la facturation et les quotas. Assurez-vous d'avoir installé la dernière version de gcloud CLI.

Choisir une option d'autorité de certification

Pour signer vos certificats de charge de travail, choisissez l'option d'autorité de certification (CA) qui correspond le mieux à votre cas d'utilisation :

  • Autorité de certification par défaut gérée par Google : utilisez cette option pour une solution entièrement gérée et sans frais. L'autorité de certification par défaut fournit une racine de confiance partagée pour tous les utilisateursGoogle Cloud .

  • Autorité de certification personnalisée : utilisez cette option pour configurer votre propre infrastructure à clé publique (PKI) via Certificate Authority Service. Cette option est appropriée si vous avez besoin d'une racine de confiance personnalisée ou si vous devez stocker les clés de signature dans un module de sécurité matérielle (HSM) pour répondre aux exigences de conformité. Certificate Authority Service est facturé séparément de l'identité de charge de travail gérée. Pour en savoir plus, consultez la section Tarifs du service d'autorité de certification.

Configurer une autorité de certification

AC par défaut

Pour associer l'autorité de certification par défaut au pool d'identités de charge de travail, mettez à jour le pool d'identités de charge de travail avec l'indicateur use-default-shared-ca.

gcloud iam workload-identity-pools update TRUST_DOMAIN_NAME \
    --location="global" \
    --use-default-shared-ca \
    --project=PROJECT_ID

Remplacez les éléments suivants :

  • TRUST_DOMAIN_NAME : nom du domaine approuvé.
  • PROJECT_ID : ID du projet.

Autorité de certification personnalisée

Pour configurer des identités de charge de travail gérées à l'aide d'une CA personnalisée, procédez comme suit :

  1. Configurez le service d'autorité de certification pour émettre des certificats pour les identités de charge de travail gérées.
  2. Associez les CA au pool d'identités de charge de travail.
  3. Autorisez les identités de charge de travail gérées à demander des certificats à partir du pool d'autorités de certification.

Configurer le service d'autorité de certification pour émettre des certificats pour les identités de charge de travail gérées

Créez la configuration recommandée pour les autorités de certification racine et subordonnées à l'aide des pools Certificate Authority Service. Le pool d'autorités de certification subordonnées émet les certificats d'identité de charge de travail X.509 pour les VM.

Les pools d'autorités de certification configurés pour émettre des certificats pour les VM Compute Engine à l'aide d'identités de charge de travail gérées doivent se trouver dans la même région que la VM. Si vous souhaitez concevoir une architecture multirégionale pour la résilience aux pannes régionales, nous vous recommandons de configurer un pool d'AC Certificate Authority Service subordonné pour chacune des régions de votre charge de travail. Ainsi, chacune de vos VM Compute Engine peut faire référence à un pool d'AC Certificate Authority Service subordonné dans la région.

Après avoir configuré les pools d'autorités de certification, vous autorisez les identités de charge de travail gérées à demander et à recevoir les certificats signés à partir des pools d'autorités de certification.

Configurer votre pool d'autorités de certification racine

Utilisez l'interface Google Cloud CLI de Certificate Authority Service pour configurer un pool d'autorités de certification racine.

Vous ne pouvez pas déplacer ni exporter un pool d'autorités de certification après sa création.

  1. Créez le pool d'autorités de certification racine au niveau Enterprise en exécutant la commande gcloud privateca pools create. Le niveau Enterprise est destiné à l'émission de certificats de longue durée, à faible volume.

    gcloud privateca pools create ROOT_CA_POOL_ID \
       --location=REGION \
       --tier=enterprise
    

    Remplacez les éléments suivants :

    • ROOT_CA_POOL_ID : ID unique du pool d'autorités de certification racine. L'ID peut comporter jusqu'à 64 caractères et ne doit contenir que des caractères alphanumériques minuscules et majuscules, des traits de soulignement ou des traits d'union. L'ID de pool doit être unique dans la région.
    • REGION : région où se trouve le pool d'autorités de certification racine.

    Pour en savoir plus, consultez la section Créer des pools d'autorités de certification.

  2. Créez une autorité de certification racine dans le pool d'autorités de certification racine en exécutant la commande gcloud privateca roots create. Vous serez peut-être invité à activer l'autorité de certification racine s'il s'agit de la seule autorité de certification du pool d'autorités de certification racine.

    Par exemple, vous pouvez utiliser une commande semblable à la suivante pour créer une autorité de certification racine.

    gcloud privateca roots create ROOT_CA_ID \
       --pool=ROOT_CA_POOL_ID \
       --subject "CN=ROOT_CA_CN, O=ROOT_CA_ORGANIZATION" \
       --key-algorithm="ec-p256-sha256" \
       --max-chain-length=1 \
       --location=REGION
    

    Remplacez les éléments suivants :

    • ROOT_CA_ID : nom unique de l'autorité de certification racine. Ce nom peut comporter jusqu'à 64 caractères et ne doit contenir que des caractères alphanumériques minuscules et majuscules, des traits de soulignement ou des traits d'union. Le nom de l'autorité de certification doit être unique dans la région.
    • ROOT_CA_POOL_ID : ID du pool d'autorités de certification racine.
    • ROOT_CA_CN : nom commun de l'autorité de certification racine.
    • ROOT_CA_ORGANIZATION : organisation de l'autorité de certification racine.
    • REGION : région où se trouve le pool d'autorités de certification racine.

    Pour en savoir plus, consultez la section Créer une autorité de certification racine. Pour en savoir plus sur les champs subject de l'autorité de certification, consultez la section Objet.

  3. (Facultatif) Répétez les étapes précédentes pour créer une autorité de certification racine supplémentaire dans le pool d'autorités de certification racine. Cela peut être utile pour la rotation de l'autorité de certification racine.

Configurer les autorités de certification subordonnées

Utilisez l'interface Google Cloud CLI pour Certificate Authority Service afin de créer un pool d'autorités de certification subordonnée et une autorité de certification subordonnée.

Si vous disposez de plusieurs scénarios d'émission de certificat, vous pouvez créer une autorité de certification subordonnée pour chacun d'entre eux. De plus, l'ajout de plusieurs autorités de certification subordonnées dans un pool d'autorités de certification vous permet d'améliorer l'équilibrage de charge des requêtes de certificat.

Utilisez la commande gcloud privateca pools create pour créer un pool d'autorités de certification subordonnées.

  1. Créez le pool d'autorités de certification subordonnées au niveau DevOps. Ce niveau est conçu pour l'émission de certificats de courte durée et à volume élevé.

    gcloud privateca pools create SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --tier=devops
    

    Remplacez les éléments suivants :

    • SUBORDINATE_CA_POOL_ID : ID unique pour le pool d'autorités de certification subordonnée. L'ID peut comporter jusqu'à 64 caractères et ne doit contenir que des caractères alphanumériques minuscules et majuscules, des traits de soulignement ou des traits d'union. L'ID de pool doit être unique dans la région.
    • REGION : région dans laquelle créer le pool d'autorités de certification subordonné.

    Pour en savoir plus, consultez la section Créer des pools d'autorités de certification.

  2. Créez une autorité de certification subordonnée dans le pool d'autorités de certification subordonnées en exécutant la commande gcloud privateca subordinates create. Ne modifiez pas le mode d'émission basé sur la configuration par défaut.

    Par exemple, vous pouvez utiliser une commande semblable à la suivante pour créer une autorité de certification subordonnée.

    gcloud privateca subordinates create SUBORDINATE_CA_ID \
      --pool=SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --issuer-pool=ROOT_CA_POOL_ID \
      --issuer-location=REGION \
      --subject="CN=SUBORDINATE_CA_CN, O=SUBORDINATE_CA_ORGANIZATION" \
      --key-algorithm="ec-p256-sha256" \
      --use-preset-profile=subordinate_mtls_pathlen_0
    

    Remplacez les éléments suivants :

    • SUBORDINATE_CA_ID : nom unique de l'autorité de certification subordonnée. Ce nom peut comporter jusqu'à 64 caractères et ne doit contenir que des minuscules et majuscules, des traits de soulignement ou des traits d'union. Le nom de l'autorité de certification doit être unique dans la région.
    • SUBORDINATE_CA_POOL_ID : nom du pool d'autorités de certification subordonné.
    • REGION : région où se trouve le pool d'autorités de certification subordonné.
    • ROOT_CA_POOL_ID : ID du pool d'autorités de certification racine.
    • REGION : région du pool d'autorités de certification racine.
    • SUBORDINATE_CA_CN : nom commun de l'autorité de certification subordonnée.
    • SUBORDINATE_CA_ORGANIZATION : nom de l'organisation émettrice de l'autorité de certification subordonnée.

    Pour en savoir plus, consultez la section Créer des pools d'autorités de certification. Pour en savoir plus sur les champs subject de l'autorité de certification, consultez la section Objet.

Associer les CA au pool d'identités de charge de travail

Une fois votre hiérarchie d'autorités de certification créée, vous liez les autorités de certification au pool d'identités de charge de travail en mettant à jour le pool avec la configuration d'émission de certificats de chaque autorité de certification.

  1. Créez un fichier issuance-config.yaml avec le contenu suivant :

    inlineCertificateIssuanceConfig:
    caPools:
    REGION: projects/PROJECT_ID/locations/REGION/caPools/SUBORDINATE_CA_POOL_ID
    keyAlgorithm: RSA_2048
    lifetime: 86400s
    rotationWindowPercentage: 50

    Remplacez les éléments suivants dans le fichier :

    • REGION : région où se trouve le pool d'autorités de certification subordonnées.
    • PROJECT_ID : ID du projet contenant le pool d'autorités de certification subordonnées.
    • SUBORDINATE_CA_POOL_ID : ID du pool d'autorités de certification subordonnées.
  2. Exécutez la commande suivante pour mettre à jour le pool d'identités de charge de travail :

    gcloud iam workload-identity-pools update POOL_ID \
       --location="global" \
       --inline-certificate-issuance-config-file=ISSUANCE_CONFIG_FILE
    

    Remplacez les éléments suivants :

    • POOL_ID : ID unique du pool.
    • ISSUANCE_CONFIG_FILE : chemin d'accès au fichier issuance-config.yaml.

Autoriser les identités de charge de travail gérées à demander des certificats à partir du pool d'autorités de certification

Les identités de charge de travail gérées ont besoin d'autorisations pour demander des certificats à CA Service et obtenir les certificats publics.

  1. Accordez le rôle IAM Demandeur de certificat de charge de travail du service CA (roles/privateca.workloadCertificateRequester) sur chaque pool d'autorités de certification subordonnées à l'identité de charge de travail gérée. La commande gcloud privateca pools add-iam-policy-binding suivante autorise l'identité de charge de travail gérée à demander des certificats à partir des chaînes de certificats de CA Service.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --role=roles/privateca.workloadCertificateRequester \
      --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/POOL_ID/*"
    

    Remplacez les éléments suivants :

    • SUBORDINATE_CA_POOL_ID : ID du pool d'autorités de certification subordonnée.
    • REGION : région du pool d'autorités de certification subordonnées.
    • PROJECT_NUMBER : numéro de projet du projet contenant le pool d'identités de charge de travail.
    • POOL_ID : ID du pool d'identités de charge de travail.
  2. Accordez le rôle IAM Lecteur de pool du service d'autorités de certification (roles/privateca.poolReader) sur les pools d'autorités de certification subordonnés à l'identité de charge de travail gérée. Cela permet à l'identité de charge de travail gérée d'obtenir les certificats X.509 signés à partir des chaînes de certificats de l'autorité de certification.

    gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
      --location=REGION \
      --role=roles/privateca.poolReader \
      --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/POOL_ID/*"
    

    Remplacez les éléments suivants :

    • SUBORDINATE_CA_POOL_ID : ID du pool d'autorités de certification subordonnée.
    • REGION : région du pool d'autorités de certification subordonnées.
    • PROJECT_NUMBER : numéro de projet du projet contenant le pool d'identités de charge de travail.
    • POOL_ID : ID du pool d'identités de charge de travail.

Créer des identités de charge de travail gérées

Les identités de charge de travail gérées permettent à Google Cloud de provisionner automatiquement les identifiants des identités de pool d'identités de charge de travail sur vos charges de travail. Les identités de charge de travail sont définies dans un pool d'identités de charge de travail et sont organisées en limites administratives appelées espaces de noms.

Créer un espace de noms

La commande workload-identity-pools namespaces create vous permet de créer un espace de noms dans un pool d'identités de charge de travail.

gcloud iam workload-identity-pools namespaces create NAMESPACE_ID \
    --workload-identity-pool="POOL_ID" \
    --location="global"

Remplacez les éléments suivants :

  • NAMESPACE_ID : ID unique de l'espace de noms. L'ID doit comporter entre 2 et 63 caractères, ne contenir que des caractères alphanumériques minuscules et des tirets, et commencer et se terminer par un caractère alphanumérique. Une fois que vous avez créé un espace de noms, vous ne pouvez pas modifier son ID.
  • POOL_ID : ID du pool d'identités de charge de travail que vous avez créé précédemment.

Créer une identité de charge de travail gérée

La commande workload-identity-pools managed-identities create vous permet de créer une identité de charge de travail gérée dans un espace de noms de pool d'identités de charge de travail.

gcloud iam workload-identity-pools managed-identities create MANAGED_IDENTITY_ID \
    --namespace="NAMESPACE_ID" \
    --workload-identity-pool="POOL_ID" \
    --location="global"

Remplacez les éléments suivants :

  • MANAGED_IDENTITY_ID : ID unique de l'identité gérée. L'ID doit comporter entre 2 et 63 caractères, ne contenir que des caractères alphanumériques minuscules et des tirets, et commencer et se terminer par un caractère alphanumérique. Une fois que vous avez créé une identité de charge de travail gérée, vous ne pouvez pas modifier son ID.
  • NAMESPACE_ID : ID de l'espace de noms que vous avez créé précédemment.
  • POOL_ID : ID du pool d'identités de charge de travail que vous avez créé précédemment.

L'ID de votre identité de charge de travail gérée est l'identifiant SPIFFE, dont le format est le suivant :

spiffe://POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID

Définir une règle d'attestation de charge de travail

Cette section explique comment configurer une règle d'attestation. Cette règle détermine les attributs utilisés par Google Cloud IAM pour vérifier l'identité de la charge de travail. Une fois la validation effectuée, la charge de travail appelante peut recevoir un identifiant.

La validation repose sur l'un des attributs suivants de la charge de travail :

  • ID d'instance de VM
  • Adresse e-mail du compte de service associé
  • UID du compte de service associé

Définir une règle d'attestation de charge de travail avec des règles d'attestation

Pour créer une règle d'attestation qui permet à votre charge de travail d'utiliser l'identité gérée, procédez comme suit :

  1. Déterminez si vous souhaitez créer une règle d'attestation qui permet à votre charge de travail d'attester l'identité gérée à l'aide de son compte de service associé ou de son ID d'instance.

  2. Créez un fichier de stratégie d'attestation au format JSON.

    1. Facultatif : Pour recevoir des identifiants X.509 sur votre instance Compute Engine, vous devez activer un compte de service associé. Nous vous recommandons d'associer un nouveau compte de service à votre charge de travail en le créant d'abord à l'aide de la commande suivante :

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Remplacez SERVICE_ACCOUNT_NAME par le nom du compte de service.

    2. Créez un fichier de stratégie d'attestation au format JSON qui atteste en fonction de l'adresse e-mail du compte de service, de l'UID du compte de service ou de l'ID de l'instance.

      Adresse e-mail du compte de service

      Pour créer un fichier de règle d'attestation qui atteste en fonction de l'adresse e-mail du compte de service, créez un fichier avec le contenu suivant :

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.email/SERVICE_ACCOUNT_EMAIL"
            }
         ],
      }
      

      Remplacez les éléments suivants :

      • WORKLOAD_PROJECT_NUMBER : numéro du projet contenant l'instance de VM ou le compte de service

      Pour obtenir le numéro du projet contenant l'identité gérée ou le compte de service que vous venez de créer, exécutez la commande suivante :

         gcloud projects describe $(gcloud config get-value project) \
            --format="value(projectNumber)"
      
      • SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service associé à la VM

      UID du compte de service

      Pour créer un fichier de règle d'attestation qui atteste en fonction de l'UID du compte de service, créez un fichier avec le contenu suivant :

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID"
            }
         ],
      }
      

      Remplacez les éléments suivants :

      • WORKLOAD_PROJECT_NUMBER : numéro du projet contenant l'instance de VM ou le compte de service

      Pour obtenir le numéro du projet contenant l'identité gérée ou le compte de service que vous venez de créer, exécutez la commande suivante :

         gcloud projects describe $(gcloud config get-value project) \
            --format="value(projectNumber)"
      
      • SERVICE_ACCOUNT_UID : UID du compte de service associé à la VM

      Pour obtenir l'ID unique du compte de service, exécutez la commande suivante :

         gcloud iam service-accounts describe SERVICE_ACCOUNT_EMAIL\
            --format="value(uniqueId)"
      

      ID d'instance

      Pour créer un fichier de règles d'attestation qui atteste en fonction de l'ID d'instance, créez un fichier avec le contenu suivant :

      {
         "attestationRules": [
            {
               "googleCloudResource": "//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/uid/zones/ZONE/instances/INSTANCE_ID"
            }
         ],
      }
      

      Remplacez les éléments suivants :

      • WORKLOAD_PROJECT_NUMBER : numéro du projet contenant l'instance de VM ou le compte de service

      Pour obtenir le numéro du projet contenant l'identité gérée ou le compte de service que vous venez de créer, exécutez la commande suivante :

         gcloud projects describe $(gcloud config get-value project) \
            --format="value(projectNumber)"
      
      • INSTANCE_ID : ID de l'instance de VM Compute Engine

      La valeur d'un ID d'instance doit provenir d'une instance Compute Engine existante. Pour obtenir l'ID de votre instance, exécutez la commande suivante :

      gcloud compute instances describe INSTANCE_NAME --zone=ZONE --format="get(id)"
      
      • INSTANCE_NAME : nom de l'instance de VM Compute Engine
      • ZONE : zone de la VM Compute Engine
  3. Créez la stratégie d'attestation à l'aide du fichier JSON de stratégie que vous avez créé précédemment dans ce document :

    gcloud iam workload-identity-pools managed-identities set-attestation-rules MANAGED_IDENTITY_ID \
       --namespace=NAMESPACE_ID \
       --workload-identity-pool=POOL_ID \
       --policy-file=PATH_TO_POLICY_JSON_FILE \
       --location=global
    

    Remplacez les éléments suivants :

    • MANAGED_IDENTITY_ID : ID unique de l'identité gérée. L'ID doit comporter entre 2 et 63 caractères, ne contenir que des caractères alphanumériques minuscules et des tirets, et commencer et se terminer par un caractère alphanumérique. Une fois que vous avez créé une identité de charge de travail gérée, vous ne pouvez pas modifier son ID.
    • NAMESPACE_ID : ID de l'espace de noms que vous avez créé précédemment.
    • POOL_ID : ID du pool d'identités de charge de travail que vous avez créé précédemment.
    • PATH_TO_POLICY_JSON_FILE : chemin d'accès au fichier JSON représentant la stratégie d'attestation que vous avez créée précédemment.

    Vous pouvez également mettre à jour la stratégie en ajoutant ou en supprimant des règles d'attestation individuellement. Pour ajouter une attestation à votre règle d'attestation, exécutez la commande suivante :

    gcloud iam workload-identity-pools managed-identities add-attestation-rule MANAGED_IDENTITY_ID \
       --namespace=NAMESPACE_ID \
       --workload-identity-pool=POOL_ID \
       --google-cloud-resource='//compute.googleapis.com/projects/WORKLOAD_PROJECT_NUMBER/type/Instance/attached_service_account.uid/SERVICE_ACCOUNT_UID' \
       --location=global
    
  4. Pour savoir comment lister ou supprimer les règles d'attestation, exécutez les commandes suivantes :

    gcloud iam workload-identity-pools managed-identities list-attestation-rules --help
    gcloud iam workload-identity-pools managed-identities remove-attestation-rule --help
    

Facultatif : Activer la fédération d'approbation entre les pools d'identités de charge de travail

Pour activer l'authentification mutuelle pour les charges de travail dans différents domaines de confiance, vous pouvez configurer la fédération de confiance.

  1. Créez un fichier trust-config.yaml avec le contenu suivant :

    inlineTrustConfig:
    additionalTrustBundles:
      POOL_ID.global.PROJECT_NUMBER.workload.id.goog:
         trustAnchors:
         - pemCertificate: "-----BEGIN CERTIFICATE-----\nPEM_ENCODED_CERTIFICATE\n-----END CERTIFICATE-----"

    Remplacez les éléments suivants dans le fichier :

    • POOL_ID : ID du pool d'identités de charge de travail avec lequel vous souhaitez effectuer la fédération.
    • PROJECT_NUMBER : numéro de projet du pool d'identités de charge de travail avec lequel vous souhaitez effectuer la fédération.
    • PEM_ENCODED_CERTIFICATE : certificat CA racine encodé au format PEM du pool d'identités de charge de travail avec lequel vous souhaitez effectuer la fédération.
  2. Pour mettre à jour le pool d'identités de charge de travail avec la configuration de confiance, exécutez la commande suivante :

    gcloud iam workload-identity-pools update POOL_ID \
      --location="global" \
      --inline-trust-config-file=TRUST_CONFIG_FILE
    

    Remplacez les éléments suivants :

    • POOL_ID : ID unique du pool.
    • TRUST_CONFIG_FILE : chemin d'accès au fichier trust-config.yaml.

Étapes suivantes

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.

Essai sans frais