En esta página, se explica cómo enumerar y obtener 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 .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.
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.
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 para enumerar y obtener claves de cuenta de servicio, pídele a tu administrador que te otorgue el rol de visualizador de cuentas de servicio (
roles/iam.serviceAccountViewer
) de IAM en el proyecto o la cuenta de servicio cuyas claves deseas administrar. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.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 roles básicos en un entorno de producción, pero puedes otorgarlos en un entorno de desarrollo o de prueba.
Enumera las claves de cuentas de servicio
Puedes generar una lista de las claves de una cuenta de servicio con la consola de Google Cloud, la CLI de gcloud, el método
serviceAccount.keys.list()
o una de las bibliotecas cliente.El método
serviceAccount.keys.list()
se usa comúnmente a fin de auditar claves y cuentas de servicio, o de compilar herramientas personalizadas para administrar cuentas de servicio.Si quieres descubrir a qué proyecto pertenece tu clave, puedes descargar la clave como un archivo JSON y mirar ese archivo.
Puede que haya claves que no creaste; Estas son claves creadas por Google y usadas por la API de Service Account Credentials. Para obtener más información, consulta pares de claves administradas por Google.
Console
- En la consola de Google Cloud, ve a la página Cuentas de servicio.
Los pasos restantes aparecen 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 cuyas claves deseas enumerar.
- Haga clic en Claves. En la consola de Google Cloud, se muestra una lista de claves de la cuenta de servicio.
gcloud
Ejecuta el comando
gcloud iam service-accounts keys list
para generar una lista de las claves de la cuenta de servicio.Reemplaza los siguientes valores:
SA_NAME
: El nombre de la cuenta de servicio para enumerar las clavesPROJECT_ID
: es el ID del proyecto de Google Cloud.
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Resultado:
KEY_ID CREATED_AT EXPIRES_AT INHABILITADO 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 True INICIADO POR EL USUARIO 937c98f870f5c8db970af527aa3c12fd88b1c20a 2021-01-01T20:55:40Z 9999-12-31T23:59:59Z True EXPUESTA ['key':'SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED' 'value':'{exposure URL}'] 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.list
, se enumeran todas las claves de cuenta de servicio de 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 cuyas claves deseas enumerar.KEY_TYPES
: Opcional Es una lista separada por comas de los tipos de claves que deseas incluir en la respuesta. El tipo de clave indica si una clave es administrada por el usuario (USER_MANAGED
) o por el sistema (SYSTEM_MANAGED
). Si se deja en blanco, se mostrarán todas las claves.
Método HTTP y URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "keys": [ { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.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.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.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" } ] }
Obtener una clave de cuenta de servicio
Puedes usar laCLI de gcloud o la API de REST a fin de obtener los datos de clave pública para una clave de cuenta de servicio. Además, puedes usar la consola de Google Cloud, la CLI de gcloud o la API de REST para obtener metadatos de la clave, como el algoritmo que usa y si la administras tú o Google.
Console
A fin de obtener los datos de clave pública para una clave de cuenta de servicio, haz lo siguiente:
Usa la CLI de gcloud o la API de REST. Estos datos no están disponibles en la consola de Google Cloud.
Para obtener metadatos de una clave de cuenta de servicio, sigue estos pasos:
- En la consola de Google Cloud, ve a la página Cuentas de servicio.
Los pasos restantes aparecen 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 cuyas claves deseas enumerar.
- Haga clic en Claves. La consola de Google Cloud muestra una lista de claves de la cuenta de servicio, incluidos los metadatos de cada clave.
gcloud
A fin de obtener los datos de clave pública para una clave de cuenta de servicio, haz lo siguiente:
Ejecuta el comando
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.iam.gserviceaccount.com \ --output-file=FILENAME
Ingresa los siguientes valores:
KEY_ID
: El ID de la clave pública que deseas obtener. Para encontrar el ID de la clave, enumera todas las claves de la cuenta de servicio, identifica la clave que deseas obtener y, luego, copia su ID.SA_NAME
: El nombre de la cuenta de servicio cuya clave pública deseas obtener.PROJECT_ID
: El ID del proyecto de Google Cloud.FILENAME
: El archivo en el que se guardan los datos de la clave pública.
De forma predeterminada, los datos de la clave pública se guardan en formato X.509 PEM. Para obtener la clave pública sin procesar, ejecuta el comando con la marca adicional
--type=raw
.Por ejemplo, mediante el siguiente comando, se obtienen los datos de una clave pública para la clave:
c97cc34494c07c9b483701f28368f20145b9ef97
, que pertenece a la cuenta de serviciomy-service-account@my-project.iam.gserviceaccount.com
, luego guarda los datos de la clave pública en el archivopublic_key.pem
:gcloud beta iam service-accounts keys get-public-key \ c97cc34494c07c9b483701f28368f20145b9ef97 \ --iam-account=my-service-account@my-project.iam.gserviceaccount.com \ --output-file=public_key.pem
Para obtener metadatos de una clave de cuenta de servicio, sigue estos pasos:
Ejecuta el comando
gcloud iam service-accounts keys list
:gcloud iam service-accounts keys list --iam-account=SA_NAME \ --filter="name~KEY_ID" --format=json
Ingresa los siguientes valores:
SA_NAME
: Es el nombre de la cuenta de servicio para la que deseas tener metadatos de clave.KEY_ID
: El ID de la clave para la que deseas metadatos.
Por ejemplo, con el siguiente comando, se obtienen metadatos para la clave
c97cc34494c07c9b483701f28368f20145b9ef97
, que pertenece a la cuenta de serviciomy-service-account@my-project.iam.gserviceaccount.com
:gcloud iam service-accounts keys list \ --iam-account=my-service-account@my-project.iam.gserviceaccount.com \ --filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
REST
El método
projects.serviceAccounts.keys.get
muestra información sobre una clave pública 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
: El nombre de la cuenta de servicio cuya clave pública deseas obtener.-
KEY_ID
: El ID de la clave pública que deseas obtener. Para encontrar el ID de la clave, enumera todas las claves de la cuenta de servicio, identifica la clave que deseas obtener y, luego, copia su ID al final del camponame
. El ID de la clave es todo lo que se encuentra después dekeys/
. KEY_TYPE
: El formato en el que se muestra la clave pública. UsaTYPE_X509_PEM_FILE
para el formato PEM X.509 oTYPE_RAW_PUBLIC_KEY
para la clave pública sin procesar. Si omites este parámetro de consulta, el método muestra metadatos para la clave, pero no muestra los datos de la clave pública.
Método HTTP y URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID?publicKeyType=KEY_TYPE
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.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" }
¿Qué sigue?
- Aprende a crear y eliminar claves de cuentas de servicio.
- Aprende a inhabilitar y habilitar claves de cuentas de servicio.
- Obtén información sobre las alternativas a las claves de cuenta de servicio para la autenticación.
- Obtén información sobre cómo usar claves de cuentas de servicio para autenticar como una cuenta de servicio.
- Comprende las prácticas recomendadas para administrar claves de cuentas de servicio.
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.
Comenzar gratisSalvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-11-21 (UTC)