La gcloud CLI et les clés de compte de service p12

La gcloud CLI permet aux développeurs d'utiliser des clés privées pour s'authentifier auprès de comptes de service, également appelés comptes robots. Cette page explique comment créer et utiliser des clés de comptes de service p12 pour Google Cloud.

Installer pyca/cryptography

La bibliothèque pyca/cryptography (version >= 2.5) permet à la gcloud CLI de décoder les fichiers de clé au format p12 qui identifient un compte de service. Étant donné qu'elle inclut des routines cryptographiques, la couche pyca/cryptographie n'est pas distribuée avec la gcloud CLI.

Si votre système dispose de pip (l'interface de ligne de commande de l'index de packages Python) pour installer pyca/cryptography, exécutez la commande suivante. Pour en savoir plus, consultez la page Instructions d'installation.

python -m pip install cryptography

CLOUDSDK_PYTHON_SITEPACKAGES=1

Une fois la bibliothèque pyca/cryptographie installée, vous devez définir la variable d'environnement CLOUDSDK_PYTHON_SITEPACKAGES sur 1. Ce paramètre de variable d'environnement indique à la gcloud CLI qu'elle doit chercher les bibliothèques à inclure en dehors de son propre répertoire google-cloud-sdk/lib. Il est généralement prudent de définir CLOUDSDK_PYTHON_SITEPACKAGES=1, mais si quelque chose ne fonctionne plus, vous pouvez être amené à retirer ce réglage.

Créer un compte de service

Pour créer un compte de service et télécharger un fichier de clé p12, suivez les étapes décrites dans la section Créer des clés de compte de service.

Ce fichier de clé doit être considéré comme secret et vous devez prendre des précautions pour vous assurer qu'il n'est pas accessible par des parties non fiables. Sur les systèmes de type Unix, vous pouvez veiller à ce qu'un fichier ne soit pas visible par les autres utilisateurs connectés à distance (à l'exception d'un utilisateur racine) à l'aide de la commande suivante.

chmod 0600 YOUR_KEY_FILE.p12

Utiliser votre compte de service avec la gcloud CLI

Vous pouvez activer les identifiants du compte de service à l'aide de gcloud auth activate-service-account.

Pour utiliser votre compte de service avec la gcloud CLI, exécutez gcloud auth activate-service-account et transmettez-lui le chemin d'accès à votre fichier de clé avec l'option --key-file requise, puis attribuez-lui un compte en tant qu'argument positionnel.

Le compte que vous utilisez doit être l'adresse e-mail du compte de service répertorié dans la console Google Cloud, mais il ne sera pas validé. Cela vous aide seulement à vous souvenir du compte que vous utilisez.

gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.gserviceaccount.com
Activated service account credentials for my_service_account@developer.gserviceaccount.com.

AVERTISSEMENT : La commande gcloud auth activate-service-account effectue une copie de votre clé privée et la stocke dans $HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12 et $HOME/.config/gcloud/credentials.db. La copie est créée avec les autorisations 0600 (lecture/écriture pour votre propre utilisateur uniquement), et tout ce qui est stocké dans $HOME/.config/gcloud devrait déjà être considéré comme secret. Pour supprimer de manière fiable et sécurisée toutes les données d'authentification stockées par la gcloud CLI, il suffit de supprimer $HOME/.config/gcloud. La gestion sécurisée du fichier de clé téléchargé à partir de la console Google Cloud est du ressort de l'utilisateur. En cas de doute, révoquez la clé dans la console Google Cloud.

Maintenant que le compte de service est activé, vous pouvez le voir dans la liste des identifiants.

gcloud auth list
        Credentialed Accounts
ACTIVE    ACCOUNT
*         my_service_account@developer.gserviceaccount.com

To set the active account, run:
    $ gcloud config set account my_service_account@developer.gserviceaccount.com

Haut de page