Administra la identidad y el acceso al proyecto

En esta página, se describen las prácticas de administración de identidades y accesos (IAM) para el operador de aplicaciones (AO) en el dispositivo aislado de Google Distributed Cloud (GDC).

Un proveedor de identidad (IdP) es una entidad del sistema que crea, mantiene y administra la información de identidad de los principales. El IdP también proporciona servicios de autenticación a las aplicaciones dentro de una federación o red distribuida.

Acceder

En esta sección, se describe cómo acceder a tus cargas de trabajo a través de la interfaz de usuario (IU) web o la interfaz de línea de comandos (CLI).

Accede a la IU web

En esta página, se explica cómo acceder a tus cargas de trabajo y recursos, y cómo administrarlos dentro del dispositivo aislado de Google Distributed Cloud (GDC). Describe cómo autenticarse, generar archivos kubeconfig para un servidor de la API de administración y un clúster de Kubernetes, y administrar la inactividad de la sesión. Comprender estos procesos garantiza un acceso seguro y confiable a tus proyectos y cargas de trabajo.

Accede a tus cargas de trabajo a través de la consola de GDC o la CLI de gdcloud.

Acceder

Para acceder a la consola de GDC o a un clúster, sigue estos pasos:

Console

Abre la siguiente URL en una nueva pestaña del navegador para acceder a la interfaz de usuario (IU) del dispositivo aislado de GDC:

https://GDC_URL

Reemplaza GDC_URL por el nombre de dominio que usas para acceder a GDC y que proporciona el operador de infraestructura (IO). Cuando abres cualquier URL por primera vez, GDC te redirecciona a la página de acceso de tu proveedor de identidad si el operador de infraestructura (IO) configuró la página.

Por ejemplo, la siguiente página se muestra después de acceder a la consola de una organización llamada "org-1": La consola muestra la pantalla de bienvenida para el proyecto org-1.

CLI

Puedes acceder a cualquier clúster al que tengas permiso para acceder. El proceso de acceso a la CLI es el mismo para todos los clústeres. Solo debes proporcionar el nombre del clúster y su archivo kubeconfig relacionado, y acceder a cada clúster por separado.

Antes de acceder, asegúrate de hacer lo siguiente:

  • Descarga el objeto binario de la CLI de gdcloud y, luego, instálalo en tu sistema. Para obtener más información, consulta Descarga la CLI de gdcloud.
  • Configura e inicializa la configuración predeterminada de la CLI de gdcloud. Asegúrate de configurar la URL de la organización correcta, que se usa para recuperar el extremo de configuración de acceso. Para obtener más información, consulta Instalación de la CLI de gcloud.
  • Instala el complemento de autenticación gdcloud-k8s-auth-plugin. Para obtener más información, consulta Autenticación de gcloud CLI.

Para acceder a un clúster, completa los siguientes pasos:

  1. Autentica tu instancia de gcloud CLI para acceder. Existen dos formas de autenticación:

    • Acceso estándar desde el navegador: Usa este flujo de autenticación cuando accedas desde un navegador.

      gdcloud auth login
      
    • Acceso en un dispositivo secundario: Usa este flujo de autenticación si tu dispositivo principal no tiene un navegador disponible. Este flujo inicia el acceso en el dispositivo principal sin acceso al navegador y continúa el acceso con el dispositivo secundario que tiene acceso al navegador.

      1. Inicia el acceso en tu dispositivo principal sin navegador:

        gdcloud auth login --no-browser
        

        El comando en el dispositivo principal imprime otro comando gdcloud que debes ejecutar en el dispositivo secundario en el paso c.

      2. Repite el paso 1 de Accede a un clúster para descargar el certificado en el dispositivo secundario.

      3. Para completar el acceso en el dispositivo secundario, ingresa el comando que se imprimió en el dispositivo principal en el paso a.

    Esta acción abre un navegador para acceder al proveedor de identidad (IdP) configurado. Proporciona el usuario y la contraseña que configuraste durante la configuración inicial de la CLI de gcloud para acceder.

  2. Exporta tu archivo de identidad del usuario kubeconfig como una variable:

    export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
    
  3. Genera un archivo kubeconfig con la identidad del usuario:

    gdcloud clusters get-credentials CLUSTER_NAME
    

    Se genera un archivo kubeconfig con la identidad del usuario. En el siguiente archivo YAML, se muestra un ejemplo:

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: <REDACTED>
        server: https://10.200.0.32:443
      name: cluster-name
    contexts:
    - context:
        cluster: cluster-name
        user: cluster-name-anthos-default-user
      name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
      user:
        exec:
            apiVersion: client.authentication.k8s.io/v1
            args:
            - --audience=root-admin
            command: gdcloud-k8s-auth-plugin
            env: null
            installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
            interactiveMode: Never
            provideClusterInfo: false
    
  4. Para verificar que puedes acceder al clúster, accede con el archivo kubeconfig generado con una identidad de usuario:

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

Salir

Para salir de la consola de GDC, haz lo siguiente:

Console

Haz clic en Cerrar sesión en la barra de menú.

CLI

Sal de la CLI:

gdcloud auth revoke

Genera manualmente el archivo kubeconfig

Si administras recursos con la CLI de kubectl llamando directamente a las APIs de KRM, debes generar el archivo kubeconfig para el clúster que aloja tu recurso, según el tipo de recurso que administres. Visita la documentación del recurso para determinar el archivo kubeconfig que necesitas.

Completa la configuración aplicable según tu tipo de recurso.

Recursos del servidor de la API de Management

Completa los siguientes pasos para generar tu archivo kubeconfig para el servidor de la API de Management:

  1. Establece la variable de entorno MANAGEMENT_API_SERVER:

    export MANAGEMENT_API_SERVER="root-admin"
    
  2. Genera el archivo kubeconfig del servidor de la API de Management y valida las credenciales:

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    El comando rm ${KUBECONFIG:?} quita el archivo kubeconfig existente en el directorio principal. Cuando generas un archivo kubeconfig nuevo, se reemplaza el existente. Si no quieres reemplazar o quitar el archivo existente, crea una copia de seguridad en otra ubicación segura.

Recursos del clúster de Kubernetes

Completa los siguientes pasos para generar tu archivo kubeconfig para el clúster de Kubernetes en equipos físicos:

  1. Establece la variable de entorno KUBERNETES_CLUSTER:

    export KUBERNETES_CLUSTER="root-infra"
    
  2. Genera el archivo kubeconfig del clúster de Kubernetes y valida las credenciales:

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    El comando rm ${KUBECONFIG:?} quita el archivo kubeconfig existente en el directorio principal. Cuando generas un archivo kubeconfig nuevo, se reemplaza el existente. Si no quieres reemplazar o quitar el archivo existente, crea una copia de seguridad en otra ubicación segura.

Cierre de sesión por inactividad

Después de quince minutos o más de inactividad en una sesión, la consola de GDC y la CLI de gdcloud te desconectan. El GDC considera la inactividad de la sesión como un período durante una sesión abierta sin participación activa de tu parte, como la falta de movimiento del cursor o del teclado. Una sesión activa dura hasta doce horas con actividad del usuario.

Console

En caso de inactividad en la sesión, la consola de GDC cierra tu sesión. Dos minutos antes de que la consola de GDC cierre tu sesión por inactividad, recibirás un diálogo que te advertirá sobre el cierre de sesión:

IU de la consola que muestra un diálogo con un temporizador de 99 segundos antes de cerrar la sesión del usuario por inactividad.

Después de cerrar la sesión por inactividad, verás la siguiente pantalla:

La IU de la consola muestra la pantalla de acceso con un banner que contiene texto sobre el cierre de sesión: &quot;Se cerró tu sesión en el sistema porque estuvo inactiva durante demasiado tiempo. Vuelve a acceder o comunícate con el administrador para obtener ayuda&quot;.

Para volver a acceder a la consola de GDC, selecciona tu proveedor de identidad y agrega tus credenciales de acceso. Si usas un servicio, como el panel de supervisión, y la consola de GDC te desconecta por inactividad, vuelve a acceder para obtener acceso.

CLI

En caso de inactividad de la sesión, la CLI de gcloud cierra tu sesión. Después de que la CLI de gcloud cierre tu sesión y que intentes ejecutar un comando, recibirás un error de autorización:

Error: error when creating kube client: unable to create k8sclient: Unauthorized

Para volver a acceder a la CLI de gcloud, sigue los pasos de la CLI en Acceder.

kubectl

La CLI de gdcloud hace que tus archivos kubeconfig venzan después de un período de inactividad de la sesión. Si intentas ejecutar un comando kubectl después de un período de inactividad, recibirás un error de autorización:

error: You must be logged in to the server (Unauthorized)

Para volver a acceder y usar tu archivo kubeconfig, sigue los pasos de la CLI en Acceder. Para cada tiempo de espera de sesión, debes volver a generar tus archivos kubeconfig.

Configura políticas de permisos de IAM

Descripciones de roles predefinidos

Un operador de aplicación (AO) es miembro del equipo de desarrollo dentro de la organización del administrador de la plataforma (PA). Los AO interactúan con recursos a nivel del proyecto. Puedes asignar los siguientes roles predefinidos a los miembros del equipo:

  • Administrador de IAM del proyecto: Administra las políticas de IAM de permiso de los proyectos.
  • AI OCR Developer: Accede al servicio de reconocimiento óptico de caracteres para detectar texto en imágenes.
  • AI Speech Developer: Accede al servicio de Speech-to-Text para reconocer el habla y transcribir audio.
  • AI Translation Developer: Accede al servicio de Vertex AI Translation para traducir texto.
  • Administrador de Artifact Management: Tiene acceso de administrador a los recursos de todos los proyectos de Harbor en el espacio de nombres del proyecto.
  • Editor de administración de artefactos: Tiene acceso de lectura y escritura a los recursos de todos los proyectos de Harbor en el espacio de nombres del proyecto.
  • Administrador de Certificate Authority Service: Tiene acceso para administrar autoridades certificadas y solicitudes de certificados en su proyecto.
  • Administrador del servicio de certificados: Tiene acceso para administrar certificados y entidades emisoras de certificados en su proyecto.
  • Editor del panel: Tiene acceso de lectura y escritura a los recursos personalizados de Dashboard.
  • Visualizador de paneles: Tiene acceso de solo lectura a los recursos personalizados de Dashboard.
  • Administrador de instancias de Harbor: Tiene acceso completo para administrar instancias de Harbor en un proyecto.
  • Visualizador de instancias de Harbor: Tiene acceso de solo lectura para ver instancias de Harbor en un proyecto.
  • Creador de proyectos de Harbor: Tiene acceso para administrar proyectos de instancias de Harbor.
  • Administrador de políticas de red de K8s: Administra las políticas de red en clústeres de Kubernetes.
  • LoggingRule Creator: Crea recursos personalizados de LoggingRule en el espacio de nombres del proyecto.
  • Editor de LoggingRule: Edita recursos personalizados de LoggingRule en el espacio de nombres del proyecto.
  • Visualizador de LoggingRule: Visualiza recursos personalizados LoggingRule en el espacio de nombres del proyecto.
  • LoggingTarget Creator: Crea recursos personalizados de LoggingTarget en el espacio de nombres del proyecto.
  • Editor de LoggingTarget: Edita recursos personalizados de LoggingTarget en el espacio de nombres del proyecto.
  • Visualizador de LoggingTarget: Visualiza los recursos personalizados de LoggingTarget en el espacio de nombres del proyecto.
  • Administrador del balanceador de cargas: Tiene permisos de lectura y escritura en todos los recursos del balanceador de cargas en el espacio de nombres del proyecto.
  • Editor de MonitoringRule: Tiene acceso de lectura y escritura a los recursos de MonitoringRule.
  • Visualizador de MonitoringRule: Tiene acceso de solo lectura a los recursos personalizados de MonitoringRule.
  • Editor de MonitoringTarget: Tiene acceso de lectura y escritura a los recursos personalizados de MonitoringTarget.
  • Visualizador de MonitoringTarget: Tiene acceso de solo lectura a los recursos personalizados de MonitoringTarget.
  • Visualizador de NAT: Tiene acceso de solo lectura a las implementaciones en clústeres de Kubernetes.
  • Administrador de espacio de nombres: Administra todos los recursos dentro del espacio de nombres del proyecto.
  • Editor de ObservabilityPipeline: Tiene acceso de lectura y escritura a los recursos personalizados de ObservabilityPipeine.
  • Visualizador de ObservabilityPipeline: Tiene acceso de solo lectura a los recursos personalizados de ObservabilityPipeline.
  • Administrador de buckets del proyecto: Administra los buckets de almacenamiento y los objetos dentro de los buckets.
  • Administrador de objetos de bucket del proyecto: Tiene acceso de solo lectura a los buckets dentro de un proyecto y acceso de lectura y escritura a los objetos de esos buckets.
  • Visualizador de objetos de buckets del proyecto: Tiene acceso de solo lectura a los buckets dentro de un proyecto y a los objetos de esos buckets.
  • Editor de Alertmanager de Project Cortex: Otorga permisos para editar la instancia de Alertmanager de Cortex en el espacio de nombres del proyecto.
  • Visualizador de Alertmanager de Project Cortex: Otorga permisos para acceder a la instancia de Alertmanager de Cortex en el espacio de nombres del proyecto.
  • Visualizador de Prometheus de Project Cortex: Otorga permisos para acceder a la instancia de Prometheus de Cortex en el espacio de nombres del proyecto.
  • Project Grafana Viewer: Accede a la instancia de Grafana en el espacio de nombres del proyecto del clúster de administrador de la flota.
  • Administrador de NetworkPolicy del proyecto: Administra las políticas de red del proyecto en el espacio de nombres del proyecto.
  • Visualizador del proyecto: Tiene acceso de solo lectura a todos los recursos dentro de los espacios de nombres del proyecto.
  • Administrador de Project VirtualMachine: Administra las VMs en el espacio de nombres del proyecto.
  • Administrador de imágenes de VirtualMachine del proyecto: Administra las imágenes de VM en el espacio de nombres del proyecto.
  • Administrador de secretos: Administra los secretos de Kubernetes en los proyectos.
  • Secret Viewer: Visualiza los secretos de Kubernetes en los proyectos.
  • Administrador de configuración de servicio: Tiene acceso de lectura y escritura a las configuraciones de servicio dentro de un espacio de nombres del proyecto.
  • Visualizador de configuración de servicio: Tiene acceso de lectura a las configuraciones de servicio dentro de un espacio de nombres del proyecto.
  • Administrador de replicación de volúmenes: Administra los recursos de replicación de volúmenes.
  • Administrador de Notebooks de Workbench: Obtén acceso de lectura y escritura a todos los recursos de notebooks dentro de un espacio de nombres del proyecto.
  • Workbench Notebooks Viewer: Obtén acceso de solo lectura a todos los recursos de notebooks dentro de un espacio de nombres del proyecto y visualiza la interfaz de usuario de Vertex AI Workbench.
  • Visualizador de cargas de trabajo: Tiene acceso de lectura a las cargas de trabajo de un proyecto.

Roles comunes

Los siguientes roles comunes predefinidos se aplican a todos los usuarios autenticados:

  • Visualizador de AI Platform: Otorga permisos para ver los servicios previamente entrenados.
  • DNS Suffix Viewer: Accede al mapa de configuración del sufijo del servicio de nombres de dominio (DNS).
  • Administrador de registros de flujo: Tiene acceso de lectura y escritura a todos los recursos de registros de flujo.
  • Visualizador de registros de flujo: Tiene acceso de solo lectura a todos los recursos de registros de flujo.
  • Visualizador de Project Discovery: Tiene acceso de lectura para todos los usuarios autenticados a la vista del proyecto.
  • Public Image Viewer: Tiene acceso de lectura para todos los usuarios autenticados en las imágenes de VM públicas en el espacio de nombres vm-images.
  • System Artifact Registry anthos-creds secret Monitor: Tiene acceso de solo lectura a los secretos en el espacio de nombres anthos-creds.
  • System Artifact Registry gpc-system secret Monitor: Tiene acceso de solo lectura a los secretos en el espacio de nombres gpc-system.
  • Monitor de secretos de harbor-system de Artifact Registry del sistema: Tiene acceso de solo lectura a los secretos en el espacio de nombres harbor-system.
  • Visualizador de tipos de máquinas virtuales: Tiene acceso de lectura a los tipos de máquinas virtuales con alcance de clúster.
  • VM Type Viewer: Tiene acceso de lectura a los tipos de máquina virtual predefinidos en los clústeres de administrador.

Definiciones de roles

En las tablas de esta sección, se describen los diferentes roles predefinidos y sus permisos. Las tablas contienen las siguientes columnas:

  • Nombre: Es el nombre de un rol que se muestra en la interfaz de usuario (IU).
  • Nombre del recurso de Kubernetes: Es el nombre del recurso personalizado de Kubernetes correspondiente.
  • Nivel: Especificación de si este rol se limita a la organización o a un proyecto.
  • Tipo: Es el tipo de este rol. Por ejemplo, algunos valores posibles son Role, ProjectRole, ClusterRole o ProjectClusterRole.
  • Tipo de vinculación: Es el tipo de vinculación que debes aplicar a este rol.
  • Permisos del servidor de la API de administración o del clúster de Kubernetes: Son los permisos que tiene este rol para el servidor de la API de administración o el clúster de Kubernetes. Por ejemplo, algunos valores posibles son lectura, escritura, lectura y escritura, o no aplicable (N/A).
  • Escala a: Especifica si este rol se puede escalar a otros roles o no.

Arquetipo de AO, identidad predefinida y roles de acceso

Arquetipo de AO
Nombre Nombre del recurso de Kubernetes Administrador inicial Nivel Tipo
Administrador de IAM de proyecto project-iam-admin Verdadero Proyecto Role
Desarrollador de OCR con IA ai-ocr-developer Falso Proyecto Role
Visualizador de AI Platform ai-platform-viewer Falso Proyecto Role
Desarrollador de IA de voz ai-speech-developer Falso Proyecto Role
Desarrollador de IA de Translation ai-translation-developer Falso Proyecto Role
Administrador de administración de artefactos artifact-management-admin Falso Proyecto Role
Editor de administración de artefactos artifact-management-editor Falso Proyecto Role
Administrador de Certificate Authority Service certificate-authority-service-admin Falso Proyecto Role
Administrador del servicio de certificados certificate-service-admin Falso Proyecto Role
Editor de paneles dashboard-editor Falso Proyecto Role
Visor de paneles dashboard-viewer Falso Proyecto Role
Administrador de instancias de Harbor harbor-instance-admin Falso Proyecto Role
Visualizador de instancias de Harbor harbor-instance-viewer Falso Proyecto Role
Creador de proyectos de Harbor harbor-project-creator Falso Proyecto Role
Administrador de políticas de red de K8s k8s-networkpolicy-admin Falso Proyecto ProjectRole
Administrador del balanceador de cargas load-balancer-admin Falso Proyecto ProjectRole
Creador de LoggingRule loggingrule-creator Falso Proyecto Role
Editor de LoggingRule loggingrule-editor Falso Proyecto Role
Visualizador de LoggingRule loggingrule-viewer Falso Proyecto Role
LoggingTarget.Creator loggingtarget-creator Falso Proyecto Role
Editor de LoggingTarget loggingtarget-editor Falso Proyecto Role
Visor de LoggingTarget loggingtarget-viewer Falso Proyecto Role
Editor de MonitoringRule monitoringrule-editor Falso Proyecto Role
Visualizador de MonitoringRule monitoringrule-viewer Falso Proyecto Role
Editor de MonitoringTarget monitoringtarget-editor Falso Proyecto Role
Visualizador de MonitoringTarget monitoringtarget-viewer Falso Proyecto Role
Namespace Admin namespace-admin Falso Proyecto ProjectRole
Visualizador de NAT nat-viewer Falso Proyecto ProjectRole
Editor de ObservabilityPipeline observabilitypipeline-editor Falso Proyecto Role
Visualizador de ObservabilityPipeline observabilitypipeline-viewer Falso Proyecto Role
Administrador de bucket del proyecto project-bucket-admin Falso Proyecto Role
Administrador de objetos del bucket del proyecto project-bucket-object-admin Falso Proyecto Role
Visualizador de objetos del bucket del proyecto project-bucket-object-viewer Falso Proyecto Role
Editor de Alertmanager de Project Cortex project-cortex-alertmanager-editor Falso Proyecto Role
Visualizador de Alertmanager de Project Cortex project-cortex-alertmanager-viewer Falso Proyecto Role
Visualizador de Prometheus de Project Cortex project-cortex-prometheus-viewer Falso Proyecto Role
Visualizador de Grafana del proyecto project-grafana-viewer Falso Proyecto Role
Administrador de NetworkPolicy del proyecto project-networkpolicy-admin Falso Proyecto Role
Visualizador del proyecto project-viewer Falso Proyecto Role
Administrador de máquinas virtuales del proyecto project-vm-admin Falso Proyecto Role
Administrador de imágenes de VirtualMachine del proyecto project-vm-image-admin Falso Proyecto Role
Administrador de secretos secret-admin Falso Proyecto Role
Visualizador de secretos secret-viewer Falso Proyecto Role
Administrador de configuración de servicios service-configuration-admin Falso Proyecto Role
Visualizador de la configuración del servicio service-configuration-viewer Falso Proyecto Role
Administrador de Notebooks de Workbench workbench-notebooks-admin Falso Proyecto Role
Administrador de replicación de volúmenes app-volume-replication-admin Falso Clúster Role
Visualizador de notebooks de Workbench workbench-notebooks-viewer Falso Proyecto Role
Visualizador de carga de trabajo workload-viewer Falso Proyecto Role

Arquetipo de AO, identidad predefinida y roles de acceso

Arquetipo de AO
Nombre Tipo de vinculación Permisos del servidor de la API de Management Permisos del clúster de Kubernetes Se deriva a
Administrador de IAM de proyecto RoleBinding
  • RoleBinding, ClusterRoleBinding, Role, ClusterRole, ProjectRole, ProjectClusterRole, ProjectRoleBinding y ProjectClusterRoleBinding: Crear, leer, actualizar, borrar y vincular
  • ProjectServiceAccount: Crear, leer, actualizar y borrar
  • Enumera el espacio de nombres del proyecto
N/A Todos los demás roles de AO
Desarrollador de OCR con IA RoleBinding Recursos de OCR: Lectura y escritura N/A N/A
Desarrollador de IA de voz RoleBinding Recursos de voz: Lectura y escritura N/A N/A
Desarrollador de IA de Translation RoleBinding Recursos de traducción: Lectura y escritura N/A N/A
Administrador de administración de artefactos RoleBinding HarborProjects: Administrar, crear, leer, escribir, borrar y ver N/A N/A
Editor de administración de artefactos RoleBinding HarborProjects: Lectura, escritura y visualización N/A N/A
Administrador de Certificate Authority Service RoleBinding Autoridades de certificación y solicitudes de certificados: Obtén, enumera, observa, actualiza, crea, borra y aplica parches. N/A N/A
Administrador del servicio de certificados RoleBinding Certificados y entidades emisoras de certificados: Obtener, enumerar, observar, actualizar, crear, borrar y aplicar parches N/A N/A
Editor de paneles RoleBinding Recursos personalizados de Dashboard: Obtener, leer, crear, actualizar, borrar y aplicar parches N/A N/A
Visor de paneles RoleBinding Dashboard: Obtener y leer N/A N/A
Administrador de instancias de Harbor RoleBinding Instancias de Harbor: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Visualizador de instancias de Harbor RoleBinding Instancias de Harbor: Lectura N/A N/A
Creador de proyectos de Harbor RoleBinding Proyectos de instancias de Harbor: Crear, obtener y observar N/A N/A
Administrador de NetworkPolicy de K8s ProjectRoleBinding N/A Recursos de NetworkPolicy: Crear, leer, obtener, actualizar, borrar y aplicar parches N/A
Administrador del balanceador de cargas RoleBinding N/A
  • Backend: Obtener, mirar, enumerar, crear, aplicar parches, actualizar y borrar
  • HealthCheck: Obtener, mirar, enumerar, crear, aplicar parches, actualizar y borrar
  • BackendService: Obtener, mirar, enumerar, crear, aplicar parches, actualizar y borrar
  • ForwardingRuleExternal: Obtener, mirar, enumerar, crear, aplicar parches, actualizar y borrar
  • ForwardingRuleInternal: Obtener, mirar, enumerar, crear, aplicar parches, actualizar y borrar
N/A
Creador de LoggingRule RoleBinding Recursos personalizados de LoggingRule: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Editor de LoggingRule RoleBinding Recursos personalizados de LoggingRule: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Visualizador de LoggingRule RoleBinding Recursos personalizados de LoggingRule: Lectura N/A N/A
LoggingTarget.Creator RoleBinding Recursos personalizados de LoggingTarget: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Editor de LoggingTarget RoleBinding Recursos personalizados de LoggingTarget: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Visor de LoggingTarget RoleBinding Recursos personalizados de LoggingTarget: Lectura N/A N/A
Editor de MonitoringRule RoleBinding Recursos personalizados de MonitoringRule: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Visualizador de MonitoringRule RoleBinding Recursos personalizados de MonitoringRule: Lectura N/A N/A
Editor de MonitoringTarget RoleBinding Recursos personalizados de MonitoringTarget: Crear, leer, actualizar, borrar y aplicar parches N/A N/A
Visualizador de MonitoringTarget RoleBinding Recursos personalizados de MonitoringTarget: Lectura N/A N/A
Namespace Admin ProjectRoleBinding N/A Todos los recursos: Acceso de lectura y escritura en el espacio de nombres del proyecto N/A
Visualizador de NAT ProjectRoleBinding N/A Implementaciones: Obtener y leer N/A
Editor de ObservabilityPipeline RoleBinding Recursos de ObservabilityPipeline: Obtener, leer, crear, actualizar, borrar y aplicar parches N/A N/A
Visualizador de ObservabilityPipeline RoleBinding Recursos de ObservabilityPipeline: Obtén y lee N/A N/A
Administrador de bucket del proyecto RoleBinding Bucket: Lectura y escritura en el espacio de nombres del proyecto N/A N/A
Administrador de objetos del bucket del proyecto RoleBinding
  • Bucket: Lectura
  • Objetos: Lectura y escritura
N/A N/A
Visualizador de objetos del bucket del proyecto RoleBinding Bucket y objetos: Lectura N/A N/A
Editor de Alertmanager de Project Cortex RoleBinding Sistema de Cortex y Cortex Alertmanager: Lectura y escritura N/A N/A
Visualizador de Alertmanager de Project Cortex RoleBinding Sistema de Cortex y Cortex Alertmanager: Lectura N/A N/A
Visualizador de Prometheus de Project Cortex RoleBinding Sistema de Cortex y Cortex Prometheus: Lectura N/A N/A
Visualizador de Grafana del proyecto RoleBinding Sistema de Grafana y Grafana: Lectura y escritura N/A N/A
Administrador de NetworkPolicy del proyecto RoleBinding Políticas de red del proyecto: Lectura y escritura en el espacio de nombres del proyecto N/A N/A
Visualizador del proyecto RoleBinding Todos los recursos en el espacio de nombres del proyecto: Lectura N/A N/A
Administrador de máquinas virtuales del proyecto RoleBinding
  • Máquinas virtuales, discos, solicitudes de acceso, acceso externo, solicitudes de copias de seguridad, copias de seguridad, solicitudes de restablecimiento, solicitudes de eliminación de copias de seguridad, restablecimientos y solicitudes de restablecimiento de contraseñas: Leer, crear, actualizar y borrar
  • Reinicio de la máquina virtual: Coloca
  • Imágenes de máquinas virtuales, planes de copias de seguridad y plantillas de planes de copias de seguridad: Lectura
N/A N/A
Administrador de imágenes de VirtualMachine del proyecto RoleBinding
  • Imágenes de VM: Lectura
  • Importaciones de imágenes de VM: Lectura y escritura
N/A N/A
Administrador de secretos RoleBinding Secrets de Kubernetes: Lectura, creación, actualización, eliminación y aplicación de parches N/A N/A
Visualizador de secretos RoleBinding Secretos de Kubernetes: Lectura N/A N/A
Administrador de configuración de servicios RoleBinding ServiceConfigurations: Lectura y escritura N/A N/A
Visualizador de la configuración del servicio RoleBinding ServiceConfigurations: Leído N/A N/A
Administrador de replicación de volúmenes ClusterRoleBinding Volume failovers, volume relationship replicas: Create, get, list, watch, delete N/A N/A
Administrador de Notebooks de Workbench RoleBinding N/A
  • Recursos personalizados (CR) de Notebook en el espacio de nombres del proyecto: Crear, leer, actualizar y borrar
  • Objetos ClusterInfo: Lectura
N/A
Visualizador de notebooks de Workbench RoleBinding N/A
  • Recursos personalizados (CR) de Notebook en el espacio de nombres del proyecto: Lectura
N/A
Visualizador de carga de trabajo ProjectRoleBinding N/A
  • Recursos personalizados de Pod en el espacio de nombres del proyecto: Lectura
  • Recursos personalizados de implementación en el espacio de nombres del proyecto: Lectura
N/A

Roles predefinidos comunes de identidad y acceso

Roles comunes
Nombre Nombre del recurso de Kubernetes Administrador inicial Nivel Tipo
Visualizador de AI Platform ai-platform-viewer Falso Proyecto Role
Visualizador de sufijos de DNS dnssuffix-viewer Falso Organización Role
Administrador de registros de flujo flowlog-admin Falso Organización ClusterRole
Visor de registros de flujo flowlog-viewer Falso Proyecto ClusterRole
Visualizador de Project Discovery projectdiscovery-viewer Falso Proyecto ClusterRole
Visor de imágenes públicas public-image-viewer Falso Organización Role
Monitor del secreto anthos-creds de Artifact Registry del sistema sar-anthos-creds-secret-monitor Falso Organización Role
Monitor de secretos de gpc-system de Artifact Registry del sistema sar-gpc-system-secret-monitor Falso Organización Role
Monitor del secreto harbor-system de Artifact Registry del sistema sar-harbor-system-secret-monitor Falso Organización Role
Visualizador de tipos de máquinas virtuales virtualmachinetype-viewer Falso Organización OrganizationRole
Visualizador de tipos de VM vmtype-viewer Falso Organización Role

Roles predefinidos comunes de identidad y acceso

Roles comunes
Nombre Tipo de vinculación Permisos del clúster de administrador Permisos del clúster de Kubernetes Se deriva a
Visualizador de AI Platform RoleBinding Servicios previamente entrenados: Leer N/A N/A
Visualizador de sufijos de DNS ClusterRoleBinding Mapas de configuración del sufijo de DNS: Lectura N/A N/A
Administrador de registros de flujo ClusterRoleBinding Recursos de registros de flujo: Obtén y lee Recursos de registros de flujo: Obtén y lee N/A
Visor de registros de flujo ClusterRoleBinding Recursos de registros de flujo: Crear, obtener, leer, aplicar parches, actualizar y borrar Recursos de registros de flujo: Crear, obtener, leer, aplicar parches, actualizar y borrar N/A
Visualizador de Project Discovery ClusterRoleBinding Proyectos: Lectura N/A N/A
Visor de imágenes públicas RoleBinding Imágenes de VM: Lectura N/A N/A
Monitor del secreto anthos-creds de Artifact Registry del sistema RoleBinding anthos-creds secretos: Obtener y leer anthos-creds secretos: Obtener y leer N/A
Monitor de secretos de gpc-system de Artifact Registry del sistema RoleBinding gpc-system secretos: Obtener y leer gpc-system secretos: Obtener y leer N/A
Monitor del secreto harbor-system de Artifact Registry del sistema RoleBinding harbor-system secretos: Obtener y leer harbor-system secretos: Obtener y leer N/A
Visualizador de tipos de máquinas virtuales OrganizationRoleBinding N/A Tipos de VM: Lectura N/A
Visualizador de tipos de VM ClusterRoleBinding Tipos de VM: Lectura N/A N/A

Existen dos formas de otorgar acceso a los recursos:

Configura vinculaciones de roles con la CLI

Acceso de AO en el clúster de administrador

A diferencia de los operadores de infraestructura (IO) y los administradores de plataformas (PA), GDC vincula a los operadores de aplicaciones (AO) a un Project a través de un RoleBinding, en lugar de un ClusterRoleBinding.

Para otorgar acceso a un AO al clúster de administrador, completa los siguientes pasos:

  1. Exporta el correo electrónico que usas para acceder a AO. Por ejemplo, un correo electrónico como ao-alice@example.com.

    export AO_EMAIL=AO_EMAIL
    
  2. Crea una vinculación de rol para otorgar acceso de administrador de IAM del proyecto ${AO_EMAIL} en el espacio de nombres iam-test:

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-iam-admin \
    --role=project-iam-admin --user=$AO_EMAIL \
    --namespace=iam-test
    

    El rol project-iam-admin es un rol predefinido para GDC. El espacio de nombres iam-test de Kubernetes corresponde al proyecto iam-test en el clúster de administrador.

  3. Verifica que la cuenta de AO tenga permisos para crear vinculaciones de roles en el espacio de nombres iam-test:

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
    

    Verás el siguiente resultado:

    yes
    
  4. Crea una vinculación de rol para otorgar acceso de visualizador del proyecto ${AO_EMAIL} en el espacio de nombres bar:

    kubectl create --kubeconfig PA_KUBECONFIG \
    rolebinding $AO_EMAIL-project-viewer \
    --role=project-viewer --user=$AO_EMAIL \
    --namespace=bar
    

    El rol project-viewer es un rol predeterminado para GDC. El espacio de nombres bar de Kubernetes corresponde al proyecto bar en el clúster de administrador de la organización.

  5. Verifica que la cuenta de AO no tenga permisos para crear vinculaciones de roles en el espacio de nombres bar:

    kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
    

    Verás el siguiente resultado:

    no
    
  6. Opcional: Borra la vinculación del rol para revocar el permiso otorgado a la cuenta de AO:

    kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
    

Acceso de AO en clústeres de usuario

Un AO usa recursos ProjectRole y ProjectRoleBinding para obtener acceso al espacio de nombres de los clústeres de usuario. Sin embargo, los PA pueden otorgar permisos a toda la organización de AO en clústeres de usuarios con recursos OrganizationRole y ProjectRoleBinding predeterminados.

Completa los siguientes pasos para brindar a los AO acceso a los clústeres de usuarios:

Para otorgar acceso a los clústeres de usuario, debes tener el rol de administrador de IAM del proyecto.

  1. Crea un recurso de ProjectRoleBinding para otorgar acceso de administrador del espacio de nombres ${AO_EMAIL} en todos los clústeres de usuarios del espacio de nombres iam-test:

    kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF
    apiVersion: resourcemanager.gdc.goog/v1
    kind: ProjectRoleBinding
    metadata:
      name: ${AO_EMAIL%@*}-namespace-admin
      namespace: iam-test
    spec:
      roleRef:
        apiGroup: resourcemanager.gdc.goog
        kind: ProjectRole
        name: namespace-admin
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${AO_EMAIL}
    EOF
    
  2. Sigue las instrucciones de la sección Accede con la CLI y kubectl para obtener credenciales de usuario para el clúster de usuario y exportarlas en la variable AO_USER_CLUSTER_KUBECONFIG:

    export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
    
  3. Verifica que la cuenta de AO tenga permisos para crear implementaciones en el espacio de nombres iam-test:

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
    

    Verás el siguiente resultado:

    yes
    
  4. Opcional: Borra las vinculaciones del rol del proyecto para revocar el permiso otorgado a la cuenta de AO de prueba:

    kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
    

Configura vinculaciones de roles para todo el proyecto con la IU

Un operador de la aplicación agrega otros operadores de la aplicación al proyecto para que tengan acceso a los recursos del proyecto.

Para obtener los permisos que necesitas para configurar vinculaciones de roles, pídele a tu administrador de IAM del proyecto que te otorgue el rol de administrador de IAM del proyecto.

Sigue estos pasos para configurar las vinculaciones de roles:

  1. Accede a la consola del dispositivo aislado de GDC.
  2. Selecciona un proyecto.
  3. En el menú de navegación, haz clic en Administración de acceso.
  4. Haz clic en Agregar miembro.
  5. En la lista Proveedor de identidad, selecciona un proveedor de identidad.
  6. Elige si quieres agregar usuarios individuales o grupos.
  7. En el campo Nombre de usuario o alias de grupo, ingresa el nombre de usuario, la dirección de correo electrónico o el alias.
  8. En la lista Rol, selecciona el rol que deseas asignar al usuario o grupo, como Visualizador del proyecto.
  9. Haz clic en Agregar.

Cómo quitar vinculaciones de roles con la IU

Cuando ya no se requiera el acceso, quita a un miembro y sus roles, permisos y acceso asociados.

Sigue estos pasos para quitar miembros:

  1. Accede a la consola del dispositivo aislado de GDC.
  2. Selecciona un proyecto.
  3. En el menú de navegación, haz clic en Administración de acceso.
  4. En la lista Miembros autorizados, selecciona un miembro.
  5. Haz clic en Quitar miembro.
  6. Cuando se te solicite, haz clic en Quitar miembro para confirmar.