En esta página, se explica cómo crear y eliminar claves de cuentas de servicio mediante la consola de Google Cloud, Google Cloud CLI, la API de Identity and Access Management o una de las bibliotecas cliente de Google Cloud.
Antes de comenzar
Enable the IAM API.
Configura la autenticación.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C++
Para usar las muestras de C++ de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
C#
Para usar las muestras de .NET de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Comprende las credenciales de las cuentas de servicio.
Roles obligatorios
Para obtener los permisos que necesitas a fin de crear y eliminar las claves de cuentas de servicio, pídele a tu administrador que te otorgue el rol de IAM de administrador de claves de cuentas de servicio (roles/iam.serviceAccountKeyAdmin
) en el proyecto o en la cuenta de servicio cuyas claves deseas administrar.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Para obtener más información, consulta Roles de cuentas de servicio.
Las funciones de IAM básicas también contienen permisos para administrar claves de cuentas de servicio. No deberías otorgar funciones básicas en un entorno de producción, pero puedes otorgarlas en un entorno de desarrollo o de prueba.
Crea una clave de cuenta de servicio
Para usar una cuenta de servicio fuera de Google Cloud, como en otras plataformas o localmente, primero debes establecer la identidad de la cuenta de servicio. Los pares de claves públicas/privadas proporcionan una forma segura de lograr este objetivo. Cuando creas una clave de cuenta de servicio, la parte pública se almacena en Google Cloud, mientras que la parte privada solo está disponible para ti. Para obtener más información sobre los pares de claves públicas/privadas, consulta Claves de cuenta de servicio.
Puedes crear una clave de cuenta de servicio con la consola de Google Cloud, la CLI de gcloud, el método serviceAccounts.keys.create()
o una de las bibliotecas cliente.
Una cuenta de servicio puede tener hasta 10 claves.
De forma predeterminada, las claves de las cuentas de servicio nunca se vencen. Puedes usar una restricción de políticas de la organización para especificar el período durante el cual una clave de cuenta de servicio es válida. Si deseas obtener más detalles, consulta Tiempos de vencimiento para las claves administradas por el usuario.
En los siguientes ejemplos, SA_NAME
es el nombre de tu cuenta de servicio y PROJECT_ID
es el ID de tu proyecto de Google Cloud. Puedes recuperar la string SA_NAME@PROJECT_ID.iam.gserviceaccount.com
desde la página Cuentas de servicio en la consola de Google Cloud.
Console
- En la consola de Google Cloud, ve a la página Cuentas de servicio.
Los pasos restantes aparecerán automáticamente en la consola de Google Cloud.
- Selecciona un proyecto.
- Haz clic en la dirección de correo electrónico de la cuenta de servicio para la que quieres crear una clave.
- Haz clic en la pestaña
Claves . - Haz clic en el menú desplegable Agregar clave y, luego, selecciona Crear clave nueva.
- Selecciona JSON como el tipo de clave y, luego, haz clic en Crear.
Si haces clic en Crear, se descargará un archivo de claves de cuenta de servicio. Después de descargar el archivo de claves, no puedes volver a descargarlo.
La clave descargada tiene el siguiente formato, en el que PRIVATE_KEY
es la parte privada del par de claves
pública/privada:
{
"type": "service_account",
"project_id": "PROJECT_ID",
"private_key_id": "KEY_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "SERVICE_ACCOUNT_EMAIL",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}
Asegúrate de almacenar el archivo de claves de forma segura, ya que se puede usar para autenticarse como tu cuenta de servicio. Puedes mover y cambiar el nombre de este archivo como desees.
Puedes usar los archivos de claves de cuenta de servicio para autenticar una aplicación como una cuenta de servicio.
gcloud
Ejecuta el comando gcloud iam service-accounts keys create
para crear claves de cuenta de servicio.
Reemplaza los siguientes valores:
KEY_FILE
: La ruta a un archivo de salida nuevo para la clave privada, por ejemplo,~/sa-private-key.json
.SA_NAME
: El nombre de la cuenta de servicio para la que se creará una clave.PROJECT_ID
: El ID del proyecto de Google Cloud.
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Salida:
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
El archivo de claves de la cuenta de servicio se descargará ahora en tu máquina. Después de descargar el archivo de claves, no puedes volver a descargarlo.
La clave descargada tiene el siguiente formato, en el que PRIVATE_KEY
es la parte privada del par de claves
pública/privada:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Asegúrate de almacenar el archivo de claves de forma segura, ya que se puede usar para autenticarse como tu cuenta de servicio. Puedes mover y cambiar el nombre de este archivo como desees.
Puedes usar los archivos de clave de cuenta de servicio para autenticar una aplicación como una cuenta de servicio.
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
Con el método projects.serviceAccounts.keys.create
, se crea una clave para una cuenta de servicio.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, comomy-project
.SA_NAME
: Es el nombre de la cuenta de servicio para la que deseas crear una clave.KEY_ALGORITHM
: Opcional Es el algoritmo de clave que se usará para la clave. El valor predeterminado, que está sujeto a cambios, es una clave RSA de 2,048 bits. Para obtener una lista de todos los valores posibles, consulta la referencia deServiceAccountKeyAlgorithm
.
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
Cuerpo JSON de la solicitud:
{ "keyAlgorithm": "KEY_ALGORITHM" }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene una clave para la cuenta de servicio. La clave que se muestra tiene el siguiente formato,
en el que ENCODED_PRIVATE_KEY
es la parte privada del par de clave pública/privada,
codificada en base64.
{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
Si deseas crear un archivo de claves que puedas usar para autenticarte como la cuenta de servicio, decodifica los datos de claves privadas y guárdalos en un archivo:
Linux
Ejecuta el siguiente comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Reemplaza PATH
por la ruta de acceso del archivo en el que deseas
guardar la clave. Usa la extensión de archivo .json
.
macOS
Ejecuta el siguiente comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Reemplaza PATH
por la ruta de acceso del archivo en el que deseas
guardar la clave. Usa la extensión de archivo .json
.
PowerShell
Guarda los datos de clave privada codificada (
ENCODED_PRIVATE_KEY
) en un archivo.Usa
certutil
para decodificar el archivo:certutil -decode ENCODED_FILE DECODED_FILE
Reemplaza los siguientes valores:
ENCODED_FILE
: La ruta de acceso al archivo que contiene los datos de clave privada codificados.DECODED_FILE
: Es la ruta de acceso del archivo en el que deseas guardar la clave. Usa la extensión de archivo.json
.
Asegúrate de almacenar los datos de la clave de manera segura, ya que se pueden usar para autenticarse como tu cuenta de servicio.
Puedes usar los archivos de clave de cuenta de servicio para autenticar una aplicación como una cuenta de servicio.
Borra una clave de cuenta de servicio
Borrar una clave de cuenta de servicio te impide de manera permanente usar la clave para autenticarte con las API de Google.
No puedes recuperar una clave borrada. Antes de borrar una clave, te recomendamos que inhabilites la clave y, luego, esperes a estar seguro de que la clave ya no es necesaria. Luego, puedes borrar la clave.
Como práctica recomendada, rota las claves de tus cuentas de servicio con regularidad. Para obtener más información sobre la rotación de claves de cuentas de servicio, consulta Rotación de claves de cuentas de servicio.
Console
- En la consola de Google Cloud, ve a la página Cuentas de servicio.
Los pasos restantes aparecerán automáticamente en la consola de Google Cloud.
- Selecciona un proyecto.
- En la página Cuentas de servicio, haz clic en la dirección de correo electrónico de la cuenta de servicio cuya clave deseas borrar.
- Haz clic en la pestaña Claves.
- En la lista de claves, haz clic en Borrar en cada clave que desees borrar.
gcloud
Ejecuta el comando gcloud iam service-accounts keys delete
para borrar claves de cuenta de servicio.
Reemplaza los siguientes valores:
KEY_ID
: El ID de la clave que se borrará. Para encontrar el ID de la clave, enumera todas las claves de la cuenta de servicio, identifica la clave que deseas borrar y, luego, copia su ID.SA_NAME
: El nombre de la cuenta de servicio a la que pertenece la clave.PROJECT_ID
: El ID del proyecto de Google Cloud.
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Resultado:
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
Mediante el método projects.serviceAccounts.keys.delete
, se borra una clave de cuenta de servicio.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, comomy-project
.SA_NAME
: Es el nombre de la cuenta de servicio cuya clave deseas borrar.KEY_ID
: Es el ID de la clave que deseas borrar. Para encontrar el ID de la clave, enumera todas las claves de la cuenta de servicio, identifica la clave que deseas borrar y, luego, copia su ID al final del camponame
. El ID único de la clave es todo lo que se encuentra después dekeys/
.
Método HTTP y URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ }
¿Qué sigue?
- Aprende a enumerar y obtener claves de cuenta de servicio.
- Obtén más información sobre cómo subir tus propias claves de cuenta de servicio públicas.
- Comprende las prácticas recomendadas para administrar claves de cuentas de servicio.
- Obtén información sobre las alternativas a las claves de cuenta de servicio para la autenticación.
Pruébalo tú mismo
Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Empezar gratis