En esta página se describe cómo crear y gestionar roles personalizados de Gestión de Identidades y Accesos (IAM). Gestionar roles incluye modificar, inhabilitar, enumerar, eliminar y restaurar roles.
Antes de empezar
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 .NET muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
C++
Para usar las C++ muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
Go
Para usar las Go muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
Java
Para usar las Java muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticación para usar REST de la documentación sobre autenticación de Google Cloud .
Consulta la Google Cloud jerarquía de recursos.
Consulta el artículo Conocer los roles personalizados de gestión de identidades y accesos.
Roles obligatorios
Para obtener los permisos que necesitas para crear y gestionar roles personalizados, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Para gestionar los roles de un proyecto, debes tener el rol Administrador de roles (
roles/iam.roleAdmin
) en el proyecto en el que quieras gestionar los roles. -
Para gestionar los roles de una organización, debes tener el rol Administrador de roles de la organización (
roles/iam.organizationRoleAdmin
) en la organización cuyos roles quieras gestionar.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Ver los permisos disponibles de proyectos, carpetas y organizaciones
Puedes crear roles personalizados para toda una organización o para un proyecto específico de esa organización. Los permisos disponibles para los roles personalizados dependen de dónde crees el rol. Por ejemplo, si un permiso solo se puede usar a nivel de organización, no podrás incluirlo en un rol personalizado a nivel de proyecto.
Para comprobar qué permisos están disponibles para los roles personalizados a nivel de organización y de proyecto, puedes usar la CLI de gcloud o la API Identity and Access Management para consultar los permisos disponibles en una organización o un proyecto concretos. Por ejemplo, puedes obtener todos los permisos disponibles para los roles personalizados que se hayan creado en tu proyecto.
Es posible que algunos permisos no se muestren o no se puedan usar en un rol personalizado, aunque sean compatibles con ellos. Por ejemplo, es posible que un permiso no se pueda usar en roles personalizados si no has habilitado la API del servicio en cuestión.
Para obtener más información sobre los permisos que puedes añadir a los roles personalizados, consulta Permisos admitidos.
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.
-
Usa el comando
gcloud iam list-testable-permissions
para obtener una lista de los permisos disponibles para los roles personalizados de un proyecto o una organización concretos. La respuesta muestra los permisos que puedes usar en los roles personalizados de ese proyecto u organización.Para enumerar los permisos disponibles en los roles personalizados de un proyecto o una organización, ejecuta este comando:
gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"
Sustituye
FULL_RESOURCE_NAME
por uno de los siguientes valores:-
Proyecto:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID
(por ejemplo,//cloudresourcemanager.googleapis.com/projects/my-project
) -
Organización:
//cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID
(por ejemplo,//cloudresourcemanager.googleapis.com/organizations/123456789012
)
Los resultados indican si cada permiso es compatible con los roles personalizados. Los permisos que no tienen un campo
customRolesSupportLevel
se admiten por completo.El comando
list-testable-permissions
puede devolver cientos de resultados. En este ejemplo parcial se muestra el formato de cada resultado:--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA ---
-
FULL_RESOURCE_NAME
: un URI que consta del nombre del servicio y la ruta al recurso. Para ver ejemplos, consulta Nombres de recursos completos.PAGE_SIZE
: opcional. Número de permisos que se incluirán en la respuesta. El valor predeterminado es 100 y el máximo es 1000. Si el número de permisos es superior al tamaño de la página, la respuesta contiene un token de paginación que puedes usar para obtener la siguiente página de resultados.NEXT_PAGE_TOKEN
: opcional. El token de paginación devuelto en una respuesta anterior de este método. Si se especifica, la lista de permisos que se pueden probar empezará donde terminó la respuesta anterior.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
permissions.queryTestablePermissions
muestra los permisos disponibles en una organización o un proyecto.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions
Cuerpo JSON de la solicitud:
{ "fullResourceName": "FULL_RESOURCE_NAME" "pageSize": PAGE_SIZE, "pageToken": "NEXT_PAGE_TOKEN" }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la lista de permisos.
{ "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }
Obtener los metadatos del rol
Antes de crear un rol personalizado, puede obtener los metadatos de los roles predefinidos y personalizados. Los metadatos de los roles incluyen el ID del rol y los permisos que contiene. Puede ver los metadatos mediante laGoogle Cloud consola o la API de gestión de identidades y accesos.
Para ver los metadatos del rol, usa uno de los métodos que se indican a continuación:
Consola
En la Google Cloud consola, ve a la página Roles.
Selecciona tu organización o proyecto en la lista desplegable de la parte superior de la página.
Selecciona la casilla de uno o varios roles para ver sus permisos. En el panel de la derecha se muestran los permisos incluidos en los roles, si los hay.
Los iconos de la columna Tipo indican si se trata de un rol personalizado
o de un rol predefinido .Si quieres encontrar todos los roles que incluyen un permiso específico, escribe el nombre del permiso en el cuadro Filtrar situado en la parte superior de la lista Roles.
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.
-
Usa el comando
gcloud iam roles describe
para ver los metadatos de los roles predefinidos y personalizados.Para ver los metadatos de un rol predefinido, ejecuta el siguiente comando:
gcloud iam roles describe ROLE_ID
ROLE_ID
es el ID del rol. Los roles predefinidos incluyen el prefijorole
en sus IDs, por ejemplo,roles/iam.roleViewer
.En el siguiente ejemplo se muestra la salida del comando
describe
cuando se ejecuta en el rol predefinidoroles/iam.roleViewer
:gcloud iam roles describe roles/iam.roleViewer
description: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer
Para ver los metadatos de un rol personalizado, ejecuta uno de los siguientes comandos:
-
Para ver los metadatos de un rol personalizado creado a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles describe --organization=ORGANIZATION_ID ROLE_ID
-
Para ver los metadatos de un rol personalizado creado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles describe --project=PROJECT_ID ROLE_ID
A continuación se describe cada valor de marcador de posición:
-
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
. -
ROLE_ID
es el ID del rol, sin incluir prefijos comoprojects/
,organizations/
oroles/
. Por ejemplo,myCompanyAdmin
.
Para obtener más información, consulta la documentación de referencia de
gcloud iam roles describe
. -
ROLE_NAME
: el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo,organizations/123456789012/roles/myCompanyAdmin
.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.get
obtiene la definición de un rol.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
GET https://iam.googleapis.com/v1/ROLE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la definición del rol.
{ "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }
Crear una función personalizada
Puedes crear un rol personalizado a nivel de proyecto o de organización.
Un rol personalizado a nivel de organización puede incluir cualquiera de los permisos de gestión de identidades y accesos que se admiten en los roles personalizados. Un rol personalizado a nivel de proyecto puede contener cualquier permiso admitido excepto los permisos que solo se pueden usar a nivel de organización o de carpeta, como
resourcemanager.organizations.get
. Si intentas añadir estos permisos a un rol personalizado a nivel de proyecto, verás un mensaje de error:Consola
Se muestra el siguiente mensaje de advertencia: "No se aplican a los roles personalizados de nivel de proyecto". El permiso se desmarcará automáticamente de la lista de permisos incluidos y podrás crear el rol.
gcloud
Se devuelve el siguiente mensaje de error:
INVALID_ARGUMENT: Permission PERMISSION is not valid
. El rol personalizado no se creará hasta que quites el permiso de la definición del rol y vuelvas a intentar la operación.API REST
Se devuelve el siguiente mensaje de error:
Permission PERMISSION is not valid
, junto con un código de error HTTP 400 y el estadoINVALID_ARGUMENT
. El rol personalizado no se creará hasta que elimines el permiso de la definición del rol y vuelvas a intentar la operación.Cada rol personalizado puede contener hasta 3000 permisos. Además, el tamaño total máximo del título, la descripción y los nombres de los permisos de un rol personalizado es de 64 kB. Si necesitas crear un rol personalizado más grande, puedes dividir los permisos en varios roles personalizados. Elige títulos de rol que muestren la relación entre los roles personalizados, como
Custom Admin (1 of 2)
yCustom Admin (2 of 2)
.Cada rol personalizado puede tener una fase de lanzamiento. La mayoría de las fases de lanzamiento son informativas y te ayudan a hacer un seguimiento de si cada rol está listo para un uso generalizado. Además, la fase de lanzamiento
DISABLED
te permite inhabilitar un rol personalizado. Para obtener más información sobre las fases de lanzamiento, consulta Pruebas e implementaciones.Consola
Algunos roles predefinidos contienen permisos obsoletos o permisos que no se permiten en roles personalizados. Si intentas crear un rol personalizado basado en uno de estos roles predefinidos, el rol personalizado omitirá los permisos obsoletos y restringidos.
Para crear un rol personalizado desde cero, sigue estos pasos:
En la Google Cloud consola, ve a la página Roles.
En la lista desplegable de la parte superior de la página, selecciona la organización o el proyecto en el que quieras crear un rol.
Haz clic en Crear rol.
Introduce un título, una descripción, un ID y la fase de lanzamiento del rol. El ID del rol no se puede cambiar una vez creado el rol.
Haz clic en Añadir permisos.
Seleccione los permisos que quiera incluir en el rol y haga clic en Añadir permisos. Usa las listas desplegables Todos los servicios y Todos los tipos para filtrar y seleccionar permisos por servicios y tipos.
Para crear un rol personalizado a partir de un rol predefinido, sigue estos pasos:
- En la Google Cloud consola, ve a la página Roles.
- Selecciona la organización o el proyecto en el que quieras crear un rol.
- Selecciona los roles en los que quieras basar el nuevo rol personalizado.
- Haz clic en Crear rol a partir de los roles seleccionados.
- Introduce un título, una descripción, un ID y la fase de lanzamiento del rol. El ID del rol no se puede cambiar una vez creado el rol.
- Desmarca los permisos que quieras excluir del rol.
- Haz clic en Añadir permisos para incluir los permisos que quieras.
- Haz clic en Crear.
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.
-
Usa el comando
gcloud iam roles create
para crear roles personalizados. Puedes usar este comando de dos formas:-
Proporcionando un archivo YAML que contenga la definición del rol
-
Usando marcas para especificar la definición del rol
Cuando crees un rol personalizado, debes especificar si se aplica a nivel de organización o de proyecto mediante las marcas
--organization=ORGANIZATION_ID
o--project=PROJECT_ID
. En cada ejemplo siguiente se crea un rol personalizado a nivel de proyecto.Un rol personalizado solo puede contener permisos que sean compatibles con roles personalizados. Si el rol personalizado contiene otros permisos, el comando fallará.
Para crear un rol personalizado con un archivo YAML, sigue estos pasos:
Crea un archivo YAML que contenga la definición de tu rol personalizado. El archivo debe tener la siguiente estructura:
title: ROLE_TITLE description: ROLE_DESCRIPTION stage: LAUNCH_STAGE includedPermissions: - PERMISSION_1 - PERMISSION_2
A continuación se describe cada valor de marcador de posición:
-
ROLE_TITLE
es un título descriptivo para el rol, como"My Company Admin"
. -
ROLE_DESCRIPTION
es una breve descripción del rol, como"My custom role description"
. -
LAUNCH_STAGE
indica la fase de un rol en el ciclo de vida del lanzamiento, comoALPHA
,BETA
oGA
. -
PERMISSION_1
yPERMISSION_2
son permisos que se pueden incluir en el rol personalizado, comoiam.roles.get
. No puedes usar caracteres comodín (*
) en los nombres de permisos.
Guarda el archivo YAML y, a continuación, ejecuta uno de los siguientes comandos:
-
Para crear un rol personalizado a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
-
Para crear un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
. -
YAML_FILE_PATH
es la ruta a la ubicación del archivo YAML que contiene la definición del rol personalizado.
Ejemplos
En el siguiente archivo YAML de ejemplo se muestra cómo crear una definición de rol:
title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list
En el siguiente ejemplo se muestra cómo crear un rol a nivel de organización mediante el archivo YAML:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Si el rol se ha creado correctamente, el resultado del comando será similar al siguiente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo se muestra cómo crear un rol a nivel de proyecto mediante un archivo YAML:
gcloud iam roles create myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml
Si el rol se ha creado correctamente, el resultado del comando será similar al siguiente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Para crear un rol personalizado con marcas, sigue estos pasos:
Ejecuta uno de los siguientes comandos:
-
Para crear un rol personalizado a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
-
Para crear un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
. -
ROLE_TITLE
es un título descriptivo para el rol, como"My Company Admin"
. -
ROLE_DESCRIPTION
es una breve descripción del rol, como"My custom role description."
. -
PERMISSIONS_LIST
contiene una lista separada por comas de los permisos que quieres incluir en el rol personalizado. Por ejemplo:iam.roles.get,iam.roles.list
. No puedes usar caracteres comodín (*
) en los nombres de permisos. -
LAUNCH_STAGE
indica la fase de un rol en el ciclo de vida del lanzamiento, comoALPHA
,BETA
oGA
.
Ejemplos
En el siguiente ejemplo se muestra cómo crear un rol a nivel de organización mediante marcas:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHA
Si el rol se ha creado correctamente, el resultado del comando será similar al siguiente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo se muestra cómo crear un rol a nivel de proyecto mediante marcas:
gcloud iam roles create myCompanyAdmin --project=my-project \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHA
Si el rol se ha creado correctamente, el resultado del comando será similar al siguiente:
Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
RESOURCE_TYPE
: el tipo de recurso cuyos roles personalizados quieres gestionar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: el ID del proyecto o de la organización cuyos roles personalizados quieres gestionar. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de organización son numéricos, como123456789012
.ROLE_ID
: el nombre del rol, comomyCompanyAdmin
.ROLE_TITLE
: título legible por humanos del rol. Por ejemplo,My Company Admin
.ROLE_DESCRIPTION
: descripción del rol. Por ejemplo,"The company admin role allows company admins to access important resources"
.-
PERMISSION_1
yPERMISSION_2
: los permisos que quieras incluir en el rol. Por ejemplo,storage.objects.update
. No puedes usar caracteres comodín (*
) en los nombres de permisos.Un rol personalizado solo puede contener permisos que sean compatibles con roles personalizados. Si el rol personalizado contiene otros permisos, la solicitud fallará.
LAUNCH_STAGE
: la fase de lanzamiento actual del rol. Este campo puede contener uno de los siguientes valores:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
oDISABLED
.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.create
crea un rol personalizado en un proyecto o una organización.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Cuerpo JSON de la solicitud:
{ "roleId": "ROLE_ID", "role": { "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH_STAGE" } }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene el rol que has creado.
{ "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }
Editar un rol personalizado
Un patrón habitual para actualizar los metadatos de un recurso, como un rol personalizado, es el patrón lectura, modificación y escritura. Con este patrón, lees el estado actual del rol, actualizas los datos de forma local y, a continuación, envías los datos modificados para escribirlos.
El patrón de lectura-modificación-escritura puede provocar un conflicto si dos o más procesos independientes intentan realizar la secuencia simultáneamente. Por ejemplo, si dos propietarios de un proyecto intentan hacer cambios conflictivos en un rol al mismo tiempo, es posible que algunos cambios no se apliquen. IAM resuelve este problema mediante una propiedad
etag
en los roles personalizados. Esta propiedad se usa para verificar si el rol personalizado ha cambiado desde la última solicitud. Cuando haces una solicitud a IAM con un valor de etag, IAM compara el valor de etag de la solicitud con el valor de etag asociado al rol personalizado. Solo escribe el cambio si los valores de etag coinciden.Cuando actualices un rol, primero obtén el rol con
roles.get()
, actualízalo y, a continuación, escribe el rol actualizado conroles.patch()
. Utilice el valor etag al definir el rol solo si el rol correspondiente deroles.get()
contiene un valor etag.Consola
En la Google Cloud consola, ve a la página Roles.
En la lista desplegable de la parte superior de la página, selecciona el proyecto o la organización que contenga el rol que quieras editar.
Haz clic en un rol personalizado.
Haz clic en Editar rol.
Para actualizar los metadatos del rol, edita el Título, la Descripción o la Fase de lanzamiento del rol.
Para actualizar los permisos del rol, sigue estos pasos:
- Haga clic en Añadir permisos para añadir permisos al rol.
- Desmarca los permisos que quieras quitar del rol.
Haz clic en Actualizar para guardar el rol editado.
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.
-
Usa el comando
gcloud iam roles update
para actualizar los roles personalizados. Puedes usar este comando de dos formas:-
Proporcionando un archivo YAML que contenga la definición de rol actualizada
-
Usando marcas para especificar la definición de rol actualizada
Cuando actualices un rol personalizado, debes especificar si se aplica a nivel de organización o de proyecto mediante las marcas
--organization=ORGANIZATION_ID
o--project=PROJECT_ID
. En cada ejemplo siguiente se crea un rol personalizado a nivel de proyecto.Para actualizar un rol personalizado mediante un archivo YAML, sigue estos pasos:
Para obtener la definición actual del rol, ejecuta uno de los siguientes comandos:
-
Para obtener la definición de un rol personalizado a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles describe ROLE_ID --organization=ORGANIZATION_ID
-
Para obtener la definición de un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles describe ROLE_ID --project=PROJECT_ID
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol que se va a actualizar, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
.
El comando
describe
devuelve la definición del rol e incluye un valoretag
que identifica de forma única la versión actual del rol. El valoretag
debe proporcionarse en la definición de rol actualizada para asegurarse de que no se sobrescriban los cambios de rol simultáneos.El comando
describe
devuelve el siguiente resultado:description: ROLE_DESCRIPTION etag: ETAG includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME stage: LAUNCH_STAGE title: ROLE_TITLE
A continuación se describe cada valor de marcador de posición:
-
ROLE_DESCRIPTION
es una breve descripción del rol, como"My custom role description"
. -
ETAG
es el identificador único de la versión actual del rol, comoBwVkBkbfr70=
. -
PERMISSION_1
yPERMISSION_2
son permisos que se pueden incluir en el rol personalizado, comoiam.roles.get
. No puedes usar caracteres comodín (*
) en los nombres de permisos. -
ROLE_NAME
es el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo,organizations/123456789012/roles/myCompanyAdmin.
-
LAUNCH_STAGE
indica la fase de un rol en el ciclo de vida del lanzamiento, comoALPHA
,BETA
oGA
. -
ROLE_TITLE
es un título descriptivo para el rol, como"My Company Admin"
.
Para actualizar el rol, incluye la definición del rol en un archivo YAML o actualiza el archivo YAML original con el valor
etag
.Consulta el siguiente archivo YAML de ejemplo, que contiene el resultado del comando
describe
para un rol a nivel de proyecto y añade dos permisos de Cloud Storage:description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Guarda el archivo YAML y, a continuación, ejecuta uno de los siguientes comandos:
-
Para actualizar un rol a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
-
Para actualizar un rol a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol que se va a actualizar, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project-id
. -
YAML_FILE_PATH
es la ruta a la ubicación del archivo YAML que contiene la definición del rol personalizado actualizado.
Ejemplos
En el siguiente ejemplo se muestra cómo actualizar un rol a nivel de organización mediante un archivo YAML:
gcloud iam roles update ROLE_ID --organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
-
Para actualizar un rol a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol que se va a actualizar, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
. -
YAML_FILE_PATH
es la ruta a la ubicación del archivo YAML que contiene la definición del rol personalizado actualizado.
Ejemplos
En el siguiente ejemplo se muestra cómo actualizar un rol a nivel de organización mediante un archivo YAML:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Si el rol se ha actualizado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo se muestra cómo actualizar un rol a nivel de proyecto mediante un archivo YAML:
gcloud iam roles update myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml
Si el rol se ha actualizado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
Para actualizar un rol personalizado mediante marcas, sigue estos pasos:
Cada parte de una definición de rol se puede actualizar mediante una marca correspondiente. Consulta el
gcloud iam roles update
tema para ver una lista de todas las posibles marcas.Puedes usar las siguientes marcas para añadir o quitar permisos:
-
--add-permissions=PERMISSIONS
: añade uno o varios permisos separados por comas al rol. No puedes usar caracteres comodín (*
) en los nombres de permisos. -
--remove-permissions=PERMISSIONS
: quita uno o varios permisos separados por comas del rol. No puedes usar caracteres comodín (*
) en los nombres de permisos.
También puedes especificar los nuevos permisos con la marca
--permissions=PERMISSIONS
y proporcionar una lista de permisos separados por comas para sustituir la lista de permisos actual.Para actualizar otras partes de la definición del rol, ejecuta uno de los siguientes comandos:
-
Para actualizar un rol a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
-
Para actualizar un rol a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
. -
ROLE_TITLE
es un título descriptivo para el rol, como"My Company Admin"
. -
ROLE_DESCRIPTION
es una breve descripción del rol, como"My custom role description."
. -
LAUNCH_STAGE
indica la fase de un rol en el ciclo de vida del lanzamiento, comoALPHA
,BETA
oGA
.
Ejemplos
En el siguiente ejemplo se muestra cómo añadir permisos a un rol a nivel de organización mediante marcas:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions="storage.buckets.get,storage.buckets.list"
Si el rol se ha actualizado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo se muestra cómo añadir permisos a un rol a nivel de proyecto mediante marcas:
gcloud iam roles update myCompanyAdmin --project=my-project \ --add-permissions="storage.buckets.get,storage.buckets.list"
Si el rol se ha actualizado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
RESOURCE_TYPE
: el tipo de recurso cuyos roles personalizados quieres gestionar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: el ID del proyecto o de la organización cuyos roles personalizados quieres gestionar. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de organización son numéricos, como123456789012
.ROLE_NAME
: el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo,organizations/123456789012/roles/myCompanyAdmin
.ETAG
: identificador de una versión del rol. Incluye este campo para evitar que se sobrescriban otros cambios de rol.ROLE_TITLE
: título legible por humanos del rol. Por ejemplo,My Company Admin
.ROLE_DESCRIPTION
: descripción del rol. Por ejemplo,"The company admin role allows company admins to access important resources"
.PERMISSION_1
yPERMISSION_2
: los permisos que quieras incluir en el rol. Por ejemplo,storage.objects.update
. No puedes usar caracteres comodín (*
) en los nombres de permisos.LAUNCH_STAGE
: la fase de lanzamiento actual del rol. Este campo puede contener uno de los siguientes valores:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
oDISABLED
.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.patch
actualiza un rol personalizado en un proyecto o una organización.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Obligatorio:
Recomendado:
Opcional (define uno o varios de los siguientes valores):
Método HTTP y URL:
PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Cuerpo JSON de la solicitud:
{ "roleId": "ROLE_NAME", "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH-STAGE", "etag": "ETAG" }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene una definición abreviada del rol que incluye el nombre del rol, los campos que has actualizado y un etag que identifica la versión actual del rol.
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }
Inhabilitar un rol personalizado
Para inhabilitar un rol personalizado, cambia su fase de lanzamiento a
DISABLED
. Cuando se inhabilita un rol, se desactivan todas las vinculaciones de roles relacionadas con él, lo que significa que conceder el rol a un usuario no tiene ningún efecto.Consola
En la Google Cloud consola, ve a la página Roles.
Haz clic en la lista desplegable "Seleccionar un proyecto" situada en la parte superior de la página.
Selecciona tu organización o proyecto.
Selecciona un rol personalizado y haz clic en Inhabilitar.
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.
-
Usa el comando
gcloud iam roles update
para inhabilitar un rol personalizado asignando el valorDISABLED
a su fase de lanzamiento.Tal como se describe en la pestaña gcloud de la sección Editar un rol personalizado, puedes actualizar un rol personalizado de dos formas:
-
Proporcionando un archivo YAML que contenga la definición de rol actualizada
-
Usando marcas para especificar la definición de rol actualizada
La forma más sencilla de inhabilitar un rol personalizado es usar la marca
--stage
y asignarle el valorDISABLED
. Ejecuta uno de los siguientes comandos:-
Para inhabilitar un rol a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --stage=DISABLED
-
Para inhabilitar un rol a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --stage=DISABLED
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
.
Ejemplos
En el siguiente ejemplo se muestra cómo inhabilitar un rol a nivel de organización:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLED
Si el rol se ha actualizado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
En el siguiente ejemplo se muestra cómo inhabilitar un rol a nivel de proyecto:
gcloud iam roles update myCompanyAdmin --project=my-project \ --stage=DISABLED
Si el rol se ha actualizado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
-
RESOURCE_TYPE
: el tipo de recurso cuyos roles personalizados quieres gestionar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: el ID del proyecto o de la organización cuyos roles personalizados quieres gestionar. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de organización son numéricos, como123456789012
.ROLE_NAME
: el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo,organizations/123456789012/roles/myCompanyAdmin
.ETAG
: identificador de una versión del rol. Incluye este campo para evitar que se sobrescriban otros cambios de rol.
C++
Actualiza el campo
stage
del rol aDISABLED
.C#
Actualiza el campo
stage
del rol aDISABLED
.Go
Actualiza el campo
stage
del rol aDISABLED
.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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.patch
te permite cambiar la fase de lanzamiento de un rol personalizado aDISABLED
, lo que inhabilita el rol.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles
Cuerpo JSON de la solicitud:
{ "roleId": "ROLE_NAME", "stage": DISABLED, "etag": "ETAG" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }
Mostrar roles
Puedes consultar todos los roles personalizados creados en tu proyecto u organización.
Consola
En la Google Cloud consola, ve a la página Roles.
En la página se muestran todos los roles personalizados de la organización o el proyecto que hayas seleccionado.
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.
-
Usa el comando
gcloud iam roles list
para consultar los roles personalizados y predefinidos de un proyecto o una organización:-
Para enumerar los roles personalizados a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles list --organization=ORGANIZATION_ID
-
Para enumerar los roles personalizados a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles list --project=PROJECT_ID
A continuación se describe cada valor de marcador de posición:
-
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
.
Para enumerar los roles eliminados, también puedes especificar la marca
--show-deleted
.Ejecuta el siguiente comando para enumerar los roles predefinidos:
gcloud iam roles list
-
RESOURCE_TYPE
: el tipo de recurso cuyos roles personalizados quieres gestionar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: el ID del proyecto o de la organización cuyos roles personalizados quieres gestionar. Los IDs de proyecto son cadenas alfanuméricas, comomy-project
. Los IDs de organización son numéricos, como123456789012
.ROLE_VIEW
: opcional. Información que se debe incluir en los roles devueltos. Para incluir los permisos de los roles, asigna el valorFULL
a este campo. Para excluir los permisos de los roles, asigna el valorBASIC
a este campo. El valor predeterminado esBASIC
.PAGE_SIZE
: opcional. Número de roles que se incluirán en la respuesta. El valor predeterminado es 300 y el máximo es 1000. Si el número de roles es superior al tamaño de la página, la respuesta contiene un token de paginación que puedes usar para obtener la siguiente página de resultados.NEXT_PAGE_TOKEN
: opcional. El token de paginación devuelto en una respuesta anterior de este método. Si se especifica, la lista de roles empezará donde terminó la solicitud anterior.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.list
muestra todos los roles personalizados de un proyecto o una organización.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
GET https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles?view=ROLE_VIEW&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "roles": [ { "name": "projects/my-project/roles/customRole1", "title": "First Custom Role", "description": "Created on: 2020-06-01", "etag": "BwWiPg2fmDE=" }, { "name": "projects/my-project/roles/customRole2", "title": "Second Custom Role", "description": "Created on: 2020-06-07", "etag": "BwWiuX53Wi0=" } ] }
Eliminar un rol personalizado
Puedes eliminar cualquier rol personalizado de tu proyecto u organización.
Consola
En la Google Cloud consola, ve a la página Roles.
Selecciona el rol que quieras eliminar y haz clic en delete Eliminar en la parte superior de la página.
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.
-
Usa el comando
gcloud iam roles delete
para eliminar un rol personalizado:-
Para eliminar un rol personalizado a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles delete ROLE_ID --organization=ORGANIZATION_ID
-
Para eliminar un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles delete ROLE_ID --project=PROJECT_ID
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
.
El rol no se incluirá en
gcloud iam roles list
, a menos que se incluya la marca--show-deleted
. Los roles eliminados se indican con el bloquedeleted: true
en una respuestalist
, como se muestra a continuación:--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin ---
-
ROLE_NAME
: el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo,organizations/123456789012/roles/myCompanyAdmin
.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.delete
elimina un rol personalizado de un proyecto o una organización.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
DELETE https://iam.googleapis.com/v1/ROLE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la definición del rol que se ha eliminado.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=", "deleted": true }
Cuando se elimina un rol, los enlaces de rol que hagan referencia a él permanecen en tus políticas de permisos, pero no tienen ningún efecto. Puedes restaurar un rol en un plazo de 7 días. Durante este periodo de 7 días, la consola Google Cloud muestra que el rol se ha eliminado. También puedes enumerar los roles eliminados mediante programación, pero se omiten de forma predeterminada.
El rol se eliminará definitivamente entre 7 y 14 días después de la solicitud inicial para eliminarlo. En ese momento, el rol ya no se contabiliza en el límite de 300 roles personalizados por organización o 300 roles personalizados por proyecto.
Una vez que se haya programado la eliminación permanente del rol, Google Cloud inicia el proceso para eliminarlo de forma definitiva. Este proceso dura 30 días. Durante este periodo de 30 días, el rol y todos los enlaces asociados se eliminarán de forma permanente y no podrás crear un rol con el mismo ID.
Una vez que el rol se haya eliminado de forma definitiva (hasta 44 días después de la solicitud de eliminación inicial), podrás crear un nuevo rol con el mismo ID.
Restaurar un rol personalizado
Si restauras un rol, volverá a su estado anterior.
Los roles solo se pueden restaurar en un plazo de 7 días. Transcurridos 7 días, Google Cloud inicia el proceso para eliminar el rol permanentemente. Este proceso de eliminación permanente puede tardar hasta 30 días. Una vez que se haya eliminado un rol de forma permanente, se quitarán todos los enlaces de rol que hagan referencia a él y podrás crear un rol con el mismo ID.
Consola
En la Google Cloud consola, ve a la página Roles.
Busca el rol que quieras restaurar, haz clic en el icono Más al final de la fila y, a continuación, en Restaurar.
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.
-
Usa el comando
gcloud iam roles undelete
para restaurar un rol personalizado:-
Para restaurar un rol personalizado a nivel de organización, ejecuta el siguiente comando:
gcloud iam roles undelete ROLE_ID --organization=ORGANIZATION_ID
-
Para restaurar un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles undelete ROLE_ID --project=PROJECT_ID
A continuación se describe cada valor de marcador de posición:
-
ROLE_ID
es el nombre del rol, comomyCompanyAdmin
. -
ORGANIZATION_ID
es el ID numérico de la organización, como123456789012
. -
PROJECT_ID
es el nombre del proyecto, comomy-project
.
Ejemplos
En el siguiente ejemplo se muestra cómo restaurar un rol personalizado a nivel de organización:
gcloud iam roles undelete myCompanyAdmin --organization=123456789012
Si el rol se ha restaurado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo se muestra cómo restaurar un rol personalizado a nivel de proyecto:
gcloud iam roles undelete myCompanyAdmin --project=my-project
Si el rol se ha restaurado correctamente, el resultado del comando será similar al siguiente:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
-
ROLE_NAME
: el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo,organizations/123456789012/roles/myCompanyAdmin
.ETAG
: identificador de una versión del rol. Incluye este campo para evitar que se sobrescriban otros cambios de rol.
C++
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 C++ 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 la sección Antes de empezar.
C#
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 C# 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 la sección Antes de empezar.
Go
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 Go 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 la sección Antes de empezar.
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 la sección Antes de empezar.
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 la sección Antes de empezar.
REST
El método
roles.undelete
restaura un rol personalizado en un proyecto o una organización.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://iam.googleapis.com/v1/ROLE_NAME:undelete
Cuerpo JSON de la solicitud:
{ "etag": "ETAG" }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la definición del rol que se ha restaurado.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }
Siguientes pasos
- Consulta cómo asignar roles a las cuentas principales.
- Descubre cómo puedes usar las recomendaciones de roles para reducir los permisos de las entidades.
- Consulta información sobre las concesiones de roles condicionales, que conceden un rol solo si se cumplen condiciones específicas.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-20 (UTC).