En esta página se describe cómo crear y gestionar roles personalizados en Google Distributed Cloud (GDC) aislado. Los roles personalizados te permiten gestionar el acceso más allá de los conjuntos de permisos estándar disponibles en los roles predefinidos, lo que te permite configurar los permisos para que se ajusten a tus criterios específicos.
Los roles personalizados siguen el principio de mínimos accesos y son útiles para conceder el acceso mínimo necesario para realizar tareas sensibles, lo que reduce los riesgos de seguridad y evita los conflictos de intereses.
Crear un rol personalizado te permite hacer lo siguiente:
- Define el ámbito del acceso: elige si quieres aplicar los permisos en toda tu organización, en todos los proyectos o solo en algunos.
- Adaptar el acceso granular: selecciona uno o varios permisos ya disponibles a través de roles predefinidos para personalizar el acceso a tareas o responsabilidades específicas.
Esta página está dirigida a audiencias que forman parte del grupo de administradores de la plataforma, como administradores de TI o ingenieros de seguridad, que quieren gestionar de forma segura el acceso a los recursos de la organización. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.
Para obtener más información sobre los roles, consulta las descripciones de los roles predefinidos y las definiciones de los roles.
Antes de empezar
El acceso a los roles personalizados se gestiona tanto a nivel de organización como de proyecto. El acceso solo se puede conceder en la misma organización o proyecto en el que se creó el rol personalizado.
Para tener los permisos necesarios para crear y gestionar roles personalizados, pide a tu administrador que te asigne uno de los siguientes roles:
Administrador de la organización con rol personalizado: crea y gestiona roles personalizados en una organización o un proyecto. Este rol incluye la capacidad de actualizar, enumerar, ver, inhabilitar y eliminar roles personalizados.
Los usuarios administradores de gestión de identidades y accesos de la organización pueden conceder este rol.
Administrador de proyectos con rol personalizado: crea y gestiona roles personalizados en un proyecto. Este rol incluye la capacidad de actualizar, enumerar, ver, inhabilitar y eliminar roles personalizados.
Los usuarios con el rol Administrador de IAM de proyecto pueden conceder este rol.
Consulta más información sobre cómo asignar permisos de rol a organizaciones y proyectos.
Ver los roles y sus permisos
Un rol personalizado se compone de un grupo de permisos que puedes asignar a los usuarios. Para crear un rol personalizado, selecciona permisos de roles predefinidos y combínalos para que se ajusten a tus necesidades. Los permisos que puedes incluir en un rol personalizado dependen del ámbito en el que crees el rol: organización o proyecto.
En esta sección se explica cómo enumerar los roles disponibles (tanto predefinidos como personalizados) y ver los permisos que incluyen. Puede usar esta información para hacer lo siguiente:
- Identificar permisos para nuevas funciones personalizadas: descubre las cadenas de permisos específicas que se necesitan para la marca
--permissionsal usar la CLI de gdcloud para crear una función personalizada. - Revisar los roles: examina los permisos asociados a cualquier rol predefinido o personalizado en el ámbito seleccionado (organización o proyecto).
Lista los roles y examina sus permisos mediante la consola de GDC o la CLI de gdcloud:
Consola
- Inicia sesión en la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que quieras ver los roles.
En el menú de navegación, haz clic en Identidad y acceso > Roles.
Aparecerá una lista de los roles predefinidos y personalizados disponibles.
Haga clic en el nombre de un rol para ver sus detalles, incluidos los permisos asignados.
Los permisos que se muestran en los roles predefinidos del ámbito actual (organización o proyecto) son los que se pueden incluir en un nuevo rol personalizado.
gdcloud
- Asegúrate de que tienes instalada la CLI de gdcloud. Para obtener más información, consulta la página Información general sobre la herramienta de línea de comandos gcloud.
Lista de los roles disponibles:
gdcloud iam roles list ROLE_TYPE \ --project=PROJECTHaz los cambios siguientes:
ROLE_TYPE: el tipo de roles que se van a enumerar. Los valores válidos sonpredefined,customoall.PROJECT: el espacio de nombres del proyecto en el que quieres ver los roles. Omite la marca--projecten los roles con ámbito de organización.
Para ver los permisos específicos de un rol, sigue estos pasos:
gdcloud iam roles describe ROLE_NAME \ --project=PROJECTHaz los cambios siguientes:
ROLE_NAME: nombre del recurso de Kubernetes del rol.PROJECT: el espacio de nombres del proyecto en el que quieres ver los permisos de los roles. Omite la marca--projecten los roles con ámbito de organización.
Consulta gdcloud iam roles list y gdcloud iam roles describe para obtener más información sobre los comandos y ejemplos de uso.
Crear una función personalizada
Crea un rol personalizado agrupando permisos de roles predefinidos. Los roles personalizados heredan las funciones multizona de gestión de identidades y accesos de los roles predefinidos en los que se basan. Una vez que hayas creado un rol personalizado, podrás conceder acceso a los usuarios.
Crea un rol personalizado con la consola de GDC, la CLI de gdcloud o la API:
Consola
- Inicia sesión en la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que quieras crear un rol personalizado.
- En el menú de navegación, haz clic en Identidad y acceso > Roles.
- Haz clic en Crear rol personalizado.
- En el campo Título, introduce el título del rol personalizado.
- En el campo Descripción, describe el propósito del rol personalizado.
En el campo ID, introduce el identificador único de tu rol personalizado.
Los IDs de rol personalizado pueden tener hasta 10 caracteres alfanuméricos en minúscula y no se pueden cambiar después de crear el rol.
Selecciona una Fase de lanzamiento.
Selecciona el ámbito del rol personalizado.
Si seleccionas Organización, el rol personalizado se aplicará a todos los recursos de la organización. Si seleccionas Proyectos, el rol personalizado se aplicará a todos los proyectos actuales y futuros de la organización. Puedes seleccionar Limitar a los proyectos seleccionados si quieres especificar a qué proyectos se puede asignar el rol personalizado.
Haz clic en Añadir permisos.
Marca la casilla situada junto a uno o varios de los permisos admitidos que quieras asignar a tu rol personalizado.
Los permisos disponibles se limitan al ámbito seleccionado. Si cambias el ámbito después de añadir permisos, debes confirmar que se restablezcan todos los permisos asignados anteriormente.
Haz clic en Guardar.
Haz clic en Crear.
El nuevo rol personalizado aparecerá en la página Roles.
gdcloud
- Asegúrate de que tienes instalada la CLI de gdcloud. Para obtener más información, consulta la página Información general sobre la herramienta de línea de comandos gcloud.
Para crear un rol personalizado, sigue estos pasos:
gdcloud iam roles create ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGEHaz los cambios siguientes:
ROLE_ID: identificador único de tu rol personalizado. Los IDs de roles personalizados pueden tener hasta 10 caracteres alfanuméricos en minúscula y pueden contener guiones. Los IDs de los roles personalizados no se pueden cambiar después de crear el rol.TITLE: título descriptivo del rol personalizado.DESCRIPTION: una descripción de la finalidad del rol personalizado.PERMISSIONS: lista separada por comas de los permisos que quieres conceder al rol personalizado.Para obtener información sobre cómo encontrar las cadenas de permisos correctas, consulta el artículo Ver roles y sus permisos. Cada cadena de permiso debe tener el formato que se indica en gdcloud iam roles create, donde
iamRoleNamees el nombre del recurso de Kubernetes del rol predefinido que contiene el permiso. Puedes encontrar el nombre de recurso de Kubernetes de un rol en la página Definiciones de rol o con el comando gdcloud iam roles list.LAUNCH_STAGE: opcional. La fase de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. Si se omite esta marca, se asigna el valorALPHAde forma predeterminada.
Consulta gdcloud iam roles create para ver la lista completa de marcas obligatorias y opcionales, así como ejemplos de uso.
También puedes definir el rol personalizado en un archivo YAML y usar la marca
--file:gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATHSustituye
YAML_FILE_PATHpor la ruta del archivo YAML que contiene las marcas obligatorias y opcionales. Si usas la marca--file, se ignorarán todas las demás marcas, como--title,--descriptiony--permissions.
API
Crea y aplica el CustomRole recurso personalizado con kubectl:
kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
name: ROLE_NAME
namespace: NAMESPACE
spec:
metadata:
description: DESCRIPTION
id: ROLE_ID
scope: SCOPE
stage: LAUNCH_STAGE
title: TITLE
RULES_TYPE:
- RULES_LIST
EOF
Haz los cambios siguientes:
ROLE_NAME: nombre del recurso de Kubernetes del rol.NAMESPACE: espacio de nombres del rol personalizado. Usaplatformpara los roles con ámbito de organización y para varios proyectos. Usa el espacio de nombres del proyecto (por ejemplo,my-project) para los roles de ámbito de proyecto y los proyectos únicos.DESCRIPTION: una descripción de la finalidad del rol personalizado.ROLE_ID: identificador único de tu rol personalizado. Los IDs de roles personalizados pueden tener hasta 10 caracteres alfanuméricos en minúscula y pueden contener guiones. Los IDs de los roles personalizados no se pueden cambiar después de crear el rol.SCOPE: usaorganizationpara los roles creados en el espacio de nombresplatform. Usaprojectpara los roles creados en un espacio de nombres de proyecto.LAUNCH_STAGE: opcional. La fase de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. Si se omite este campo, se asigna el valorALPHAde forma predeterminada.TITLE: título descriptivo del rol personalizado.RULES_TYPE: este campo define el ámbito de las reglas. Sustitúyalo porglobalRules(para los permisos de la API global) o porzonalRules(para los permisos de la API zonal). No puedes usar ambos en el mismo recursoCustomRole.RULES_LIST: lista indentada de objetos de reglas RBAC de Kubernetes estándar. Cada objeto de la lista concede permisos. Para determinar los valores correctos deapiGroups,resourcesyverbs, consulta los permisos de los roles predefinidos mediantegdcloud iam roles describe, tal como se muestra en Ver roles y sus permisos.En el siguiente ejemplo se muestra la estructura de un solo elemento dentro de un objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]Puede incluir varios elementos en la lista, cada uno de los cuales define un conjunto de permisos diferente.
Gestionar un rol personalizado
Eres responsable de gestionar el ciclo de vida de tus roles personalizados. Cuando Distributed Cloud añade nuevos permisos, funciones o servicios, actualiza los roles predefinidos. Si se elimina un rol predefinido o se quitan permisos de un rol predefinido, los roles personalizados que dependan de esos permisos dejarán de funcionar. Debes monitorizar estas actualizaciones y ajustar manualmente los roles personalizados afectados para asegurarte de que sigan funcionando correctamente.
Puedes editar, inhabilitar o eliminar un rol personalizado, pero no puedes editar, inhabilitar ni eliminar un rol predefinido. Para ver una lista de todos los roles y sus permisos específicos, consulta Ver roles y sus permisos.
Editar un rol personalizado
Para editar un rol personalizado, usa la consola de GDC, la CLI de gdcloud o la API:
Consola
- Inicia sesión en la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que quieras editar un rol personalizado.
- En el menú de navegación, haz clic en Identidad y acceso > Roles.
- En la lista de roles, selecciona el rol personalizado que quieras editar.
- En la página de detalles del rol personalizado, haz clic en Editar.
- Edita los detalles del rol personalizado, como el título, la descripción, el ID o la fase de lanzamiento.
- Si quiere, puede añadir o quitar permisos asignados.
- Haga clic en Añadir permisos para seleccionar uno de la lista de permisos disponibles.
- Para quitar un permiso asignado, selecciona la casilla situada junto al permiso que quieras quitar y haz clic en Quitar.
Haz clic en Guardar.
Aparecerá un mensaje para confirmar que has guardado los cambios.
gdcloud
- Asegúrate de que tienes instalada la CLI de gdcloud. Para obtener más información, consulta la página Información general sobre la herramienta de línea de comandos gcloud.
Para editar un rol personalizado, sigue estos pasos:
gdcloud iam roles update ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGEHaz los cambios siguientes:
ROLE_ID: identificador único de tu rol personalizado.TITLE: título descriptivo del rol personalizado.DESCRIPTION: una descripción de la finalidad del rol personalizado.PERMISSIONS: lista separada por comas de los permisos que quieres conceder al rol personalizado.Para obtener información sobre cómo encontrar las cadenas de permisos correctas, consulta el artículo Ver roles y sus permisos. Cada cadena de permiso debe tener el formato que se indica en gdcloud iam roles create, donde
iamRoleNamees el nombre del recurso de Kubernetes del rol predefinido que contiene el permiso. Puedes encontrar el nombre de recurso de Kubernetes de un rol en la página Definiciones de rol o con el comando gdcloud iam roles list.LAUNCH_STAGE: opcional. La fase de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. Si se omite esta marca, se asigna el valorALPHAde forma predeterminada.
Consulta la actualización de los roles de IAM de Google Cloud para ver una lista completa de las marcas obligatorias y opcionales, así como ejemplos de uso.
También puedes actualizar el rol personalizado en su archivo YAML y usar la marca
--file:gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATHSustituye
YAML_FILE_PATHpor la ruta al archivo YAML que contiene las marcas obligatorias y opcionales actualizadas. Si usas la marca--file, se ignorarán todas las demás marcas, como--title,--descriptiony--permissions.
API
Edita un recurso personalizado de CustomRole con kubectl:
kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
name: ROLE_NAME
namespace: NAMESPACE
spec:
metadata:
description: DESCRIPTION
id: ROLE_ID
scope: SCOPE
stage: LAUNCH_STAGE
title: TITLE
RULES_TYPE:
- RULES_LIST
EOF
Haz los cambios siguientes:
ROLE_NAME: nombre del recurso de Kubernetes del rol.NAMESPACE: espacio de nombres del rol personalizado. Usaplatformpara los roles con ámbito de organización y para varios proyectos. Usa el espacio de nombres del proyecto (por ejemplo,my-project) para los roles de ámbito de proyecto y los proyectos únicos.DESCRIPTION: una descripción de la finalidad del rol personalizado.ROLE_ID: identificador único de tu rol personalizado. Los IDs de roles personalizados pueden tener hasta 10 caracteres alfanuméricos en minúscula y pueden contener guiones. Los IDs de los roles personalizados no se pueden cambiar después de crear el rol.SCOPE: usaorganizationpara los roles creados en el espacio de nombresplatform. Usaprojectpara los roles creados en un espacio de nombres de proyecto.LAUNCH_STAGE: opcional. La fase de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. Si se omite este campo, se asigna el valorALPHAde forma predeterminada.TITLE: título descriptivo del rol personalizado.RULES_TYPE: este campo define el ámbito de las reglas. Sustitúyalo porglobalRules(para los permisos de la API global) o porzonalRules(para los permisos de la API zonal). No puedes usar ambos en el mismo recursoCustomRole.RULES_LIST: lista indentada de objetos de reglas RBAC de Kubernetes estándar. Cada objeto de la lista concede permisos. Para determinar los valores correctos deapiGroups,resourcesyverbs, consulta los permisos de los roles predefinidos mediantegdcloud iam roles describe, tal como se muestra en Ver roles y sus permisos.En el siguiente ejemplo se muestra la estructura de un solo elemento dentro de un objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]Puede incluir varios elementos en la lista, cada uno de los cuales define un conjunto de permisos diferente.
Inhabilitar un rol personalizado
Los roles personalizados inhabilitados permanecen en tu lista de roles y se pueden seguir asignando a usuarios, pero no tienen ningún efecto. Puedes volver a habilitar el rol personalizado en cualquier momento.
Inhabilita un rol personalizado mediante la consola de GDC, la CLI de gdcloud o la API:
Consola
- Inicia sesión en la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que quieras inhabilitar un rol personalizado.
- En el menú de navegación, haz clic en Identidad y acceso > Roles.
- En la lista de roles, selecciona el rol personalizado que quieras inhabilitar.
- En la página de detalles del rol personalizado, haz clic en Inhabilitar.
gdcloud
- Asegúrate de que tienes instalada la CLI de gdcloud. Para obtener más información, consulta la página Información general sobre la herramienta de línea de comandos gcloud.
Para inhabilitar un rol personalizado, sigue estos pasos:
gdcloud iam roles update ROLE_ID --stage=DISABLEDHaz los cambios siguientes:
ROLE_ID: identificador único de tu rol personalizado.
Consulta más información en gdcloud iam roles update.
API
Inhabilita un recurso personalizado CustomRole cambiando el campo stage a DISABLED. Asegúrate de que el resto de los campos coincidan con los valores actuales del rol personalizado que quieras inhabilitar.
kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
name: ROLE_NAME
namespace: NAMESPACE
spec:
metadata:
description: DESCRIPTION
id: ROLE_ID
scope: SCOPE
stage: DISABLED
title: TITLE
RULES_TYPE:
- RULES_LIST
EOF
Haz los cambios siguientes:
ROLE_NAME: nombre del recurso de Kubernetes del rol.NAMESPACE: espacio de nombres del rol personalizado. Usaplatformpara los roles con ámbito de organización y para varios proyectos. Usa el espacio de nombres del proyecto (por ejemplo,my-project) para los roles de ámbito de proyecto y los proyectos únicos.DESCRIPTION: una descripción de la finalidad del rol personalizado.ROLE_ID: identificador único de tu rol personalizado. Los IDs de roles personalizados pueden tener hasta 10 caracteres alfanuméricos en minúscula y pueden contener guiones. Los IDs de los roles personalizados no se pueden cambiar después de crear el rol.SCOPE: usaorganizationpara los roles creados en el espacio de nombresplatform. Usaprojectpara los roles creados en un espacio de nombres de proyecto.TITLE: título descriptivo del rol personalizado.RULES_TYPE: este campo define el ámbito de las reglas. Sustitúyalo porglobalRules(para los permisos de la API global) o porzonalRules(para los permisos de la API zonal). No puedes usar ambos en el mismo recursoCustomRole.RULES_LIST: lista indentada de objetos de reglas RBAC de Kubernetes estándar. Cada objeto de la lista concede permisos. Para determinar los valores correctos deapiGroups,resourcesyverbs, consulta los permisos de los roles predefinidos mediantegdcloud iam roles describe, tal como se muestra en Ver roles y sus permisos.En el siguiente ejemplo se muestra la estructura de un solo elemento dentro de un objeto
globalRules:globalRules: - apiGroups: ["storage.global.gdc.goog"] resources: ["buckettypes"] verbs: ["get", "list", "watch"]Puede incluir varios elementos en la lista, cada uno de los cuales define un conjunto de permisos diferente.
Eliminar un rol personalizado
Los roles eliminados se quitan del sistema de forma permanente. Sin embargo, puedes crear un rol con el mismo nombre.
Para eliminar un rol personalizado con la CLI de gdcloud o la API, sigue estos pasos:
gdcloud
- Asegúrate de que tienes instalada la CLI de gdcloud. Para obtener más información, consulta la página Información general sobre la herramienta de línea de comandos gcloud.
Para eliminar un rol personalizado, sigue estos pasos:
gdcloud iam roles delete ROLE_ID --project=PROJECTHaz los cambios siguientes:
ROLE_ID: identificador único de tu rol personalizado.PROJECT: el espacio de nombres del proyecto en el que quieres eliminar el rol personalizado. Si no se especifica la marca--project, se elimina el rol con ámbito de organización.
Consulta gdcloud iam roles delete para obtener más información y ejemplos de uso.
API
Eliminar un recurso personalizado de CustomRole con kubectl:
kubectl delete -f CUSTOM_ROLE
Sustituye CUSTOM_ROLE por la ruta a tu archivo YAML CustomRole. Es el mismo archivo que usaste para crear o actualizar el rol.