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