Gérer les pools d'identités de charge de travail et les fournisseurs

Cette page explique comment gérer les pools d'identités de charge de travail existants et leurs fournisseurs d'identité.

Vous pouvez gérer les pools et les fournisseurs à l'aide de Google Cloud Console, de la CLI Google Cloud ou de l'API REST.

Avant de commencer

Créez un pool d'identités de charge de travail. Pour savoir comment procéder, consultez l'une des pages suivantes :

Rôles requis

Pour obtenir les autorisations nécessaires pour gérer les pools et fournisseurs d'identités de charge de travail, 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 la section Gérer les accès.

Ces rôles prédéfinis contiennent les autorisations requises pour gérer les pools et fournisseurs d'identités de charge de travail. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour gérer les pools et les fournisseurs d'identités de charge de travail :

  • Pour afficher les pools et fournisseurs d'identités de charge de travail :
    • iam.googleapis.com/workloadIdentityPoolProviders.get
    • iam.googleapis.com/workloadIdentityPoolProviders.list
    • iam.googleapis.com/workloadIdentityPools.get
    • iam.googleapis.com/workloadIdentityPools.list
  • Pour créer, mettre à jour et supprimer des pools et des fournisseurs :
    • iam.googleapis.com/workloadIdentityPoolProviders.create
    • iam.googleapis.com/workloadIdentityPoolProviders.delete
    • iam.googleapis.com/workloadIdentityPoolProviders.undelete
    • iam.googleapis.com/workloadIdentityPoolProviders.update
    • iam.googleapis.com/workloadIdentityPools.create
    • iam.googleapis.com/workloadIdentityPools.delete
    • iam.googleapis.com/workloadIdentityPools.undelete
    • iam.googleapis.com/workloadIdentityPools.update

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Gérer les pools d'identités de charge de travail

Cette section explique comment gérer les pools d'identités de charge de travail.

Créer des pools

Pour créer des pools d'identités de charge de travail dans un projet, procédez comme suit :

Console

Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

Accéder aux pools d'identité de charge de travail

gcloud

Exécutez la commande gcloud iam workload-identity-pools create.

REST

Appelez projects.locations.workloadIdentityPools.create().

Répertorier les pools

Pour répertorier tous les pools d'identités de charge de travail d'un projet, procédez comme suit :

Console

Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

Accéder aux pools d'identité de charge de travail

gcloud

Exécutez la commande gcloud iam workload-identity-pools list.

REST

Appelez projects.locations.workloadIdentityPools.list().

Obtenir un pool

Pour obtenir des détails sur un pool d'identités de charge de travail spécifique, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail que vous souhaitez afficher, puis cliquez sur l'icône Modifier. La console Google Cloud affiche les détails du pool d'identités de charge de travail.

gcloud

Exécutez la commande gcloud iam workload-identity-pools describe.

REST

Appelez projects.locations.workloadIdentityPools.get().

Mettre à jour un pool

Vous pouvez activer ou désactiver un pool d'identités de charge de travail. Vous pouvez également modifier son nom à afficher ou sa description.

Pour mettre à jour un pool d'identités de charge de travail existant, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail que vous souhaitez modifier, puis cliquez sur l'icône Modifier.

    Pour désactiver ou activer le pool d'identités de charge de travail, cliquez sur le bouton État, puis sur Désactiver ou Activer.

    Pour modifier le nom à afficher, cliquez sur Modifier à côté du nom à afficher. Modifiez le nom, puis cliquez sur Enregistrer.

    Pour modifier la description, utilisez gcloud CLI ou l'API REST.

gcloud

Exécutez la commande gcloud iam workload-identity-pools update.

REST

Appelez projects.locations.workloadIdentityPools.patch().

Supprimer un pool

Lorsque vous supprimez un pool d'identités de charge de travail, vous supprimez également ses fournisseurs de pools d'identités de charge de travail. Par conséquent, les identités du pool perdent l'accès aux ressources Google Cloud.

Vous pouvez annuler la suppression d'un fournisseur pendant un maximum de 30 jours. Passé ce délai, la suppression est définitive. Vous ne pouvez pas réutiliser le nom d'un pool avant de le supprimer définitivement.

Pour supprimer un pool d'identités de charge de travail et ses fournisseurs d'identité, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail que vous souhaitez supprimer, puis cliquez sur l'icône Modifier.

  3. Cliquez sur Supprimer le pool, puis sur Supprimer. Le pool d'identités de charge de travail et ses fournisseurs d'identité sont supprimés.

gcloud

Exécutez la commande gcloud iam workload-identity-pools delete.

REST

Appelez projects.locations.workloadIdentityPools.delete().

Annuler la suppression d'un pool

Vous pouvez récupérer un pool d'identité de charge de travail supprimé pendant un maximum de 30 jours.

Pour annuler la suppression d'un pool, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Cliquez sur le bouton Afficher les pools et les fournisseurs supprimés.

  3. Recherchez le pool d'identités de charge de travail dont vous souhaitez annuler la suppression, puis cliquez sur l'icône Restaurer correspondante.

  4. Cliquez sur Restaurer. Le pool et ses fournisseurs sont restaurés.

gcloud

Exécutez la commande gcloud iam workload-identity-pools undelete.

REST

Appelez projects.locations.workloadIdentityPools.undelete().

Gérer les fournisseurs de pools d'identités de charge de travail

Cette section explique comment gérer les fournisseurs de pools d'identités de charge de travail.

Créer un fournisseur

Pour créer un fournisseur de pool d'identité de charge de travail dans un pool d'identités de charge de travail existant, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail auquel vous souhaitez ajouter un fournisseur, puis cliquez sur l'icône Modifier correspondante.

  3. Cliquez sur Ajouter un fournisseur.

  4. Sélectionnez le type de fournisseur à créer :

    • AWS : fournisseur d'identité Amazon Web Services (AWS).
    • OpenID Connect (OIDC) : fournisseur d'identité compatible OIDC. Comprend un fournisseur Microsoft Azure.
  5. Attribuez un nom au fournisseur.

    La console Google Cloud utilise ce nom pour créer l'ID du fournisseur. Pour modifier l'ID du fournisseur, cliquez sur Modifier. Vous ne pourrez pas modifier l'ID du fournisseur par la suite.

  6. Renseignez les autres champs de votre fournisseur :

    • AWS : saisissez l'identifiant de votre compte AWS.
    • OIDC : saisissez l'URL de l'émetteur. Pour Azure, l'URL de l'émetteur utilise le format https://sts.windows.net/AZURE_TENANT_ID. Pour les autres fournisseurs, consultez la documentation du fournisseur.

    Lorsque vous avez terminé, cliquez sur Continuer.

  7. Pour configurer le mappage d'attributs, cliquez sur Modifier le mappage. Le mappage d'attributs vous permet d'utiliser les informations sur les identités externes pour accorder l'accès à un sous-ensemble de ces identités.

  8. Facultatif : pour fournir une condition d'attribut spécifiant les identités pouvant s'authentifier, cliquez sur Ajouter une condition et saisissez une expression CEL (Common Expression Language) valide. Pour plus d'informations, consultez la section Conditions d'attribut.

  9. Cliquez sur Enregistrer. Le fournisseur du pool d'identités de charge de travail est créé.

gcloud

Exécutez la commande gcloud iam workload-identity-pools providers create-aws pour créer un fournisseur AWS.

Exécutez la commande gcloud iam workload-identity-pools providers create-oidc pour créer un fournisseur OIDC, y compris un fournisseur Microsoft Azure.

REST

Appelez projects.locations.workloadIdentityPools.providers.create().

Répertorier les fournisseurs

Pour répertorier les fournisseurs de pools d'identités de charge de travail d'un projet, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Pour afficher les fournisseurs d'un pool d'identités de charge de travail, cliquez sur l'icône Développer le nœud du pool.

gcloud

Exécutez la commande gcloud iam workload-identity-pools providers list.

REST

Appelez projects.locations.workloadIdentityPools.providers.list().

Obtenir un fournisseur

Pour obtenir des détails sur un fournisseur de pool d'identité de charge de travail spécifique, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail qui contient le fournisseur, puis cliquez sur l'icône Développer le nœud pour le pool.

  3. Recherchez le fournisseur du pool d'identités de charge de travail que vous souhaitez afficher, puis cliquez sur l'icône Modifier. La console Google Cloud affiche des informations détaillées sur le fournisseur.

gcloud

Exécutez la commande gcloud iam workload-identity-pools providers describe.

REST

Appelez projects.locations.workloadIdentityPools.providers.get().

Mettre à jour un fournisseur

Vous pouvez activer ou désactiver un fournisseur de pools d'identités de charge de travail. Vous pouvez également mettre à jour les informations de son compte et son mappage d'attributs, ainsi que son nom et sa description à afficher.

Pour mettre à jour un fournisseur de pool d'identité de charge de travail existant, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail qui contient le fournisseur, puis cliquez sur l'icône Développer le nœud pour le pool.

  3. Recherchez le fournisseur du pool d'identités de charge de travail que vous souhaitez modifier, puis cliquez sur l'icône Modifier.

  4. Modifiez les informations relatives au fournisseur, puis cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud iam workload-identity-pools providers update-aws pour mettre à jour un fournisseur AWS.

Exécutez la commande gcloud iam workload-identity-pools providers update-oidc pour mettre à jour un fournisseur OIDC, y compris un fournisseur Microsoft Azure.

REST

Appelez projects.locations.workloadIdentityPools.providers.patch().

Supprimer un fournisseur

Lorsque vous supprimez un fournisseur de pools d'identités de charge de travail, les identités du fournisseur perdent l'accès aux ressources Google Cloud.

Vous pouvez annuler la suppression d'un fournisseur pendant un maximum de 30 jours. Passé ce délai, la suppression est définitive. Vous ne pouvez pas réutiliser le nom d'un fournisseur avant de le supprimer définitivement.

Pour supprimer un fournisseur de pools d'identités de charge de travail, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Recherchez le pool d'identités de charge de travail contenant le fournisseur, puis cliquez sur l'icône Modifier.

  3. Dans le volet Fournisseurs, recherchez le fournisseur que vous souhaitez supprimer, puis cliquez sur son icône Supprimer.

  4. Cliquez sur Supprimer pour supprimer le fournisseur.

gcloud

Exécutez la commande gcloud iam workload-identity-pools providers delete.

REST

Appelez projects.locations.workloadIdentityPools.providers.delete().

Annuler la suppression d'un fournisseur

Vous pouvez récupérer un fournisseur de pool d'identité de charge de travail supprimé pendant un maximum de 30 jours. Pour annuler la suppression d'un fournisseur, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Pools d'identités de charge de travail.

    Accéder aux pools d'identité de charge de travail

  2. Cliquez sur le bouton Afficher les pools et les fournisseurs supprimés.

  3. Recherchez le pool d'identités de charge de travail qui contient le fournisseur, puis cliquez sur l'icône Développer le nœud pour le pool.

  4. Recherchez le fournisseur dont vous souhaitez annuler la suppression, puis cliquez sur l'icône Restaurer.

  5. Cliquez sur Restaurer. Le fournisseur est restauré.

gcloud

Exécutez la commande gcloud iam workload-identity-pools providers undelete.

REST

Appelez projects.locations.workloadIdentityPools.providers.undelete().

Gérer les contraintes pour la fédération d'identité de charge de travail

Vous pouvez utiliser des contraintes relatives aux règles d'administration pour limiter l'utilisation des ressources de votre organisation Google Cloud.

Cette section décrit les contraintes recommandées lors de l'utilisation de la fédération d'identité de charge de travail.

Restreindre la configuration du fournisseur d'identité

En tant qu'administrateur de l'organisation, vous pouvez choisir les fournisseurs d'identité avec lesquels votre organisation est autorisée à fédérer.

Pour gérer les fournisseurs d'identité autorisés, activez la contrainte de liste constraints/iam.workloadIdentityPoolProviders dans la règle d'administration de votre organisation. Cette contrainte spécifie les URI de l'émetteur des fournisseurs autorisés. Vous pouvez utiliser la console Google Cloud ou Google Cloud CLI pour activer cette contrainte.

Pour n'autoriser que la fédération depuis AWS, créez une seule contrainte avec l'URI https://sts.amazonaws.com. L'exemple suivant montre comment créer cette contrainte à l'aide de gcloud CLI :

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.amazonaws.com --organization=ORGANIZATION_NUMBER

Vous pouvez également spécifier les ID des compte AWS ayant accès à vos ressources Google Cloud. Pour spécifier les ID de compte, utilisez la contrainte de liste constraints/iam.workloadIdentityPoolAwsAccounts :

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolAwsAccounts \
    ACCOUNT_ID --organization=ORGANIZATION_NUMBER

Pour autoriser la fédération depuis un seul fournisseur OIDC, créez une seule contrainte avec l'URI du fournisseur (issuer_uri) autorisé. Par exemple, le code suivant n'autorise la fédération qu'à partir d'un locataire Azure spécifique :

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     https://sts.windows.net/AZURE_TENANT_ID --organization=ORGANIZATION_NUMBER

La fédération depuis un fournisseur d'identité SAML est un cas particulier, car les clés publiques utilisées pour valider l'assertion sont fournies au moment de la configuration au lieu d'être récupérées directement à partir du fournisseur d'identité. Il est donc possible qu'un utilisateur malveillant tente d'importer un document de métadonnées SAML avec l'ID d'entité de votre fournisseur d'identité ou avec une clé publique qui lui permet d'accéder à la clé privée. Dans ce scénario, la restriction de la fédération par l'ID d'entité ne représente qu'une illusion de sécurité. C'est pourquoi nous vous conseillons vivement de ne créer que des pools d'identités de charge de travail autorisant la fédération avec SAML dans un projet Google Cloud géré de manière centralisée par votre organisation. Vous pouvez ensuite autoriser les identités externes de ce pool d'identités de charge de travail à accéder aux ressources de votre organisation.

Pour autoriser la fédération depuis des fournisseurs d'identité SAML, créez une contrainte autorisant le mot clé spécial KEY_UPLOAD.

gcloud resource-manager org-policies allow constraints/iam.workloadIdentityPoolProviders \
     KEY_UPLOAD --organization=ORGANIZATION_NUMBER

Vous pouvez répéter ces commandes pour autoriser la fédération depuis d'autres fournisseurs.

Pour bloquer la fédération depuis tous les fournisseurs, procédez comme suit :

  1. Créez un fichier YAML contenant les éléments suivants :

    constraint: constraints/iam.workloadIdentityPoolProviders
    listPolicy:
      allValues: DENY
    
  2. Transmettez le fichier à la commande gcloud resource-manager org-policies set-policy :

    gcloud resource-manager org-policies set-policy FILE_NAME.yaml \
        --organization=ORGANIZATION_NUMBER
    

Restreindre la création de clés de compte de service

La fédération d'identités de charge de travail vous permet d'accéder aux ressources Google Cloud en dehors de Google Cloud sans utiliser de clé de compte de service. Si vous n'utilisez jamais les clés de compte de service pour vous authentifier, vous pouvez réduire les risques en désactivant la création de clés.

Pour désactiver la création de clés de compte de service, appliquez la contrainte booléenne iam.disableServiceAccountKeyCreation dans la règle d'administration de votre organisation. Vous pouvez également appliquer la contrainte booléenne iam.disableServiceAccountKeyUpload, qui désactive l'importation de clés publiques pour des comptes de service.

Vous pouvez utiliser la console Google Cloud ou gcloud CLI pour activer ces contraintes. Par exemple, les commandes de gcloud CLI suivantes activent les deux contraintes :

gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyCreation \
    --organization=ORGANIZATION_NUMBER
gcloud resource-manager org-policies enable-enforce \
    constraints/iam.disableServiceAccountKeyUpload \
    --organization=ORGANIZATION_NUMBER

Surveiller la fédération d'identité de charge de travail

Vous pouvez surveiller les événements d'authentification de vos pools d'identités de charge de travail et de vos fournisseurs à l'aide des métriques Cloud Monitoring. Pour obtenir la liste des métriques disponibles, consultez la page Métriques IAM.

Étapes suivantes

En savoir plus sur la fédération d'identité de charge de travail.