En esta página, se explica cómo enumerar y obtener claves de cuentas de servicio con la consola deCloud de Confiance , Google Cloud CLI, la API de Identity and Access Management o una de las bibliotecas cliente de Google Cloud.
Antes de comenzar
Habilita la API de IAM.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.Configura la autenticación.
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
Console
Cuando usas la consola de Cloud de Confiance para acceder a los servicios y las APIs de Cloud de Confiance by S3NS , no necesitas configurar la autenticación.
gcloud
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:
gcloud initC#
Para usar las muestras de .NET de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Cloud de Confiance .
C++
Para usar las muestras de C++ de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Cloud de Confiance .
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.
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Cloud de Confiance .
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Cloud de Confiance .
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa la gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Configura ADC para un entorno de desarrollo local en la documentación de autenticación de Cloud de Confiance .
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Cloud de Confiance .
-
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 a través de roles personalizados o cualquier otro rol predefinido.
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 deCloud de Confiance , gcloud CLI, 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 deGoogle Cloud-powered key .
Console
- En la consola de Cloud de Confiance , ve a la página Cuentas de servicio.
- 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 Cloud de Confiance consola 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 Cloud de Confiance .
gcloud iam service-accounts keys list \
--iam-account=SA_NAME@PROJECT_ID.s3ns.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 | Verdadero | INICIADO POR EL USUARIO | |
| 937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Verdadero | 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.
Antes de ejecutar muestras de código, configura la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de ejecutar muestras de código, configura la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de ejecutar muestras de código, configura la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de ejecutar muestras de código, configura la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de ejecutar muestras de código, configura la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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: Es el ID de tu proyecto de Cloud de Confiance . Los IDs de proyecto son cadenas 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.s3ns.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.s3ns.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.s3ns.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.s3ns.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 la gcloud CLI o la API de REST para obtener los datos de clave pública de una clave de cuenta de servicio. Además, puedes usar la Cloud de Confiance consola, la gcloud CLI o la API de REST para obtener metadatos de la clave, como el algoritmo que usa y si la administras tú o Google.
Es posible que algunas aplicaciones o herramientas necesiten acceder a los datos o metadatos de la clave pública de una clave de cuenta de servicio para tareas como la auditoría y la interoperabilidad con sistemas externos. Por ejemplo, Terraform podría necesitar verificar que el estado de una clave de cuenta de servicio en Cloud de Confiance by S3NScoincida con lo que se define en el archivo de configuración de Terraform.
Console
A fin de obtener los datos de clave pública para una clave de cuenta de servicio, haz lo siguiente:
Usa gcloud CLI o la API de REST. Estos datos no están disponibles en la consola deCloud de Confiance .
Para obtener metadatos de una clave de cuenta de servicio, sigue estos pasos:
- En la consola de Cloud de Confiance , ve a la página Cuentas de servicio.
- 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 Cloud de Confiance se 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.s3ns.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: Es el ID de tu proyecto de Cloud de Confiance .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 servicio my-service-account@my-project.s3ns.iam.gserviceaccount.com, luego guarda los datos de la clave pública en el archivo public_key.pem:
gcloud beta iam service-accounts keys get-public-key \
c97cc34494c07c9b483701f28368f20145b9ef97 \
--iam-account=my-service-account@my-project.s3ns.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 servicio my-service-account@my-project.s3ns.iam.gserviceaccount.com:
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.s3ns.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: Es el ID de tu proyecto de Cloud de Confiance . Los IDs de proyecto son cadenas 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_FILEpara el formato PEM X.509 oTYPE_RAW_PUBLIC_KEYpara 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.s3ns.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.s3ns.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.