En esta página, se describe cómo crear y administrar roles personalizados en Google Distributed Cloud (GDC) aislado. Los roles personalizados te permiten administrar el acceso más allá de los conjuntos de permisos estándar disponibles en los roles predefinidos, lo que te permite configurar permisos para satisfacer tus criterios específicos.
Las funciones personalizadas siguen el principio de privilegio mínimo y son útiles para otorgar el acceso mínimo requerido para tareas sensibles, mitigar los riesgos de seguridad y evitar conflictos de intereses.
Crear un rol personalizado te permite hacer lo siguiente:
- Define el alcance del acceso: Elige si deseas aplicar permisos en toda tu organización, en todos los proyectos o restringirlos a proyectos específicos.
- Personaliza el acceso detallado: Selecciona uno o más 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 los públicos que pertenecen al grupo de administradores de la plataforma, como los administradores de TI o los ingenieros de seguridad, que desean administrar de forma segura el acceso a los recursos de la organización. Para obtener más información, consulta Audiences for GDC air-gapped documentation.
Visita Descripciones de roles predefinidos y Definiciones de roles para obtener más información sobre los roles.
Antes de comenzar
El acceso a los roles personalizados se administra a nivel de la organización y del proyecto. El acceso solo se puede otorgar dentro de la misma organización o proyecto en el que se creó el rol personalizado.
Para tener los permisos necesarios para crear y administrar roles personalizados, pídele a tu administrador que te otorgue uno de los siguientes roles:
Administrador de la organización con rol personalizado: Crea y administra roles personalizados dentro de una organización o un proyecto. Este rol incluye la capacidad de actualizar, enumerar, ver, inhabilitar y borrar roles personalizados.
Los usuarios administradores de IAM de la organización pueden otorgar este rol.
Administrador de proyectos con rol personalizado: Crea y administra roles personalizados dentro de un proyecto. Este rol incluye la capacidad de actualizar, enumerar, ver, inhabilitar y borrar roles personalizados.
Los usuarios administradores de IAM del proyecto pueden otorgar este rol.
Obtén más información para asignar permisos de roles a organizaciones y proyectos.
Cómo 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 existentes y combínalos para que se ajusten a tus necesidades. Los permisos que puedes incluir en un rol personalizado dependen del alcance 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 contienen. Puedes usar esta información para hacer lo siguiente:
- Identifica los permisos para los nuevos roles personalizados: Descubre las cadenas de permisos específicas que se requieren para la marca
--permissionscuando usas la CLI de gcloud para crear un rol personalizado. - Revisa los roles existentes: Examina los permisos asociados a cualquier rol predefinido o personalizado en el alcance seleccionado (organización o proyecto).
Enumera los roles y examina sus permisos con la consola de GDC o la CLI de gdcloud:
Console
- Accede a la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que deseas ver los roles.
En el menú de navegación, haz clic en Identity & Access > Roles.
Aparecerá una lista de los roles predefinidos y personalizados disponibles.
Haz clic en el nombre de un rol para ver sus detalles, incluidos los permisos asignados.
Los permisos que se indican para los roles predefinidos en el alcance actual (organización o proyecto) son los que están disponibles para incluirse en un nuevo rol personalizado.
gdcloud
- Asegúrate de tener instalada la CLI de gdcloud. Para obtener más información, consulta la página Descripción general de la CLI de gcloud.
Enumera los roles disponibles:
gdcloud iam roles list ROLE_TYPE \ --project=PROJECTReemplaza lo siguiente:
ROLE_TYPE: Es el tipo de roles que se incluirán en la lista. Los valores válidos sonpredefined,customoall.PROJECT: Es el espacio de nombres del proyecto en el que deseas ver los roles. Omite la marca--projectpara los roles con alcance en la organización.
Consulta los permisos específicos dentro de un rol:
gdcloud iam roles describe ROLE_NAME \ --project=PROJECTReemplaza lo siguiente:
ROLE_NAME: Es el nombre del recurso de Kubernetes del rol.PROJECT: Es el espacio de nombres del proyecto en el que deseas ver los permisos de los roles. Omite la marca--projectpara los roles con alcance en la organización.
Consulta gcloud iam roles list y gcloud iam roles describe para obtener más detalles sobre los comandos y ejemplos de uso.
Crea un rol personalizado
Crea un nuevo rol personalizado agrupando permisos de roles predefinidos. Las funciones personalizadas heredan las capacidades multizona de IAM de las funciones predefinidas en las que se basan. Después de crear un rol personalizado, puedes otorgar acceso a los usuarios.
Crea un rol personalizado con la consola de GDC, la CLI de gdcloud o la API:
Console
- Accede a la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que deseas crear un rol personalizado.
- En el menú de navegación, haz clic en Identity & Access > Roles.
- Haz clic en Crear rol personalizado.
- En el campo Título, ingresa el título de tu rol personalizado.
- En el campo Descripción, proporciona una descripción del propósito de tu rol personalizado.
En el campo ID, ingresa el identificador único de tu rol personalizado.
Los IDs de roles personalizados pueden tener hasta 10 caracteres alfanuméricos en minúscula y no se pueden cambiar después de la creación del rol.
Selecciona una etapa de lanzamiento.
Selecciona el alcance de tu rol personalizado.
Si seleccionas Organización, el rol personalizado se aplica 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 deseas especificar qué proyectos pueden acceder al rol personalizado.
Haz clic en Agregar permisos.
Selecciona la casilla de verificación junto a uno o más de los permisos admitidos que quieras asignar a tu rol personalizado.
Los permisos disponibles se limitan al alcance que seleccionaste. Si cambias el alcance después de agregar permisos, debes confirmar que se restablecieron todos los permisos asignados anteriormente.
Haz clic en Save.
Haga clic en Crear.
Tu nuevo rol personalizado aparecerá en la página Roles.
gdcloud
- Asegúrate de tener instalada la CLI de gdcloud. Para obtener más información, consulta la página Descripción general de la CLI de gcloud.
Sigue estos pasos para crear un rol personalizado:
gdcloud iam roles create ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGEReemplaza lo siguiente:
ROLE_ID: Es el 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 roles personalizados no se pueden cambiar después de la creación del rol.TITLE: Es un título descriptivo para el rol personalizado.DESCRIPTION: Es una descripción del propósito del rol personalizado.PERMISSIONS: Es una lista separada por comas de los permisos que deseas otorgar para el rol personalizado.Para obtener detalles sobre cómo encontrar las cadenas de permisos correctas, consulta Cómo ver los roles y sus permisos. Cada cadena de permiso debe tener el formato según la guía de gdcloud iam roles create, en la que
iamRoleNamees el nombre del recurso de Kubernetes del rol predefinido que contiene el permiso. Puedes encontrar el nombre del recurso de Kubernetes de un rol en la página Definiciones de roles o con el comando gdcloud iam roles list.LAUNCH_STAGE: Opcional Es la etapa de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. El valor predeterminado esALPHAsi se omite esta marca.
Consulta gcloud iam roles create para obtener una lista completa de las marcas obligatorias y opcionales, así como ejemplos de uso.
Como alternativa, puedes definir el rol personalizado en un archivo YAML y usar la marca
--file:gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATHReemplaza
YAML_FILE_PATHpor la ruta de acceso al archivo YAML que contiene las marcas obligatorias y opcionales. Si usas la marca--file, se ignoran todas las demás marcas, como--title,--descriptiony--permissions.
API
Crea y aplica el recurso personalizado 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
Reemplaza lo siguiente:
ROLE_NAME: Es el nombre del recurso de Kubernetes del rol.NAMESPACE: Es el espacio de nombres del rol personalizado. Usaplatformpara los roles con alcance en la organización y para varios proyectos. Usa el espacio de nombres del proyecto (comomy-project) para los roles con alcance en el proyecto y los proyectos únicos.DESCRIPTION: Es una descripción del propósito del rol personalizado.ROLE_ID: Es el 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 roles personalizados no se pueden cambiar después de la creación del rol.SCOPE: Usaorganizationpara los roles creados en el espacio de nombresplatform. Usaprojectpara los roles creados en un espacio de nombres del proyecto.LAUNCH_STAGE: Opcional Es la etapa de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. Si se omite este campo, el valor predeterminado esALPHA.TITLE: Es un título descriptivo para el rol personalizado.RULES_TYPE: Este campo define el alcance de las reglas. Reemplaza conglobalRules(para permisos en la API global) ozonalRules(para permisos en la API zonal). No puedes usar ambos en el mismo recursoCustomRole.RULES_LIST: Es una lista con sangría de objetos de reglas de RBAC de Kubernetes estándar. Cada objeto de la lista otorga permisos. Puedes determinar los permisosapiGroups,resourcesyverbscorrectos examinando los permisos dentro de los roles predefinidos congdcloud iam roles describe, como se muestra en Cómo ver los 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"]Puedes incluir varios elementos en la lista, cada uno de los cuales define un conjunto diferente de permisos.
Administra un rol personalizado
Eres responsable de administrar el ciclo de vida de tus roles personalizados. Cuando Distributed Cloud agrega permisos, funciones o servicios nuevos, actualiza los roles predefinidos. Las actualizaciones, como borrar un rol predefinido o quitar permisos de un rol predefinido, pueden hacer que los roles personalizados que dependen de esos permisos dejen de funcionar. Debes supervisar estas actualizaciones y ajustar manualmente los roles personalizados afectados para asegurarte de que sigan funcionando según lo previsto.
Puedes editar, inhabilitar o borrar un rol personalizado, pero no puedes editar, inhabilitar ni borrar un rol predefinido. Para ver una lista de todos los roles y sus permisos específicos, consulta Cómo ver los roles y sus permisos.
Edita una función personalizada
Edita un rol personalizado con la consola de GDC, la CLI de gdcloud o la API:
Console
- Accede a la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que deseas editar un rol personalizado.
- En el menú de navegación, haz clic en Identity & Access > Roles.
- En la lista de roles, selecciona el rol personalizado que deseas editar.
- En la página de detalles del rol personalizado, haz clic en Editar.
- Edita los detalles de tu rol personalizado, como el título, la descripción, el ID o la etapa de lanzamiento.
- De manera opcional, agrega o quita permisos asignados.
- Haz clic en Agregar permisos para seleccionar permisos de la lista disponible.
- Para quitar un permiso asignado, selecciona la casilla de verificación junto al permiso que deseas quitar y haz clic en Quitar.
Haz clic en Save.
Aparecerá un mensaje para confirmar que se guardaron los cambios.
gdcloud
- Asegúrate de tener instalada la CLI de gdcloud. Para obtener más información, consulta la página Descripción general de la CLI de gcloud.
Sigue estos pasos para editar un rol personalizado:
gdcloud iam roles update ROLE_ID \ --title=TITLE \ --description=DESCRIPTION \ --permissions=PERMISSIONS --stage=LAUNCH_STAGEReemplaza lo siguiente:
ROLE_ID: Es el identificador único de tu rol personalizado.TITLE: Es un título descriptivo para el rol personalizado.DESCRIPTION: Es una descripción del propósito del rol personalizado.PERMISSIONS: Es una lista separada por comas de los permisos que deseas otorgar para el rol personalizado.Para obtener detalles sobre cómo encontrar las cadenas de permisos correctas, consulta Cómo ver los roles y sus permisos. Cada cadena de permiso debe tener el formato según la guía de gdcloud iam roles create, en la que
iamRoleNamees el nombre del recurso de Kubernetes del rol predefinido que contiene el permiso. Puedes encontrar el nombre del recurso de Kubernetes de un rol en la página Definiciones de roles o con el comando gdcloud iam roles list.LAUNCH_STAGE: Opcional Es la etapa de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. El valor predeterminado esALPHAsi se omite esta marca.
Consulta gcloud iam roles update para obtener una lista completa de las marcas obligatorias y opcionales, así como ejemplos de uso.
Como alternativa, puedes actualizar el rol personalizado en su archivo YAML y usar la marca
--file:gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATHReemplaza
YAML_FILE_PATHpor la ruta de acceso al archivo YAML que contiene las marcas obligatorias y opcionales actualizadas. Si usas la marca--file, se ignoran todas las demás marcas, como--title,--descriptiony--permissions.
API
Edita un recurso personalizado 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
Reemplaza lo siguiente:
ROLE_NAME: Es el nombre del recurso de Kubernetes del rol.NAMESPACE: Es el espacio de nombres del rol personalizado. Usaplatformpara los roles con alcance en la organización y para varios proyectos. Usa el espacio de nombres del proyecto (comomy-project) para los roles con alcance en el proyecto y los proyectos únicos.DESCRIPTION: Es una descripción del propósito del rol personalizado.ROLE_ID: Es el 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 roles personalizados no se pueden cambiar después de la creación del rol.SCOPE: Usaorganizationpara los roles creados en el espacio de nombresplatform. Usaprojectpara los roles creados en un espacio de nombres del proyecto.LAUNCH_STAGE: Opcional Es la etapa de lanzamiento del rol personalizado. Los valores válidos sonALPHA,BETA,GAoDISABLED. Si se omite este campo, el valor predeterminado esALPHA.TITLE: Es un título descriptivo para el rol personalizado.RULES_TYPE: Este campo define el alcance de las reglas. Reemplaza conglobalRules(para permisos en la API global) ozonalRules(para permisos en la API zonal). No puedes usar ambos en el mismo recursoCustomRole.RULES_LIST: Es una lista con sangría de objetos de reglas de RBAC de Kubernetes estándar. Cada objeto de la lista otorga permisos. Puedes determinar los permisosapiGroups,resourcesyverbscorrectos examinando los permisos dentro de los roles predefinidos congdcloud iam roles describe, como se muestra en Cómo ver los 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"]Puedes incluir varios elementos en la lista, cada uno de los cuales define un conjunto diferente de permisos.
Inhabilita un rol personalizado
Los roles personalizados inhabilitados permanecen en tu lista de roles y se pueden seguir asignando a los usuarios, pero no tienen ningún efecto. Puedes volver a habilitar el rol personalizado en cualquier momento.
Inhabilita un rol personalizado con la consola de GDC, la CLI de gdcloud o la API:
Console
- Accede a la consola de GDC.
- En el selector de proyectos, selecciona la organización o el proyecto en el que deseas inhabilitar un rol personalizado.
- En el menú de navegación, haz clic en Identity & Access > Roles.
- En la lista de roles, selecciona el rol personalizado que deseas inhabilitar.
- En la página de detalles del rol personalizado, haz clic en Inhabilitar.
gdcloud
- Asegúrate de tener instalada la CLI de gdcloud. Para obtener más información, consulta la página Descripción general de la CLI de gcloud.
Inhabilita un rol personalizado:
gdcloud iam roles update ROLE_ID --stage=DISABLEDReemplaza lo siguiente:
ROLE_ID: Es el identificador único de tu rol personalizado.
Consulta gcloud iam roles update para obtener más información.
API
Inhabilita un recurso personalizado CustomRole cambiando el campo stage a DISABLED. Asegúrate de que todos los demás campos coincidan con los valores actuales del rol personalizado que deseas 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
Reemplaza lo siguiente:
ROLE_NAME: Es el nombre del recurso de Kubernetes del rol.NAMESPACE: Es el espacio de nombres del rol personalizado. Usaplatformpara los roles con alcance en la organización y para varios proyectos. Usa el espacio de nombres del proyecto (comomy-project) para los roles con alcance en el proyecto y los proyectos únicos.DESCRIPTION: Es una descripción del propósito del rol personalizado.ROLE_ID: Es el 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 roles personalizados no se pueden cambiar después de la creación del rol.SCOPE: Usaorganizationpara los roles creados en el espacio de nombresplatform. Usaprojectpara los roles creados en un espacio de nombres del proyecto.TITLE: Es un título descriptivo para el rol personalizado.RULES_TYPE: Este campo define el alcance de las reglas. Reemplaza conglobalRules(para permisos en la API global) ozonalRules(para permisos en la API zonal). No puedes usar ambos en el mismo recursoCustomRole.RULES_LIST: Es una lista con sangría de objetos de reglas de RBAC de Kubernetes estándar. Cada objeto de la lista otorga permisos. Puedes determinar los permisosapiGroups,resourcesyverbscorrectos examinando los permisos dentro de los roles predefinidos congdcloud iam roles describe, como se muestra en Cómo ver los 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"]Puedes incluir varios elementos en la lista, cada uno de los cuales define un conjunto diferente de permisos.
Borra un rol personalizado
Los roles borrados se quitan de forma permanente del sistema. Sin embargo, puedes crear un rol nuevo con el mismo nombre.
Borra un rol personalizado con la CLI de gcloud o la API:
gdcloud
- Asegúrate de tener instalada la CLI de gdcloud. Para obtener más información, consulta la página Descripción general de la CLI de gcloud.
Sigue estos pasos para borrar un rol personalizado:
gdcloud iam roles delete ROLE_ID --project=PROJECTReemplaza lo siguiente:
ROLE_ID: Es el identificador único de tu rol personalizado.PROJECT: Es el espacio de nombres del proyecto en el que deseas borrar el rol personalizado. Si no se especifica la marca--project, se borrará el rol con alcance de la organización.
Consulta gcloud iam roles delete para obtener más información y ejemplos de uso.
API
Borra un recurso personalizado CustomRole con kubectl:
kubectl delete -f CUSTOM_ROLE
Reemplaza CUSTOM_ROLE por la ruta de acceso a tu archivo YAML CustomRole. Este es el mismo archivo que usaste para crear o actualizar el rol.