Gcloud CLI les permite a los desarrolladores usar las claves privadas para autenticar con cuentas de servicio, también conocidas como cuentas robot. En esta página, se describe cómo crear y usar claves p12 de cuentas de servicio para la Google Cloud.
Instala pyca/cryptography
La biblioteca pyca/cryptography
(versión >= 2.5) permite que gcloud CLI decodifique los archivos de claves con formato p12
que identifican una cuenta de servicio. Debido a que incluye rutinas criptográficas, pyca/cryptography no se distribuye con la gcloud CLI.
Si tu sistema tiene instalado pip, la interfaz de línea de comandos para el
el índice de paquetes de Python, ejecuta el siguiente comando para instalar pyca/cryptography.
Consulta las instrucciones de instalación
para obtener más información.
python -m pip install cryptography
CLOUDSDK_PYTHON_SITEPACKAGES=1
Una vez que pyca/cryptography esté instalado, deberás configurar la CLOUDSDK_PYTHON_SITEPACKAGES
variable de entorno como 1. Esta configuración de la variable de entorno le indica a gcloud CLI
que debe buscar las bibliotecas que se han de incluir fuera de su directorio google-cloud-sdk/lib propio. Por lo general, es seguro configurar CLOUDSDK_PYTHON_SITEPACKAGES=1, pero si
algo deja de funcionar, es posible que debas deshacer esta acción.
Crea una cuenta de servicio
Para crear una cuenta de servicio nueva y descargar un archivo de claves p12, sigue los pasos que se indican en Crea claves de cuentas de servicio.
Este archivo de claves debe ser considerado como secreto, y debes tomar precauciones para asegurarte de que terceros no confiables no accedan a él. En sistemas similares a unix, puedes asegurarte de que un archivo no sea visible para otros usuarios conectados de manera remota (aparte de un usuario raíz) mediante el uso del siguiente comando.
chmod 0600 YOUR_KEY_FILE.p12
Usa tu cuenta de servicio con la gcloud CLI
Las credenciales de la cuenta de servicio se pueden habilitar con
gcloud auth activate-service-account.
Para usar tu cuenta de servicio con gcloud CLI, ejecuta
gcloud auth activate-service-account y pásale la ruta de
tu archivo de claves con la marca --key-file necesaria, y proporciónale una
cuenta como un argumento posicional.
La cuenta que usas debe ser el correo electrónico de la cuenta de servicio que aparece en la Google Cloud consola, pero no se verificará; solo te ayuda a recordar qué cuenta estás usando.
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.
ADVERTENCIA: gcloud auth activate-service-account hará una copia de tu clave privada y la almacenará en $HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12 y $HOME/.config/gcloud/credentials.db.
Se creará con permisos 0600 (lectura/escritura solo para tu
usuario propio), y todo lo guardado en $HOME/.config/gcloud
ya debe considerarse un secreto. Para borrar de forma confiable y segura los datos de autenticación almacenados por gcloud CLI, solo tienes que borrar
$HOME/.config/gcloud. La administración segura del archivo de claves
descargado de la Google Cloud consola queda a cargo del usuario. En caso de
duda, revoca la clave en la Google Cloud consola.
Ahora que se activó la cuenta de servicio, la puedes ver en la lista de credenciales.
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