En esta página se describe cómo conceder, cambiar y revocar el acceso de una principal a una sola cuenta de servicio. Para gestionar el acceso de una principal a todas las cuentas de servicio de un proyecto, una carpeta o una organización, gestiona su acceso a nivel de proyecto, carpeta u organización.
En Gestión de Identidades y Accesos (IAM), el acceso se gestiona mediante políticas de permiso, también conocidas como políticas de IAM. Una política de permiso se adjunta a un recursoGoogle Cloud . Cada política de permiso contiene una colección de vinculaciones de roles que asocian una o varias entidades principales, como usuarios o cuentas de servicio, a un rol de gestión de identidades y accesos. Estas vinculaciones de roles conceden los roles especificados a las entidades principales, tanto en el recurso al que se adjunta la política de permiso como en todos los descendientes de ese recurso. Para obtener más información sobre las políticas de permiso, consulta Información sobre las políticas de permiso.
Las cuentas de servicio son recursos a los que se puede conceder acceso a otras entidades y entidades a las que se puede conceder acceso a otros recursos. En esta página se tratan las cuentas de servicio como recursos y se describe cómo conceder acceso a otros principales. Para saber cómo conceder acceso a una cuenta de servicio a otros recursos, consulta las siguientes guías:
- Para dar acceso a una cuenta de servicio a un proyecto, una carpeta o una organización, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
- Para conceder acceso a otros recursos a una cuenta de servicio, consulta Gestionar el acceso a otros recursos.
En esta página se describe cómo gestionar el acceso a las cuentas de servicio mediante la consola deGoogle Cloud , la CLI de Google Cloud y la API REST. También puedes gestionar el acceso mediante las bibliotecas de cliente de gestión de identidades y accesos.
Antes de empezar
Enable the IAM API.
Consulta información sobre las cuentas de servicio.
Roles de gestión de identidades y accesos necesarios
Para obtener los permisos que necesitas para gestionar el acceso a una cuenta de servicio, pide a tu administrador que te asigne el rol de IAM Administrador de cuentas de servicio (roles/iam.serviceAccountAdmin
) en la cuenta de servicio o en el proyecto propietario de la cuenta de servicio.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para gestionar el acceso a una cuenta de servicio. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para gestionar el acceso a una cuenta de servicio, se necesitan los siguientes permisos:
-
iam.serviceAccounts.get
-
iam.serviceAccounts.list
-
iam.serviceAccounts.getIamPolicy
-
iam.serviceAccounts.setIamPolicy
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Ver el acceso actual
En la siguiente sección se muestra cómo usar la Google Cloud consola, gcloud CLI y la API REST para ver quién tiene acceso a una cuenta de servicio. También puedes ver el acceso mediante las bibliotecas de cliente de gestión de identidades y accesos para obtener la política de permisos de la cuenta de servicio.
Consola
En la Google Cloud consola, ve a la página Cuentas de servicio.
Selecciona un proyecto.
Haz clic en la dirección de correo de la cuenta de servicio.
Ve a la pestaña Permisos. En la sección Principales con acceso a esta cuenta de servicio se enumeran todos los principales a los que se les ha concedido un rol en la cuenta de servicio.
Esta lista incluye las entidades cuyo acceso procede de roles que se han concedido en recursos superiores. Para obtener más información sobre la herencia de políticas, consulta el artículo Herencia de políticas y jerarquía de recursos.
Opcional: Para ver las concesiones de roles de los agentes de servicio, marca la casilla Incluir concesiones de roles proporcionadas por Google.
gcloud
Para ver quién tiene acceso a tu cuenta de servicio, obtén la política de permisos de la cuenta de servicio. Para saber cómo interpretar las políticas de permiso, consulta el artículo Descripción de las políticas de permiso.
Para obtener la política de permiso de la cuenta de servicio, ejecuta el comando get-iam-policy
de la cuenta de servicio:
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
Proporciona los siguientes valores:
SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.FORMAT
: formato de la política. Usajson
oyaml
.PATH
: ruta a un nuevo archivo de salida de la política.
Por ejemplo, el siguiente comando obtiene la política de la cuenta de servicio my-service-account
y la guarda en tu directorio principal en formato JSON:
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
Para ver quién tiene acceso a tu cuenta de servicio, obtén la política de permisos de la cuenta de servicio. Para saber cómo interpretar las políticas de permiso, consulta el artículo Descripción de las políticas de permiso.
El método
serviceAccounts.getIamPolicy
obtiene la política de autorización de una cuenta de servicio.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.POLICY_VERSION
: la versión de la política que se va a devolver. En las solicitudes se debe especificar la versión de la política más reciente, que es la versión 3. Consulta Especificar una versión de la política al obtener una política para obtener más información.
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
Cuerpo JSON de la solicitud:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la política de autorización de la cuenta de servicio. Por ejemplo:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Conceder o revocar un solo rol de gestión de identidades y accesos
Puedes usar la Google Cloud consola y la interfaz de línea de comandos gcloud para asignar o revocar rápidamente un único rol de una sola entidad principal sin tener que editar directamente la política de permisos de la cuenta de servicio. Entre los tipos habituales de principales se incluyen las cuentas de Google, las cuentas de servicio, los grupos de Google y los dominios.Para ver una lista de todos los tipos de principales, consulta Tipos de principales.
Por lo general, los cambios en las políticas se aplican en un plazo de 2 minutos. Sin embargo, en algunos casos, los cambios pueden tardar 7 minutos o más en propagarse por el sistema.
Si necesitas ayuda para identificar el rol predefinido más adecuado, consulta el artículo Buscar los roles predefinidos adecuados.
Conceder un solo rol de gestión de identidades y accesos
Para conceder un solo rol a una entidad, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Cuentas de servicio.
Selecciona un proyecto.
Haz clic en la dirección de correo de la cuenta de servicio.
Ve a la pestaña Permisos y busca la sección Principales con acceso a esta cuenta de servicio.
Selecciona una cuenta principal a la que quieras asignar un rol:
Para conceder un rol a una cuenta principal que ya tiene otros roles en la cuenta de servicio, busca la fila que contenga la cuenta principal, haz clic en
Editar cuenta principal en esa fila y, a continuación, en Añadir otro rol.Para conceder un rol a un agente de servicio, selecciona la casilla Incluir concesiones de roles proporcionadas por Google para ver su dirección de correo electrónico.
Para asignar un rol a una principal que no tenga ningún rol en la cuenta de servicio, haz clic en
Dar acceso y, a continuación, introduce un identificador de la principal (por ejemplo,my-user@example.com
o//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
).
Selecciona un rol de la lista desplegable para concederlo. Para seguir las prácticas recomendadas de seguridad, elige un rol que incluya solo los permisos que necesite tu principal.
Opcional: Añade una condición al rol.
Haz clic en Guardar. Se asigna el rol al principal en la cuenta de servicio.
gcloud
Para asignar rápidamente un rol a una cuenta principal, ejecuta el comando add-iam-policy-binding
:
gcloud iam service-accounts add-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Proporciona los siguientes valores:
SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.PRINCIPAL
: identificador de la entidad principal o del miembro, que suele tener el siguiente formato:PRINCIPAL-TYPE:ID
. Por ejemplo,user:my-user@example.com
oprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
. Para ver una lista completa de los valores que puede tenerPRINCIPAL
, consulta Identificadores principales.En el caso del tipo de principal
user
, el nombre de dominio del identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para saber cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity.ROLE_NAME
: el nombre del rol que quieres conceder. Se debe utilizar uno de los formatos indicados a continuación.- Roles predefinidos:
roles/SERVICE.IDENTIFIER
- Roles personalizados a nivel de proyecto:
projects/PROJECT_ID/roles/IDENTIFIER
- Roles personalizados a nivel de organización:
organizations/ORG_ID/roles/IDENTIFIER
Si quieres ver una lista de los roles predefinidos, consulta el artículo Descripción de los roles.
- Roles predefinidos:
CONDITION
: opcional. La condición que se va a añadir a la vinculación de roles. Para obtener más información sobre las condiciones, consulta el resumen de las condiciones.
Por ejemplo, para conceder el rol Usuario de cuenta de servicio al usuario
my-user@example.com
para la cuenta de servicio
my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
Revocar un solo rol de gestión de identidades y accesos
Para revocar un solo rol de una entidad de seguridad, haz lo siguiente:
Consola
En la Google Cloud consola, ve a la página Cuentas de servicio.
Selecciona un proyecto.
Haz clic en la dirección de correo de la cuenta de servicio.
Ve a la pestaña Permisos y busca la sección Principales con acceso a esta cuenta de servicio.
Busca la fila que contenga la cuenta principal cuyo acceso quieras revocar. A continuación, haga clic en
Editar principal en esa fila.Haga clic en el botón Eliminar
del rol que quiera revocar y, a continuación, haga clic en Guardar.
gcloud
Para revocar rápidamente un rol de un usuario, ejecuta el comando remove-iam-policy-binding
:
gcloud iam service-accounts remove-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME
Proporciona los siguientes valores:
SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.PRINCIPAL
: identificador de la entidad principal o del miembro, que suele tener el siguiente formato:PRINCIPAL-TYPE:ID
. Por ejemplo,user:my-user@example.com
oprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
. Para ver una lista completa de los valores que puede tenerPRINCIPAL
, consulta Identificadores principales.En el caso del tipo de principal
user
, el nombre de dominio del identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para saber cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity.ROLE_NAME
: El nombre del rol que quieres revocar. Se debe utilizar uno de los formatos indicados a continuación.- Roles predefinidos:
roles/SERVICE.IDENTIFIER
- Roles personalizados a nivel de proyecto:
projects/PROJECT_ID/roles/IDENTIFIER
- Roles personalizados a nivel de organización:
organizations/ORG_ID/roles/IDENTIFIER
Si quieres ver una lista de los roles predefinidos, consulta el artículo Descripción de los roles.
- Roles predefinidos:
Por ejemplo, para revocar el rol Usuario de cuenta de servicio del usuario
my-user@example.com
de la cuenta de servicio
my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts remove-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
Conceder o revocar varios roles de gestión de identidades y accesos con la Google Cloud consola
Puedes usar la consola para asignar y revocar varios roles a una sola entidad principal: Google Cloud
En la Google Cloud consola, ve a la página Cuentas de servicio.
Selecciona un proyecto.
Haz clic en la dirección de correo de la cuenta de servicio.
Ve a la pestaña Permisos y busca la sección Principales con acceso a esta cuenta de servicio.
Selecciona el principal cuyos roles quieras modificar:
Para modificar los roles de una cuenta principal que ya tiene roles en la cuenta de servicio, busca la fila que contiene la cuenta principal, haz clic en
Editar cuenta principal en esa fila y, a continuación, haz clic en Añadir otro rol.Para modificar los roles de un agente de servicio, marca la casilla Incluir concesiones de roles proporcionadas por Google para ver su dirección de correo.
Para conceder roles a una cuenta principal que no tenga ningún rol en la cuenta de servicio, haz clic en
Conceder acceso y, a continuación, introduce la dirección de correo electrónico u otro identificador de la cuenta principal.
Modifica los roles de la entidad principal:
- Para asignar un rol a un principal que no tenga ningún rol en el recurso, haz clic en Seleccionar un rol y, a continuación, selecciona el rol que quieras asignar en la lista desplegable.
- Para asignar otro rol al principal, haz clic en Añadir otro rol y selecciona un rol de la lista desplegable.
- Para sustituir uno de los roles del administrador principal por otro, haz clic en el rol actual y, a continuación, elige otro rol en la lista desplegable.
- Para revocar uno de los roles del principal, haz clic en el botón Eliminar de cada rol que quieras revocar.
También puedes añadir una condición a un rol, modificar la condición de un rol o quitar la condición de un rol.
Haz clic en Guardar.
Conceder o revocar varios roles de gestión de identidades y accesos de forma programática
Para hacer cambios de acceso a gran escala que impliquen conceder y revocar varios roles a varias entidades, utiliza el patrón lectura-modificación-escritura para actualizar la política de autorización de la cuenta de servicio:
- Lee la política de permiso actual llamando a
getIamPolicy()
. - Edita la política de permiso, ya sea mediante un editor de texto o de forma programática, para añadir o eliminar principales o enlaces de roles.
- Escribe la política de permiso actualizada llamando a
setIamPolicy()
.
En esta sección se muestra cómo usar la CLI de gcloud y la API REST para actualizar la política de permiso. También puedes actualizar la política de permiso mediante las bibliotecas de cliente de gestión de identidades y accesos.
Por lo general, los cambios en las políticas se aplican en un plazo de 2 minutos. Sin embargo, en algunos casos, los cambios pueden tardar 7 minutos o más en propagarse por el sistema.
Obtener la política de permisos actual
gcloud
Para obtener la política de permiso de la cuenta de servicio, ejecuta el comando get-iam-policy
de la cuenta de servicio:
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
Proporciona los siguientes valores:
SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.FORMAT
: formato de la política de permiso. Usajson
oyaml
.PATH
: ruta a un nuevo archivo de salida para la política de permiso.
Por ejemplo, el siguiente comando obtiene la política de permiso de la cuenta de servicio my-service-account
y la guarda en tu directorio principal en formato JSON:
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
El método
serviceAccounts.getIamPolicy
obtiene la política de autorización de una cuenta de servicio.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.POLICY_VERSION
: la versión de la política que se va a devolver. En las solicitudes se debe especificar la versión de la política más reciente, que es la versión 3. Consulta Especificar una versión de la política al obtener una política para obtener más información.
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
Cuerpo JSON de la solicitud:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la política de autorización de la cuenta de servicio. Por ejemplo:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Guarda la respuesta en un archivo del tipo adecuado (json
o yaml
).
Java
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Java de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Python de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Modificar la política de permiso
Modifica la copia local de la política de permitidos de tu cuenta de servicio de forma programática o mediante un editor de texto para reflejar los roles que quieras otorgar o revocar a usuarios determinados.
Para asegurarte de que no sobrescribes otros cambios, no edites ni quites el campo etag
de la política de permiso. El campo etag
identifica el estado actual de la política de permiso. Cuando estableces la política de permiso actualizada, IAM compara el valor de etag
de la solicitud con el valor de etag
actual y solo escribe la política de permiso si los valores coinciden.
Para editar los roles que concede una política de permiso, debes editar las vinculaciones de roles en la política de permiso. Las asignaciones de roles tienen el siguiente formato:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
Los marcadores de posición tienen los siguientes valores:
ROLE_NAME
: el nombre del rol que quieres conceder. Se debe utilizar uno de los formatos indicados a continuación.- Roles predefinidos:
roles/SERVICE.IDENTIFIER
- Roles personalizados a nivel de proyecto:
projects/PROJECT_ID/roles/IDENTIFIER
- Roles personalizados a nivel de organización:
organizations/ORG_ID/roles/IDENTIFIER
Si quieres ver una lista de los roles predefinidos, consulta el artículo Descripción de los roles.
- Roles predefinidos:
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identificadores de las entidades a las que quieres asignar el rol.Los identificadores principales suelen tener el siguiente formato:
PRINCIPAL-TYPE:ID
. Por ejemplo,user:my-user@example.com
oprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
. Para ver una lista completa de los valores que puede tenerPRINCIPAL
, consulta Identificadores principales.En el caso del tipo de principal
user
, el nombre de dominio del identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para saber cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity.CONDITIONS
: opcional. Las condiciones que especifican cuándo se concederá el acceso.
Conceder un rol
Para asignar roles a tus entidades principales, modifica las vinculaciones de roles en la política de permisos. Para saber qué roles puedes conceder, consulta Descripción de los roles o Ver los roles que se pueden conceder de la cuenta de servicio. Si necesitas ayuda para identificar los roles predefinidos más adecuados, consulta Buscar los roles predefinidos adecuados.
También puedes usar condiciones para conceder roles solo cuando se cumplan determinados requisitos.
Para conceder un rol que ya esté incluido en la política de permitidos, añade la cuenta principal a una vinculación de roles:
gcloud
Edita la política de permiso añadiendo la cuenta principal a una vinculación de roles. Ten en cuenta que este cambio no se aplicará hasta que definas la política de permiso actualizada.
Por ejemplo, supongamos que la política de permiso contiene el siguiente enlace de rol, que otorga el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser
) a Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
Para concederle el mismo rol a Raha, añádela a la vinculación de roles que ya existe:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
REST
Edita la política de permiso añadiendo la cuenta principal a una vinculación de roles. Ten en cuenta que este cambio no se aplicará hasta que definas la política de permiso actualizada.
Por ejemplo, supongamos que la política de permiso contiene el siguiente enlace de rol, que otorga el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser
) a Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
Para concederle el mismo rol a Raha, añádela a la vinculación de roles que ya existe:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
Para conceder un rol que aún no se haya incluido en la política de permisos, añade una nueva vinculación de roles:
gcloud
Edita la política de permiso añadiendo una nueva vinculación de roles que conceda el rol al principal. Este cambio no se aplicará hasta que definas la política de permiso actualizada.
Por ejemplo, para asignar el rol Creador de tokens de cuenta de servicio
(roles/iam.serviceAccountTokenCreator
) a Raha, añade el siguiente enlace de rol a la matriz bindings
de la política de permiso:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
REST
Edita la política de permiso añadiendo una nueva vinculación de roles que conceda el rol al principal. Este cambio no se aplicará hasta que definas la política de permiso actualizada.
Por ejemplo, para asignar el rol Creador de tokens de cuenta de servicio
(roles/iam.serviceAccountTokenCreator
) a Raha, añade el siguiente enlace de rol a la matriz bindings
de la política de permiso:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
Revocar un rol
Para revocar un rol, quita la cuenta principal de la vinculación de roles. Si no hay otros principales en la vinculación de roles, elimina toda la vinculación de roles de la política de permiso.
gcloud
Edita la política de permiso quitando la entidad principal o toda la vinculación de roles. Este cambio no se aplicará hasta que definas la política de permiso actualizada.
Por ejemplo, supongamos que la política de permiso contiene el siguiente enlace de rol, que otorga a Kai y Raha el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser
):
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
Para revocar el rol de Kai, elimina el identificador principal de Kai de la vinculación de roles:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
Para revocar el rol de Kai y Raha, elimina la vinculación de roles de la política de permiso.
REST
Edita la política de permiso quitando la entidad principal o toda la vinculación de roles. Este cambio no se aplicará hasta que definas la política de permiso actualizada.
Por ejemplo, supongamos que la política de permiso contiene el siguiente enlace de rol, que otorga a Kai y Raha el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser
):
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
Para revocar el rol de Kai, elimina el identificador principal de Kai de la vinculación de roles:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
Para revocar el rol de Kai y Raha, elimina la vinculación de roles de la política de permiso.
Definir la política de permitir
Cuando hayas modificado la política de permiso para asignar y revocar roles, llama a setIamPolicy()
para hacer las actualizaciones pertinentes.
gcloud
Para definir la política de permiso del recurso, ejecuta el comando set-iam-policy
de la cuenta de servicio:
gcloud iam service-accounts set-iam-policy SA_ID PATH
Proporciona los siguientes valores:
SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.PATH
: ruta a un archivo que contiene la nueva política de permiso.
La respuesta contiene la política de permiso actualizada.
Por ejemplo, el siguiente comando define la política de permiso almacenada en policy.json
como política de permiso de la cuenta de servicio
my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts set-iam-policy my-service-account@my-project.iam.gserviceaccount.com \ ~/policy.json
REST
El método
serviceAccounts.setIamPolicy
define una política de permiso actualizada para la cuenta de servicio.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.SA_ID
: el ID de tu cuenta de servicio. Puede ser la dirección de correo de la cuenta de servicio con el formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
o el ID numérico único de la cuenta de servicio.-
POLICY
: representación JSON de la política que quieres definir. Para obtener más información sobre el formato de una política, consulta la referencia de la política.Por ejemplo, para definir la política de permiso que se muestra en el paso anterior, sustituya
policy
por lo siguiente:{ "version": 1, "etag": "BwUqLaVeua8=", "bindings": [ { "role": "roles/iam.serviceAccountUser", "members": [ "group:my-group@example.com" ] }, { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Método HTTP y URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:setIamPolicy
Cuerpo JSON de la solicitud:
{ "policy": POLICY }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la política de permiso actualizada.
Java
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Java de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API Python de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Siguientes pasos
- Consulta qué roles debes asignar para permitir que las entidades se autentiquen como cuentas de servicio.
- Consulta cómo elegir los roles predefinidos más adecuados.
- Consulta las prácticas recomendadas para trabajar con cuentas de servicio y descubre cómo usar las cuentas de servicio de forma segura.
- Consulta cómo gestionar el acceso a proyectos, carpetas y organizaciones.
- Consulta los pasos generales para gestionar el acceso a otros recursos.
- Consulta cómo hacer que el acceso de una entidad sea condicional con las vinculaciones de roles condicionales.
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Empezar gratis