Cette page explique comment lister et obtenir les clés de compte de service à l'aide de la consoleCloud de Confiance , de Google Cloud CLI, de l'API Identity and Access Management ou de l'une des bibliothèques clientes Google Cloud.
Avant de commencer
Activez l'API IAM.
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'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.Configurez l'authentification.
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Cloud de Confiance pour accéder aux services Cloud de Confiance by S3NS et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud initC#
Pour utiliser les exemples .NET de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Cloud de Confiance .
C++
Pour utiliser les exemples C++ de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Cloud de Confiance .
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Cloud de Confiance .
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Cloud de Confiance .
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local dans la documentation sur l'authentification Cloud de Confiance .
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Cloud de Confiance .
-
Comprendre les identifiants de compte de service
Rôles requis
Pour obtenir les autorisations dont vous avez besoin pour lister et obtenir les clés de compte de service, demandez à votre administrateur de vous accorder le rôle IAM Afficher les comptes de service (roles/iam.serviceAccountViewer) sur le projet ou le compte de service dont vous souhaitez gérer les clés.
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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
Les rôles de base IAM contiennent également les autorisations nécessaires pour gérer les clés de compte de service. 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.
Lister les clés de comptes de service
Pour répertorier les clés d'un compte de service particulier, vous pouvez utiliser la consoleCloud de Confiance , gcloud CLI, la méthode serviceAccount.keys.list() ou l'une des bibliothèques clientes.
La méthode serviceAccount.keys.list() est couramment utilisée pour auditer les comptes et les clés de service. Elle permet également de créer un outil de gestion personnalisé pour les comptes de service.
Pour savoir à quel projet votre clé est associée, vous pouvez la télécharger sous forme de fichier JSON, puis consulter ce fichier.
Il est possible que des clés soient répertoriées alors que vous ne les avez pas créées. Ces clés sont créées par Google et utilisées par l'API Service Account Credentials. Pour en savoir plus, consultez PairesGoogle Cloud-powered key .
Console
- Dans la console Cloud de Confiance , accédez à la page Comptes de service.
- Sélectionnez un projet.
- Sur la page Comptes de service, cliquez sur l'adresse e-mail du compte de service dont vous souhaitez répertorier les clés.
- Cliquez sur Keys (Clés). La console Cloud de Confiance affiche une liste de clés pour le compte de service.
gcloud
Exécutez la commande gcloud iam service-accounts keys list pour répertorier les clés de compte de service.
Remplacez les valeurs suivantes :
SA_NAME: nom du compte de service pour lequel vous souhaitez répertorier les clés.PROJECT_ID: ID de votre projet Cloud de Confiance .
gcloud iam service-accounts keys list \
--iam-account=SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com
Résultat :
| KEY_ID | CREATED_AT | EXPIRES_AT | DÉSACTIVÉ | DISABLE_REASON | EXTENDED_STATUS |
| 8e6e3936d7024646f8ceb39792006c07f4a9760c | 2021-01-01T21:01:42Z | 9999-12-31T23:59:59Z | |||
| 937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Vrai | USER INITIATED | |
| 937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Vrai | EXPOSED | ['key':'SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED' 'value':'{exposure URL}'] |
C++
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 C++.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
C#
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 C#.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour plus d'informations, consultez la section Avant de commencer.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
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 plus d'informations, consultez la section Avant de commencer.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
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 plus d'informations, consultez la section Avant de commencer.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
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 plus d'informations, consultez la section Avant de commencer.
Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.
REST
La méthode projects.serviceAccounts.keys.list répertorie toutes les clés d'un compte de service donné.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: ID de votre projet Cloud de Confiance . Les ID de projet sont des chaînes alphanumériques, telles quemy-project.SA_NAME: nom du compte de service dont vous souhaitez répertorier les clés.KEY_TYPES: facultatif. Liste de types de clés séparés par une virgule que vous souhaitez inclure dans la réponse. Le type de clé indique si une clé est gérée par l'utilisateur (USER_MANAGED) ou gérée par le système (SYSTEM_MANAGED). Si aucune valeur n'est spécifiée, toutes les clés sont renvoyées.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"keys": [
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
"validAfterTime": "2020-03-04T17:39:47Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED"
},
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
"validAfterTime": "2020-03-31T23:50:09Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED"
},
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
"validAfterTime": "2020-05-17T18:58:13Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED",
"disabled": true
"disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED"
"extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED"
"extended_status_message": "exposed at: https://www.github.com/SomePublicRepo"
}
]
}
Obtenir une clé de compte de service
Vous pouvez obtenir les données de clé publique d'une clé de compte de service à l'aide de la CLI gcloud ou de l'API REST. En outre, vous pouvez utiliser la console Cloud de Confiance , gcloud CLI ou l'API REST pour obtenir les métadonnées de la clé, telles que l'algorithme qu'elle utilise et le fait qu'elle soit gérée par vous ou par Google.
Certaines applications ou certains outils peuvent avoir besoin d'accéder aux données ou aux métadonnées de clé publique d'une clé de compte de service pour des opérations telles que l'audit et l'interopérabilité avec des systèmes externes. Par exemple, Terraform peut avoir besoin de vérifier que l'état d'une clé de compte de service dans Cloud de Confiance by S3NScorrespond à ce qui est défini dans le fichier de configuration Terraform.
Console
Pour obtenir les données de clé publique d'une clé de compte de service, procédez comme suit :
Utilisez gcloud CLI ou l'API REST. Ces données ne sont pas disponibles dans la consoleCloud de Confiance .
Pour obtenir les métadonnées d'une clé de compte de service, procédez comme suit :
- Dans la console Cloud de Confiance , accédez à la page Comptes de service.
- Sélectionnez un projet.
- Sur la page Comptes de service, cliquez sur l'adresse e-mail du compte de service dont vous souhaitez répertorier les clés.
- Cliquez sur Keys (Clés). La console Cloud de Confiance affiche une liste de clés pour le compte de service, ainsi que les métadonnées pour chaque clé.
gcloud
Pour obtenir les données de clé publique d'une clé de compte de service, procédez comme suit :
Exécutez la commande gcloud beta iam service-accounts keys get-public-key :
gcloud beta iam service-accounts keys get-public-key KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com \ --output-file=FILENAME
Indiquez les valeurs suivantes :
KEY_ID: ID de la clé publique que vous souhaitez obtenir. Pour trouver l'ID de la clé, répertoriez toutes les clés du compte de service, identifiez la clé que vous souhaitez obtenir, puis copiez son ID.SA_NAME: nom du compte de service dont vous souhaitez obtenir la clé publique.PROJECT_ID: ID de votre projet Cloud de Confiance .FILENAME: fichier dans lequel enregistrer les données de clé publique.
Par défaut, les données de clé publique sont enregistrées au format PEM X.509. Pour obtenir la clé publique brute, exécutez la commande avec l'option supplémentaire --type=raw.
Par exemple, la commande suivante obtient les données de clé publique pour la clé c97cc34494c07c9b483701f28368f20145b9ef97, qui appartient au compte de service my-service-account@my-project.s3ns.iam.gserviceaccount.com, puis enregistre les données de clé publique dans le fichier public_key.pem :
gcloud beta iam service-accounts keys get-public-key \
c97cc34494c07c9b483701f28368f20145b9ef97 \
--iam-account=my-service-account@my-project.s3ns.iam.gserviceaccount.com \
--output-file=public_key.pem
Pour obtenir les métadonnées d'une clé de compte de service, procédez comme suit :
Exécutez la commande gcloud iam service-accounts keys list :
gcloud iam service-accounts keys list --iam-account=SA_NAME \ --filter="name~KEY_ID" --format=json
Indiquez les valeurs suivantes :
SA_NAME: nom du compte de service pour lequel vous souhaitez obtenir les métadonnées de clés.KEY_ID: ID de la clé pour laquelle vous souhaitez obtenir les métadonnées.
Par exemple, la commande suivante récupère les métadonnées de la clé c97cc34494c07c9b483701f28368f20145b9ef97, qui appartient au compte de service my-service-account@my-project.s3ns.iam.gserviceaccount.com :
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.s3ns.iam.gserviceaccount.com \
--filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
REST
La méthode projects.serviceAccounts.keys.get renvoie des informations sur une clé publique d'un compte de service.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: ID de votre projet Cloud de Confiance . Les ID de projet sont des chaînes alphanumériques, telles quemy-project.SA_NAME: nom du compte de service dont vous souhaitez obtenir la clé publique.-
KEY_ID: ID de la clé publique que vous souhaitez obtenir. Pour trouver l'ID de la clé, répertoriez toutes les clés du compte de service, identifiez la clé que vous souhaitez obtenir, puis copiez son ID à la fin du champname. L'ID de la clé correspond à tout ce qui suitkeys/. KEY_TYPE: format dans lequel la clé publique doit être renvoyée. UtilisezTYPE_X509_PEM_FILEpour le format PEM X.509 ouTYPE_RAW_PUBLIC_KEYpour la clé publique brute. Si vous omettez ce paramètre de requête, la méthode renvoie les métadonnées de la clé, mais elle ne renvoie pas les données de clé publique.
Méthode HTTP et URL :
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com/keys/KEY_ID?publicKeyType=KEY_TYPE
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com/keys/f4a83933ac07cf52bb74e0e66d99662a09f51a36",
"validAfterTime": "2021-12-10T17:32:06Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"publicKeyData": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJT2lCdm9hR09nV0F3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXhNVk1UQXhNVGsxTlRFMk5UWXlPRGszTmpFek1qQXpNQ0FYRFRJeE1USXhNREUzTXpJd05sb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFERXhVeE1ERXhPVFUxTVRZMU5qSTRPVGMyTVRNeU1ETXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQzdzeDBFcXVUMGNwSXhlczl1SW0yRy9DS3EKdnc4YTl2a2JkaWZZbDZHSDh1ZUxEWDhGNHVUeEVQMkNzU3JLTHZtOFo2My9IVUxnWjBtQXByb0JlM08vaVR1ZwpmYVZ0NVNtakhvWm9YQ1lpbjR0MS93SkpvdDhrRFdPeDZhOEdieUdqZ215ak8yYk1XdEtaQ2dqeGZ3cUV0MmN3CklnajA5VzJKYTlHTWRsdVA0VGVubTRKSkJoaFpFbTJ1bVAwYVZZdkRnUWF5d0RCYnJuNG8yY0EzSWplRDZGM1gKK0VHRDNKU0s4VW02Sk5sM21adGp6VWNZSHBrYkF0U1A2ZDI5d1RmZkdIRFY0THJRWlM3bG15d3hsb3p5WnpaawpCOFpHckMzSkF1MVNVRTdQOTN6bWtFb1B6MlRUNWhaYXZMWFQ5TGM2SExiRklRVHFnVEJVWHlNMkpIcGZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQkhPNXlpUDY3NkE4UEN2RjdRSzdFMApYZVljbzdsSStFZkowaGJrWVlmdUtnSENPcXcvd3FBbCtOSithanljT2FPWDFPMlRZN3ZOc05pR2t3eWc2QXdqCklhL1NHVjd3NkxpS2JldFRuSVp4UlhRY25lcnVvZEwycUR5eWphMDJJSXJVTmVKY1o0MVJBNXRTL3NkcTFGNm4KM0NjSXFoZTI1OTA4TUNna3cwaFB1K0VLbFF6R1B5T3pVRHBLdXg0cnRBaHJTYTBUVW1wbEMxdTJnUk1YRkF6aApWUjU0V2dNa2tabURyalBNeWdBS3JmNkd0bHo2VHRTYTVLb1BWdGpsWExUQkxaSnlhdk4zc1F2dFlBK1NFQWpWCnA1N1ZabFBYZmR0dWN4ekJaOC9zS25SOHNyYU5hVWFjamg1NEE1Nm1URTE3b0IyUWkrTHBJUTYvNnVqVnNXaUYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED"
}
Étapes suivantes
- Découvrez comment créer et supprimer des clés de compte de service.
- Découvrez comment désactiver et activer les clés de compte de service.
- Découvrez des alternatives aux clés de compte de service pour l'authentification.
- Apprenez à utiliser les clés de compte de service pour vous authentifier en tant que compte de service.
- Identifiez les bonnes pratiques pour gérer les clés de compte de service.