En esta página, se describe cómo crear y administrar roles personalizados de la administración de identidades y accesos (IAM). La administración de roles incluye la modificación, la inhabilitación, la enumeración, la eliminación y la recuperación de roles.
Antes de comenzar
Habilita IAM API.
Configura la autenticación.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C++
Para usar las muestras de C++ de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
C#
Para usar las muestras de .NET de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Go
Para usar las muestras de Go de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Comprende la jerarquía de recursos de Google Cloud.
Funciones obligatorias
Para obtener los permisos que necesitas para crear y administrar roles personalizados, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Para administrar roles en un proyecto: administrador de roles (
roles/iam.roleAdmin
) en el proyecto en el que deseas administrar roles -
Para administrar roles de una organización: administrador de roles de la organización (
roles/iam.organizationRoleAdmin
) en la organización en la que deseas administrar roles
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Visualiza los permisos disponibles para los proyectos, las carpetas y las organizaciones
Puedes crear roles personalizados para una organización completa o para un proyecto específico de esa organización. Los permisos que están disponibles para los roles personalizados dependen de dónde crees el rol. Por ejemplo, si un permiso solo se puede usar a nivel de la organización, no puedes incluir ese permiso en un rol personalizado a nivel del proyecto.
A fin de verificar qué permisos están disponibles para los roles personalizados a nivel de proyecto y de la organización, puedes usar la CLI de gcloud o la API de Identity and Access Management a fin de obtener una lista de los permisos que están disponibles en una organización o un proyecto específicos. Por ejemplo, puedes obtener todos los permisos disponibles para los roles personalizados que se crean en el proyecto.
Es posible que algunos permisos no sean visibles para ti o no se puedan usar en un rol personalizado, incluso si son compatibles con roles personalizados. Por ejemplo, puede que el uso de un permiso no esté habilitado en roles personalizados si no habilitaste la API para el servicio.
Para obtener más información sobre los permisos que puedes agregar 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
a fin de obtener una lista de permisos disponibles para roles personalizados en una organización o proyecto específico. En la respuesta, se enumeran los permisos que puedes usar en los roles personalizados de esa organización o proyecto.A fin de enumerar los permisos que están disponibles en roles personalizados para una organización o un proyecto, ejecuta este comando:
gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"
Reemplaza
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 roles personalizados. Los permisos que no tienen un campo
customRolesSupportLevel
son totalmente compatibles.El comando
list-testable-permissions
puede mostrar 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 ---
-
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
permissions.queryTestablePermissions
permite enumerar los permisos disponibles en una organización o proyecto.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
FULL_RESOURCE_NAME
: Un URI que consiste en el nombre del servicio y la ruta al recurso. Para ver ejemplos, consulta Nombres completos de recursos.PAGE_SIZE
: Opcional. Es la cantidad de permisos que se incluirán en la respuesta. El valor predeterminado es 100 y el valor máximo es 1,000. Si la cantidad de permisos es mayor que el tamaño de la página, la respuesta contiene un token de paginación que puedes usar para consultar la siguiente página de resultados.NEXT_PAGE_TOKEN
: Opcional. Es el token de paginación que se mostró en una respuesta anterior de este método. Si se especifica, la lista de permisos que se pueden probar comenzará desde el punto en que finalizó la solicitud anterior.
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, expande 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" }
Obtén los metadatos del rol
Antes de crear un rol personalizado, es posible que desees obtener los metadatos para los roles predefinidos y personalizados. Los metadatos de rol incluyen el ID de rol y los permisos contenidos en el rol. Puedes ver los metadatos con la consola de Google Cloud o la API de IAM.
Para ver los metadatos de rol, usa uno de los siguientes métodos:
Console
En la consola de Google Cloud, ve a la página Roles.
Selecciona tu organización o proyecto de la lista desplegable en la parte superior de la página.
Selecciona la casilla de verificación de uno o más roles para ver los permisos de rol. El panel lateral derecho muestra los permisos contenidos en los roles, si los hay.
Los íconos de la columna Tipo (Type) indican si es un rol personalizado
o un rol predefinidoSi deseas buscar todas las funciones que incluyen un permiso específico, escribe el nombre del permiso en el cuadro Filtro en la parte superior de la lista de funciones.
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 de :
gcloud iam roles describe ROLE_ID
ROLE_ID
es el ID del rol. Los roles predefinidos incluyen el prefijorole
en sus ID, por ejemplo,roles/iam.roleViewer
.En el siguiente ejemplo, se demuestra el resultado 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 creada a nivel de la 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
Cada valor de marcador de posición se describe a continuació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 los prefijos comoprojects/
,organizations/
oroles/
. Por ejemplo,myCompanyAdmin
.
Para obtener más información, consulta la documentación de referencia de
gcloud iam roles describe
. -
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
roles.get
permite obtener la definición de una función.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
ROLE_NAME
: Es el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo:organizations/123456789012/roles/myCompanyAdmin
Método HTTP y URL:
GET https://iam.googleapis.com/v1/ROLE_NAME
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la definición de la función.
{ "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }
Crea un rol personalizado
Puedes crear un rol personalizado a nivel del proyecto o de la organización.
Un rol personalizado a nivel de la organización puede incluir cualquiera de los permisos de IAM compatibles con los roles personalizados. Un rol personalizado a nivel del proyecto puede contener cualquier permiso admitido, excepto los permisos que solo se pueden usar a nivel de la organización o carpeta, como
resourcemanager.organizations.get
. Si intentas agregar estos permisos a un rol personalizada a nivel de proyecto, verás un mensaje de error:Consola
Se muestra un mensaje que advierte que no es aplicable para roles personalizados a nivel de proyecto. De forma automática, se anulará la selección del permiso en la lista de permisos incluidos y podrás continuar con la creación del rol.
gcloud
Se muestra 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 realizar la operación.API de REST
Se muestra el siguiente mensaje de error:
Permission PERMISSION is not valid
, junto con un código de error HTTP 400 y el estado deINVALID_ARGUMENT
. El rol personalizado no se creará hasta que quites el permiso de la definición del rol y vuelvas a intentar realizar la operación.Cada rol personalizado puede contener hasta 3,000 permisos. Además, el tamaño total máximo del título, la descripción y los nombres de permisos para 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 roles 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 etapa de lanzamiento. La mayoría de las etapas de lanzamiento son informativas y te ayudan a realizar un seguimiento sobre cada rol a fin de determinar si está lista para el uso generalizado. Además, la etapa de lanzamiento
DISABLED
te permite inhabilitar un rol personalizado. Para obtener más información sobre las etapas de lanzamiento, consulta Ejecuta pruebas y realiza la implementación.Console
Algunos roles predefinidos contienen permisos obsoletos o permisos que, de otra manera, no están permitidos en los 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 nuevo rol personalizado desde cero:
En la consola de Google Cloud, 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 deseas crear un rol.
Haz clic en Crear rol.
Ingresa un Nombre, un Título, una Descripción y una Etapa de lanzamiento del rol para el rol. El nombre del rol no se puede cambiar después de que se crea.
Haz clic en Agregar permisos.
Selecciona los permisos que desees incluir en el rol y haz clic en Agregar permisos. Usa las listas desplegables Todos los servicios y Todos los tipos para filtrar y seleccionar permisos por servicios y tipos.
Crea un rol personalizado según un rol predefinido existente:
- En la consola de Google Cloud, ve a la página Roles.
- Selecciona la organización o el proyecto en el que deseas crear un rol.
- Selecciona los roles en los que deseas basar el nuevo rol personalizado.
- Haz clic en Crear rol de selección.
- Ingresa un Nombre, un Título, una Descripción y una Etapa de lanzamiento del rol para el rol. El nombre del rol no se puede cambiar después de que se crea.
- Desmarca los permisos que deseas excluir del rol.
- Haz clic en Agregar permisos para incluir cualquier permiso.
- 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 nuevos roles personalizados. Puede utilizar este comando de dos maneras:-
Con un archivo YAML que contiene la definición del rol.
-
Con marcas para especificar la definición del rol
Cuando crees un rol personalizado, debes especificar si se aplica a nivel de la organización o a nivel del proyecto mediante las marcas
--organization=ORGANIZATION_ID
o--project=PROJECT_ID
. En cada uno de los siguientes ejemplos, se crea un rol personalizado a nivel del proyecto.Un rol personalizado solo puede contener permisos que se admiten en los roles personalizados. Si el rol personalizado contiene otros permisos, el comando falla.
Para crear un rol personalizado con un archivo YAML, haz lo siguiente:
Cree un archivo YAML que contenga la definición de su función personalizada. El archivo debe estar estructurado de la siguiente manera:
title: ROLE_TITLE description: ROLE_DESCRIPTION stage: LAUNCH_STAGE includedPermissions: - PERMISSION_1 - PERMISSION_2
Cada valor de marcador de posición se describe a continuación:
-
ROLE_TITLE
es un título descriptivo para el rol, como"My Company Admin"
. -
ROLE_DESCRIPTION
es una descripción breve del rol, como"My custom role description"
. -
LAUNCH_STAGE
indica la etapa en la que se encuentra un rol en el ciclo de vida de lanzamiento, comoALPHA
,BETA
oGA
. -
PERMISSION_1
yPERMISSION_2
son permisos para incluir en el rol personalizado, comoiam.roles.get
. No puedes usar caracteres comodín (*
) en los nombres de permisos.
Guarda el archivo YAML y, luego, ejecuta uno de los siguientes comandos:
-
Para crear un rol personalizado a nivel de la 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
Cada valor de marcador de posición se describe a continuació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 de tu 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 la organización mediante el archivo YAML:
gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Si el rol se creó con éxito, el resultado del comando es 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 el archivo YAML:
gcloud iam roles create myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml
Si el rol se creó con éxito, el resultado del comando es 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 mediante marcas, haz lo siguiente:
Ejecuta uno de los siguientes comandos:
-
Para crear un rol personalizado a nivel de la 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
Cada valor de marcador de posición se describe a continuació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 descripción breve del rol, como"My custom role description."
. -
PERMISSIONS_LIST
contiene una lista de permisos separada por comas que deseas 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 etapa en la que se encuentra un rol en el ciclo de vida de lanzamiento, comoALPHA
,BETA
oGA
.
Ejemplos
En el siguiente ejemplo, se muestra cómo crear un rol a nivel de la 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 creó con éxito, el resultado del comando es 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 del 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 creó con éxito, el resultado del comando es 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
-
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
roles.create
permite crear una función personalizada en un proyecto o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
RESOURCE_TYPE
: Es el tipo de recurso cuyos roles personalizados quieres administrar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: es el ID del proyecto o de la organización cuyos roles personalizados deseas administrar. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los ID de la organización son numéricos, como123456789012
.ROLE_ID
: Es el nombre del rol, comomyCompanyAdmin
.ROLE_TITLE
: Es el título legible para el rol. Por ejemplo,My Company Admin
.ROLE_DESCRIPTION
: Es una descripción para el rol. Por ejemplo,"The company admin role allows company admins to access important resources"
.-
PERMISSION_1
yPERMISSION_2
: Son los permisos que deseas 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 se admiten en los roles personalizados. Si el rol personalizado contiene otros permisos, la solicitud falla.
LAUNCH_STAGE
: Es la etapa de lanzamiento actual del rol. Este campo puede contener uno de los siguientes valores:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
oDISABLED
.
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, expande una de estas opciones:
La respuesta contiene la función que creaste.
{ "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }
Edita un rol personalizado existente
Un patrón común para actualizar los metadatos de un recurso, como un rol personalizado, es el patrón lectura-modificación-escritura. Con este patrón, se lee el estado actual del rol, se actualizan los datos de forma local y, luego, se envían los datos modificados para que se escriban.
El patrón lectura-modificación-escritura puede causar un conflicto si dos o más procesos independientes intentan la secuencia en simultáneo. Por ejemplo, si dos propietarios de un proyecto intentan realizar cambios conflictivos en un rol al mismo tiempo, algunos cambios podrían fallar. IAM resuelve este problema mediante una propiedad
etag
en los roles personalizados. Esta propiedad se usa para verificar si el rol personalizado cambió desde la última solicitud. Cuando realizas una solicitud a IAM con un valor ETag, IAM compara ese valor en la solicitud con el valor ETag existente asociado con el rol personalizado. Solo escribe el cambio si los valores ETag coinciden.Cuando actualices un rol, primero debes obtenerlo con
roles.get()
, actualizarlo y, luego, escribir el rol actualizado conroles.patch()
. Usa el valor de Etag cuando establezcas el rol solo si el rol correspondiente enroles.get()
contiene un valor de Etag.Console
En la consola de Google Cloud, 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 contiene el rol que deseas 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 Etapa de lanzamiento del rol del rol.
Para actualizar los permisos del rol, haz lo siguiente:
- Haz clic en Agregar permisos para agregar permisos nuevos al rol.
- Desmarca permisos para quitarlos del rol.
Haz clic en Actualizar para guardar la función editada.
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. Puede utilizar este comando de dos maneras:-
Con un archivo YAML que contiene la definición del rol actualizado
-
Con marcas para especificar la definición de la función actualizada
Cuando actualices un rol personalizado, debes especificar si se aplica a nivel de la organización o a nivel del proyecto mediante las marcas
--organization=ORGANIZATION_ID
o--project=PROJECT_ID
. En cada uno de los siguientes ejemplos, se crea un rol personalizado a nivel del proyecto.Para actualizar un rol personalizado con un archivo YAML, haz lo siguiente:
Ejecuta uno de los siguientes comandos para obtener la definición actual del rol:
-
Para obtener la definición de un rol personalizado a nivel de la organización, ejecuta el siguiente comando:
gcloud iam roles describe ROLE_ID --organization=ORGANIZATION_ID
-
Para obtener la definición de rol de un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles describe ROLE_ID --project=PROJECT_ID
Cada valor de marcador de posición se describe a continuación:
-
ROLE_ID
es el nombre del rol que quieres 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
muestra la definición del rol y, además, incluye un valor deetag
que identifica de forma única la versión actual del rol. El valor deetag
debe proporcionarse en la definición del rol actualizado para garantizar que no se reemplace ningún cambio de rol simultáneo.El comando
describe
muestra el siguiente resultado:description: ROLE_DESCRIPTION etag: ETAG includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME stage: LAUNCH_STAGE title: ROLE_TITLE
Cada valor de marcador de posición se describe a continuación:
-
ROLE_DESCRIPTION
es una descripción breve 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 para 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 etapa en la que se encuentra un rol en el ciclo de vida de 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 de rol de salida en un archivo YAML o actualiza el archivo original YAML con el valor de salida de
etag
.Considera el siguiente archivo YAML de ejemplo, que contiene la salida del comando
describe
para un rol a nivel de proyecto y agrega 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, luego, ejecuta uno de los siguientes comandos:
-
Para actualizar un rol a nivel de la 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
Cada valor de marcador de posición se describe a continuación:
-
ROLE_ID
es el nombre del rol que quieres 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 de acceso a la ubicación de tu 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 la 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
Cada valor de marcador de posición se describe a continuación:
-
ROLE_ID
es el nombre del rol que quieres 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 de acceso a la ubicación de tu 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 la organización mediante un archivo YAML:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml
Si el rol se actualizó con éxito, el resultado del comando es 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 actualizó con éxito, el resultado del comando es 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, haz lo siguiente:
Cada parte de la definición de una función se puede actualizar con la marca correspondiente. Consulta el tema
gcloud iam roles update
para obtener una lista de todas las marcas posibles.Puede usar las siguientes marcas para agregar o quitar permisos:
-
--add-permissions=PERMISSIONS
: Agrega al rol uno o más permisos separados por comas. No puedes usar caracteres comodín (*
) en los nombres de permisos. -
--remove-permissions=PERMISSIONS
: Quita del rol uno o más permisos separados por comas. No puedes usar caracteres comodín (*
) en los nombres de permisos.
De manera alternativa, puedes especificar los permisos nuevos mediante la marca
--permissions=PERMISSIONS
y proporcionar una lista de permisos separados por comas para reemplazar la lista existente.Para actualizar otras partes de la definición del rol, ejecuta uno de los siguientes comandos:
-
Para actualizar un rol a nivel de la 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
Cada valor de marcador de posición se describe a continuació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 descripción breve del rol, como"My custom role description."
. -
LAUNCH_STAGE
indica la etapa en la que se encuentra un rol en el ciclo de vida de lanzamiento, comoALPHA
,BETA
oGA
.
Ejemplos
En el siguiente ejemplo, se muestra cómo agregar permisos a un rol a nivel de la organización mediante marcas:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions="storage.buckets.get,storage.buckets.list"
Si el rol se actualizó con éxito, el resultado del comando es similar al siguiente:
description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organization/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo, se muestra cómo agregar 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 actualizó con éxito, el resultado del comando es 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
-
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
roles.patch
permite actualizar una función personalizada en un proyecto o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
Obligatorio:
RESOURCE_TYPE
: Es el tipo de recurso cuyos roles personalizados quieres administrar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: es el ID del proyecto o de la organización cuyos roles personalizados deseas administrar. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los ID de la organización son numéricos, como123456789012
.ROLE_NAME
: Es el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo:organizations/123456789012/roles/myCompanyAdmin
Recomendado:
ETAG
: Es un identificador para una versión del rol. Incluye este campo para evitar reemplazar otros cambios de roles.
Opcional (define uno o más de los siguientes valores):
ROLE_TITLE
: Es el título legible para el rol. Por ejemplo,My Company Admin
.ROLE_DESCRIPTION
: Es una descripción para el rol. Por ejemplo,"The company admin role allows company admins to access important resources"
.PERMISSION_1
yPERMISSION_2
: Son los permisos que deseas incluir en el rol. Por ejemplo,storage.objects.update
. No puedes usar caracteres comodín (*
) en los nombres de permisos.LAUNCH_STAGE
: Es la etapa de lanzamiento actual del rol. Este campo puede contener uno de los siguientes valores:EAP
,ALPHA
,BETA
,GA
,DEPRECATED
oDISABLED
.
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, expande una de estas opciones:
La respuesta contiene una definición de función abreviada que incluye el nombre de la función, los campos que actualizaste y un ETag que identifica la versión actual de la función.
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }
Inhabilita un rol personalizado
Para inhabilitar un rol personalizado, cambia su etapa de lanzamiento a
DISABLED
. Cuando un rol está inhabilitado, todas las vinculaciones de roles relacionadas con él se desactivan, lo que significa que otorgar este rol a un usuario no tendrá efecto alguno.Console
En la consola de Google Cloud, ve a la página Roles.
Haz clic en la lista desplegable "Seleccionar un proyecto" en la parte superior de la página.
Selecciona tu organización o proyecto.
Selecciona una función personalizada 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.
-
Si quieres usar el comando
gcloud iam roles update
para inhabilitar un rol personalizado, establece su etapa de lanzamiento enDISABLED
.Como se describe en la pestaña gcloud de la sección Edita un rol personalizado existente, puedes actualizar un rol personalizado existente mediante los siguientes dos métodos:
-
Con un archivo YAML que contiene la definición del rol actualizado
-
Con marcas para especificar la definición de la función actualizada
La forma más fácil de inhabilitar un rol personalizado existente es usar la marca
--stage
y establecerla enDISABLED
. Ejecuta uno de los siguientes comandos:-
Para inhabilitar un rol a nivel de la 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
Cada valor de marcador de posición se describe a continuació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 la organización:
gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLED
Si el rol se actualizó con éxito, el resultado del comando es similar al siguiente:
description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organization/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin
En el siguiente ejemplo, se muestra cómo inhabilitar un rol a nivel del proyecto:
gcloud iam roles update myCompanyAdmin --project=my-project \ --stage=DISABLED
Si el rol se actualizó con éxito, el resultado del comando es 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
-
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
Actualiza el campo
stage
del rol aDISABLED
.Python
Actualiza el campo
stage
del rol aDISABLED
.REST
El método
roles.patch
permite cambiar la etapa de lanzamiento de una función personalizada aDISABLED
para inhabilitarla.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
RESOURCE_TYPE
: Es el tipo de recurso cuyos roles personalizados quieres administrar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: es el ID del proyecto o de la organización cuyos roles personalizados deseas administrar. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los ID de la organización son numéricos, como123456789012
.ROLE_NAME
: Es el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo:organizations/123456789012/roles/myCompanyAdmin
ETAG
: Es un identificador para una versión de la función. Incluye este campo para evitar reemplazar otros cambios de roles.
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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }
Enumera roles
Puedes enumerar todos los roles personalizados creados en tu organización o proyecto.
Console
En la consola de Google Cloud, ve a la página Roles.
Todos los roles personalizados para la organización o el proyecto que seleccionaste se enumeran en 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 list
a fin de enumerar los roles personalizados y predefinidos de una organización o un proyecto.-
Para enumerar los roles personalizados a nivel de la 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
Cada valor de marcador de posición se describe a continuació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 que se borraron, también puedes especificar la marca
--show-deleted
.Ejecuta el siguiente comando para enumerar las funciones predefinidas:
gcloud iam roles list
-
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
roles.list
permite enumerar todas las funciones personalizadas de un proyecto o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
RESOURCE_TYPE
: Es el tipo de recurso cuyos roles personalizados quieres administrar. Usa el valorprojects
oorganizations
.RESOURCE_ID
: es el ID del proyecto o de la organización cuyos roles personalizados deseas administrar. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los ID de la organización son numéricos, como123456789012
.ROLE_VIEW
: Opcional Es la información que se debe incluir para los roles que se muestran. Para incluir los permisos de los roles, establece este campo enFULL
. Para excluir los permisos de los roles, establece este campo enBASIC
. El valor predeterminado esBASIC
.PAGE_SIZE
: Opcional. Es la cantidad de roles que se deben incluir en la respuesta. El valor predeterminado es 300 y el valor máximo es 1,000. Si la cantidad de roles es mayor que el tamaño de la página, la respuesta contiene un token de paginación que puedes usar para consultar la siguiente página de resultados.NEXT_PAGE_TOKEN
: Opcional. Es el token de paginación que se mostró en una respuesta anterior de este método. Si se especifica, la lista de roles comenzará desde el punto en que finalizó la solicitud anterior.
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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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=" } ] }
Borra un rol personalizado
Puedes borrar cualquier rol personalizado en tu organización o proyecto.
Console
En la consola de Google Cloud, ve a la página Roles.
Selecciona la función que deseas borrar y haz clic en delete Borrar 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 borrar un rol personalizado.-
Para borrar un rol personalizado a nivel de la organización, ejecuta el siguiente comando:
gcloud iam roles delete ROLE_ID --organization=ORGANIZATION_ID
-
Para borrar un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles delete ROLE_ID --project=PROJECT_ID
Cada valor de marcador de posición se describe a continuació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 la
gcloud iam roles list
, a menos que se incluya la marca--show-deleted
. Los roles que se borraron se indican mediante el bloquedeleted: true
en una respuesta de lalist
, como la que se muestra a continuación:--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin ---
-
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
roles.delete
permite borrar una función personalizada en un proyecto o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
ROLE_NAME
: Es el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo:organizations/123456789012/roles/myCompanyAdmin
Método HTTP y URL:
DELETE https://iam.googleapis.com/v1/ROLE_NAME
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la definición de la función que se borró.
{ "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 borra un rol, todas las vinculaciones de roles que hagan referencia a él permanecen en las políticas de permisos, pero no tienen efecto. Puedes recuperar un rol en un plazo de 7 días. Durante ese período de 7 días, la consola de Google Cloud muestra que se borró el rol. También puedes enumerar los roles que se borraron de manera programática, pero se omiten de forma predeterminada.
Después de 7 a 14 días, el rol está programado para borrarse de forma definitiva. En este punto, el rol ya no se tiene en cuenta para el límite de 300 roles personalizados por organización o 300 roles personalizados por proyecto.
El proceso de eliminación permanente demora 30 días. Durante el período de 30 días, el rol y todos los enlaces asociados se quitan de forma permanente, y no puedes crear un rol nuevo con el mismo ID de rol.
Una vez que el rol se haya borrado de forma definitiva, hasta 44 días después de la solicitud de eliminación inicial, puedes crear un rol nuevo con el mismo ID de rol.
Recupera una función personalizada
Cuando recuperas un rol, este vuelve a su estado anterior.
Los roles solo se pueden recuperar en un plazo de 7 días. Después de 7 días, el rol se puede borrar de forma definitiva en cualquier momento, y se quitan todas las vinculaciones de roles que hacen referencia al rol.
Console
En la consola de Google Cloud, ve a la página Roles.
Encuentra la función que deseas recuperar, haz clic en el ícono más al final de la fila y luego en Recuperar.
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 recuperar un rol personalizado.-
Para recuperar un rol personalizado a nivel de la organización, ejecuta el siguiente comando:
gcloud iam roles undelete ROLE_ID --organization=ORGANIZATION_ID
-
Para recuperar un rol personalizado a nivel de proyecto, ejecuta el siguiente comando:
gcloud iam roles undelete ROLE_ID --project=PROJECT_ID
Cada valor de marcador de posición se describe a continuació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 recuperar un rol personalizado a nivel de la organización:
gcloud iam roles undelete myCompanyAdmin --organization=123456789012
Si el rol se recuperó con éxito, el resultado del comando es similar al siguiente:
description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organization/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin
En el siguiente ejemplo, se muestra cómo recuperar un rol personalizado a nivel del proyecto:
gcloud iam roles undelete myCompanyAdmin --project=my-project
Si el rol se recuperó con éxito, el resultado del comando es 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
-
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C++.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
REST
El método
roles.undelete
permite recuperar una función personalizada en un proyecto o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
ROLE_NAME
: Es el nombre completo del rol, incluidos los prefijosorganizations/
,projects/
oroles/
. Por ejemplo:organizations/123456789012/roles/myCompanyAdmin
ETAG
: Es un identificador para una versión de la función. Incluye este campo para evitar reemplazar otros cambios de roles.
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, expande una de estas opciones:
La respuesta contiene la definición de la función que se recuperó.
{ "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }
¿Qué sigue?
- Descubre cómo otorgar roles a los principales.
- Explora cómo puedes usar las recomendaciones de roles para reducir los permisos de los principales.
- Obtén información sobre los otorgamientos de roles condicionales, que otorgan un rol solo si se cumplen condiciones específicas.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-08-16 (UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }]