Gestionar la identidad y el acceso al proyecto

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

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

Iniciar sesión

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 de la interfaz de línea de comandos (CLI).

Iniciar sesión en la interfaz de usuario web

En esta página se explica cómo acceder a tus cargas de trabajo y recursos, y cómo gestionarlos, en el dispositivo air-gapped de Google Distributed Cloud (GDC). En él se describe cómo autenticar, generar archivos kubeconfig para un servidor de la API Management y un clúster de Kubernetes, y gestionar la inactividad de las sesiones. Conocer estos procesos garantiza un acceso seguro y fiable a tus proyectos y cargas de trabajo.

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

Iniciar sesión

Para iniciar sesión en la consola de GDC o en un clúster, sigue estos pasos:

Consola

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

https://GDC_URL

Sustituye GDC_URL por el nombre de dominio que usas para acceder a GDC y que te proporciona el operador de infraestructura (IO). Cuando abres cualquier URL por primera vez, GDC te redirige a la página de inicio de sesión de tu proveedor de identidades si el operador de infraestructura (IO) ha configurado la página.

Por ejemplo, la página siguiente se muestra después de iniciar sesión en la consola de una organización llamada `org-1`: Consola que muestra la pantalla de bienvenida del proyecto org-1.

CLI

Puedes iniciar sesión en cualquier clúster al que tengas permiso para acceder. El proceso de inicio de sesión de la CLI es el mismo para todos los clústeres. Solo debes proporcionar el nombre del clúster y su archivo kubeconfig relacionado, así como iniciar sesión por separado en cada clúster.

Antes de iniciar sesión, haz lo siguiente:

  • Descarga el archivo binario de la CLI de gdcloud e instálalo en tu sistema. Para obtener más información, consulta Descargar la CLI de gdcloud.
  • Configura e inicializa la configuración predeterminada de la CLI de gdcloud. Asegúrate de definir la URL de la organización correcta, que se usa para obtener el endpoint de configuración de inicio de sesión. Para obtener más información, consulta Instalación de la CLI de gdcloud.
  • Instala el complemento de autenticación gdcloud-k8s-auth-plugin. Para obtener más información, consulta Autenticación de la CLI de gdcloud.

Para iniciar sesión en un clúster, sigue estos pasos:

  1. Autentica tu instancia de la CLI gdcloud para iniciar sesión. Hay dos formas de autenticarte:

    • Inicio de sesión estándar en el navegador: usa este flujo de autenticación cuando inicies sesión desde un navegador.

      gdcloud auth login
      
    • Inicio de sesión en un dispositivo secundario: usa este flujo de autenticación si tu dispositivo principal no tiene un navegador disponible. Este flujo inicia la sesión en el dispositivo principal sin acceso al navegador y continúa la sesión con el dispositivo secundario, que sí tiene acceso al navegador.

      1. Inicia sesión en tu dispositivo principal sin navegador:

        gdcloud auth login --no-browser
        

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

      2. Repite el paso 1 de Iniciar sesión en un clúster para descargar el certificado en el dispositivo secundario.

      3. Completa el inicio de sesión en el dispositivo secundario introduciendo el comando impreso en el dispositivo principal en el paso a.

    Con esta acción, se abre un navegador para iniciar sesión en el proveedor de identidades (IdP) configurado. Proporciona el usuario y la contraseña que definiste durante la configuración inicial de la CLI de gdcloud para iniciar sesión.

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

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

    gdcloud clusters get-credentials CLUSTER_NAME
    

    Se genera un archivo kubeconfig con tu identidad de 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, inicia sesión con el archivo kubeconfig generado con una identidad de usuario:

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

Cierra sesión

Para cerrar sesión en la consola de GDC, sigue estos pasos:

Consola

En la barra de menús, haga clic en Cerrar sesión.

CLI

Cierra sesión en la CLI:

gdcloud auth revoke

Generar manualmente el archivo kubeconfig

Si gestionas recursos con la CLI de kubectl llamando directamente a las APIs de KRM, debes generar el archivo kubeconfig del clúster que aloja tu recurso, en función del tipo de recurso que estés gestionando. Consulta la documentación del recurso para determinar el archivo kubeconfig que necesitas.

Completa la configuración correspondiente según el tipo de recurso.

Recursos del servidor de la API Management

Sigue estos pasos para generar el archivo kubeconfig del servidor de la API Management:

  1. Define la variable de entorno MANAGEMENT_API_SERVER:

    export MANAGEMENT_API_SERVER="root-admin"
    
  2. Genera el archivo kubeconfig del servidor de la API 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:?} elimina el archivo kubeconfig del directorio principal. Cuando generas un archivo kubeconfig, se sobrescribe el archivo que ya tenías. Si no quieres sobrescribir ni eliminar el archivo, haz una copia de seguridad en otra ubicación segura.

Recursos de clúster de Kubernetes

Sigue estos pasos para generar el archivo kubeconfig del clúster de Kubernetes de hardware desnudo:

  1. Define 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:?} elimina el archivo kubeconfig del directorio principal. Cuando generas un archivo kubeconfig, se sobrescribe el archivo que ya tenías. Si no quieres sobrescribir ni eliminar el archivo, haz 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 cierran tu sesión. GDC considera que una sesión está inactiva cuando no hay ninguna interacción activa por tu parte durante una sesión abierta, como el movimiento del cursor o el teclado. Una sesión activa dura hasta doce horas si el usuario realiza alguna actividad.

Consola

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 cuadro de diálogo que te avisará de que se va a cerrar la sesión:

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

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

Interfaz de usuario de la consola que muestra la pantalla de inicio de sesión con un banner que contiene el texto de cierre de sesión: &quot;Se ha cerrado la sesión del sistema porque ha estado inactiva durante demasiado tiempo. Vuelve a iniciar sesión o ponte en contacto con tu administrador para obtener ayuda&quot;.

Para volver a iniciar sesión en la consola de GDC, selecciona tu proveedor de identidad y añade tus credenciales de inicio de sesión. Si usas un servicio, como el panel de control de monitorización, y la consola de GDC cierra tu sesión por inactividad, vuelve a iniciar sesión para obtener acceso.

CLI

En el caso de inactividad en la sesión, la CLI de gdcloud cierra la sesión. Después de que la CLI de gdcloud cierre tu sesión y tú 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 iniciar sesión en la CLI de gdcloud, sigue los pasos de la CLI que se indican en Iniciar sesión.

kubectl

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

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

Para volver a iniciar sesión y usar el archivo kubeconfig, sigue los pasos de la CLI que se indican en Iniciar sesión. Cada vez que se agote el tiempo de espera de una sesión, debes volver a generar los archivos kubeconfig.

Definir políticas de gestión de identidades y accesos de permiso

Descripciones de los roles predefinidos

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

  • Administrador de gestión de identidades y accesos de proyectos: gestiona las políticas de permiso de gestión de identidades y accesos de los proyectos.
  • Desarrollador de OCR con IA: accede al servicio de reconocimiento óptico de caracteres para detectar texto en imágenes.
  • Desarrollador de voz con IA: accede al servicio Speech-to-Text para reconocer la voz y transcribir audio.
  • Desarrollador de traducción con IA: accede al servicio Vertex AI Translation para traducir texto.
  • Administrador de gestión de artefactos: tiene acceso de administrador a los recursos de todos los proyectos de Harbor del espacio de nombres del proyecto.
  • Editor de gestión de artefactos: tiene acceso de lectura y escritura a los recursos de todos los proyectos de Harbor del espacio de nombres del proyecto.
  • Administrador del servicio de autoridades de certificación: tiene acceso para gestionar autoridades de certificación y solicitudes de certificados en su proyecto.
  • Administrador del servicio de certificados: tiene acceso para gestionar certificados y emisores de certificados en su proyecto.
  • Editor de panel de control: tiene acceso de lectura y escritura a los Dashboard recursos personalizados.
  • Visor del panel de control: tiene acceso de solo lectura a los Dashboard recursos personalizados.
  • Administrador de instancias de Harbor: tiene acceso completo para gestionar instancias de Harbor en un proyecto.
  • Lector 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 gestionar proyectos de instancias de Harbor.
  • Administrador de políticas de red de K8s: gestiona las políticas de red en clústeres de Kubernetes.
  • Creador de LoggingRule: 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.
  • LoggingRule Viewer: ve los recursos personalizados de LoggingRule en el espacio de nombres del proyecto.
  • Creador de LoggingTarget: crea recursos personalizados LoggingTarget en el espacio de nombres del proyecto.
  • Editor LoggingTarget: edita recursos personalizados de LoggingTarget en el espacio de nombres del proyecto.
  • LoggingTarget Viewer: ve los recursos personalizados de LoggingTarget en el espacio de nombres del proyecto.
  • Administrador de balanceadores de carga: tiene permisos de lectura y escritura en todos los recursos de balanceadores de carga del espacio de nombres del proyecto.
  • Editor de MonitoringRule: tiene acceso de lectura y escritura a los recursos de MonitoringRule.
  • Visor de MonitoringRule: tiene acceso de solo lectura a los MonitoringRulerecursos personalizados.
  • Editor de MonitoringTarget: tiene acceso de lectura y escritura a los MonitoringTarget recursos personalizados.
  • Visor de MonitoringTarget: tiene acceso de solo lectura a los MonitoringTargetrecursos personalizados.
  • Lector de NAT: tiene acceso de solo lectura a las implementaciones en clústeres de Kubernetes.
  • Administrador del espacio de nombres: gestiona todos los recursos del espacio de nombres del proyecto.
  • Editor de ObservabilityPipeline: tiene acceso de lectura y escritura a los recursos personalizados de ObservabilityPipeine.
  • ObservabilityPipeline Viewer (Visor de ObservabilityPipeline): tiene acceso de solo lectura a los recursos personalizados de ObservabilityPipeline.
  • Administrador de segmentos de proyectos: gestiona los segmentos de almacenamiento y los objetos de los segmentos.
  • Administrador de objetos de segmento de proyecto: tiene acceso de solo lectura a los segmentos de un proyecto y acceso de lectura y escritura a los objetos de esos segmentos.
  • Lector de objetos de segmentos de proyectos: tiene acceso de solo lectura a los segmentos de un proyecto y a los objetos de esos segmentos.
  • Editor de Alertmanager de Project Cortex: otorga permisos para editar la instancia de Alertmanager de Cortex en el espacio de nombres del proyecto.
  • Lector de Alertmanager de Project Cortex: concede permisos para acceder a la instancia de Alertmanager de Cortex en el espacio de nombres del proyecto.
  • Lector de Prometheus de Project Cortex: concede permisos para acceder a la instancia de Prometheus de Cortex en el espacio de nombres del proyecto.
  • Lector de Grafana del proyecto: accede a la instancia de Grafana en el espacio de nombres del proyecto del clúster de administrador de la flota.
  • Administrador de NetworkPolicy de proyecto: gestiona las políticas de red del proyecto en el espacio de nombres del proyecto.
  • Lector de proyectos: tiene acceso de solo lectura a todos los recursos de los espacios de nombres del proyecto.
  • Administrador de máquinas virtuales del proyecto: gestiona las VMs en el espacio de nombres del proyecto.
  • Administrador de imágenes de máquina virtual de proyecto: gestiona las imágenes de máquina virtual en el espacio de nombres del proyecto.
  • Administrador de secretos: gestiona los secretos de Kubernetes en los proyectos.
  • Lector de secretos: consulta los secretos de Kubernetes en los proyectos.
  • Administrador de configuración de servicios: tiene acceso de lectura y escritura a las configuraciones de servicios de un espacio de nombres de un proyecto.
  • Lector de configuración de servicio: tiene acceso de lectura a las configuraciones de servicio en un espacio de nombres de proyecto.
  • Administrador de replicación de volúmenes: gestiona los recursos de replicación de volúmenes.
  • Administrador de cuadernos de Workbench: obtiene acceso de lectura y escritura a todos los recursos de cuadernos de un espacio de nombres de un proyecto.
  • Lector de cuadernos de Workbench: obtiene acceso de solo lectura a todos los recursos de cuadernos de un espacio de nombres de un proyecto y puede ver la interfaz de usuario de Vertex AI Workbench.
  • Lector 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:

  • Visor de AI Platform: otorga permisos para ver servicios preentrenados.
  • Visor de sufijos DNS: 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.
  • Lector de registros de flujo: tiene acceso de solo lectura a todos los recursos de registros de flujo.
  • Lector de Project Discovery: tiene acceso de lectura para todos los usuarios autenticados a la vista del proyecto.
  • Visor de imágenes públicas: tiene acceso de lectura para todos los usuarios autenticados en las imágenes de VM públicas del espacio de nombres vm-images.
  • Monitor de secretos de Artifact Registry del sistema anthos-creds: tiene acceso de solo lectura a los secretos del espacio de nombres anthos-creds.
  • Monitor de secretos de Artifact Registry del sistema gpc-system: tiene acceso de solo lectura a los secretos del espacio de nombres gpc-system.
  • Monitor de secretos de harbor-system del registro de artefactos del sistema: tiene acceso de solo lectura a los secretos del espacio de nombres harbor-system.
  • Visor de tipos de máquinas virtuales: tiene acceso de lectura a los tipos de máquinas virtuales con ámbito de clúster.
  • Visor de tipos de VM: tiene acceso de lectura a los tipos de máquinas virtuales 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: el nombre de un rol que se muestra en la interfaz de usuario.
  • Nombre del recurso de Kubernetes: nombre del recurso personalizado de Kubernetes correspondiente.
  • Nivel: especifica si este rol se limita a la organización o a un proyecto.
  • Type: el tipo de este rol. Por ejemplo, algunos valores posibles son Role, ProjectRole, ClusterRole o ProjectClusterRole.
  • Tipo de vinculación: el tipo de vinculación que debes aplicar a este rol.
  • Permisos del servidor de la API de gestión o del clúster de Kubernetes: los permisos que tiene este rol para el servidor de la API de gestión o el clúster de Kubernetes. Por ejemplo, algunos valores posibles son lectura, escritura, lectura y escritura, o no aplicable (N/A).
  • Deriva a: especifica si este rol deriva a otros roles o no.

Perfil de AO, identidad predefinida y roles de acceso

Perfil de AO
Nombre Nombre del recurso de Kubernetes Administrador inicial Nivel Tipo
Administrador de gestión de identidades y accesos de proyectos project-iam-admin Verdadero Proyecto Role
Desarrollador de OCR con IA ai-ocr-developer Falso Proyecto Role
Visor de AI Platform ai-platform-viewer Falso Proyecto Role
Desarrollador de IA de voz ai-speech-developer Falso Proyecto Role
Desarrollador de traducción con IA ai-translation-developer Falso Proyecto Role
Administrador de gestión de artefactos artifact-management-admin Falso Proyecto Role
Editor de gestión de artefactos artifact-management-editor Falso Proyecto Role
Administrador del Servicio de Autoridades de Certificación certificate-authority-service-admin Falso Proyecto Role
Administrador del servicio de certificados certificate-service-admin Falso Proyecto Role
Editor de paneles de control dashboard-editor Falso Proyecto Role
Lector del panel de control dashboard-viewer Falso Proyecto Role
Administrador de instancias de Harbor harbor-instance-admin Falso Proyecto Role
Visor 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 de balanceadores de carga load-balancer-admin Falso Proyecto ProjectRole
LoggingRule Creator loggingrule-creator Falso Proyecto Role
Editor de LoggingRule loggingrule-editor Falso Proyecto Role
Visualizador de LoggingRule loggingrule-viewer Falso Proyecto Role
Creador de LoggingTarget loggingtarget-creator Falso Proyecto Role
Editor de LoggingTarget loggingtarget-editor Falso Proyecto Role
Lector de LoggingTarget loggingtarget-viewer Falso Proyecto Role
Editor de MonitoringRule monitoringrule-editor Falso Proyecto Role
MonitoringRule Viewer monitoringrule-viewer Falso Proyecto Role
Editor de MonitoringTarget monitoringtarget-editor Falso Proyecto Role
Lector de MonitoringTarget monitoringtarget-viewer Falso Proyecto Role
Administrador de espacios de nombres namespace-admin Falso Proyecto ProjectRole
Visor de NAT nat-viewer Falso Proyecto ProjectRole
Editor de ObservabilityPipeline observabilitypipeline-editor Falso Proyecto Role
Lector de ObservabilityPipeline observabilitypipeline-viewer Falso Proyecto Role
Administrador de cubos de proyectos project-bucket-admin Falso Proyecto Role
Administrador de objetos de segmentos de proyectos project-bucket-object-admin Falso Proyecto Role
Lector de objetos de segmentos de proyectos project-bucket-object-viewer Falso Proyecto Role
Editor de Alertmanager de Project Cortex project-cortex-alertmanager-editor Falso Proyecto Role
Lector de Alertmanager de Project Cortex project-cortex-alertmanager-viewer Falso Proyecto Role
Visor de Prometheus de Project Cortex project-cortex-prometheus-viewer Falso Proyecto Role
Lector de Grafana de proyectos project-grafana-viewer Falso Proyecto Role
Administrador de NetworkPolicy de proyecto project-networkpolicy-admin Falso Proyecto Role
Lector de proyectos project-viewer Falso Proyecto Role
Administrador de VirtualMachine de proyectos project-vm-admin Falso Proyecto Role
Administrador de imágenes de máquinas virtuales de proyectos project-vm-image-admin Falso Proyecto Role
Administrador de secretos secret-admin Falso Proyecto Role
Lector de secretos secret-viewer Falso Proyecto Role
Administrador de configuración de servicios service-configuration-admin Falso Proyecto Role
Lector de configuración de servicios service-configuration-viewer Falso Proyecto Role
Administrador de cuadernos de Workbench workbench-notebooks-admin Falso Proyecto Role
Administrador de replicación de volumen app-volume-replication-admin Falso Clúster Role
Visor de cuadernos de Workbench workbench-notebooks-viewer Falso Proyecto Role
Lector de cargas de trabajo workload-viewer Falso Proyecto Role

Perfil de AO, identidad predefinida y roles de acceso

Perfil de AO
Nombre Tipo de vinculación Permisos del servidor de la API Management Permisos de clúster de Kubernetes Derivar a
Administrador de gestión de identidades y accesos de proyectos RoleBinding
  • RoleBinding, ClusterRoleBinding, Role, ClusterRole, ProjectRole, ProjectClusterRole, ProjectRoleBinding y ProjectClusterRoleBinding: crear, leer, actualizar, eliminar y vincular
  • ProjectServiceAccount: crear, leer, actualizar y eliminar
  • Mostrar el espacio de nombres de un proyecto
N/A Todos los demás roles de AO
Desarrollador de OCR con IA RoleBinding Recursos de reconocimiento óptico de caracteres: 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 traducción con IA RoleBinding Recursos de traducción: lectura y escritura N/A N/A
Administrador de gestión de artefactos RoleBinding HarborProjects: administrador, crear, leer, escribir, eliminar y ver N/A N/A
Editor de gestión de artefactos RoleBinding HarborProjects: leer, escribir y ver N/A N/A
Administrador del Servicio de Autoridades de Certificación RoleBinding Autoridades de certificación y solicitudes de certificados: obtener, enumerar, monitorizar, actualizar, crear, eliminar y parchear N/A N/A
Administrador del servicio de certificados RoleBinding Certificados y emisores de certificados: obtener, mostrar, monitorizar, actualizar, crear, eliminar y aplicar parches N/A N/A
Editor de paneles de control RoleBinding Dashboard recursos personalizados: obtener, leer, crear, actualizar, eliminar y parchear N/A N/A
Lector del panel de control RoleBinding Dashboard: obtener y leer N/A N/A
Administrador de instancias de Harbor RoleBinding Instancias de Harbor: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
Visor 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 ver N/A N/A
Administrador de NetworkPolicy de K8s ProjectRoleBinding N/A Recursos de NetworkPolicy: crear, leer, obtener, actualizar, eliminar y parchear N/A
Administrador de balanceadores de carga RoleBinding N/A
  • Backend: obtener, ver, enumerar, crear, parchear, actualizar y eliminar
  • HealthCheck: obtener, ver, enumerar, crear, parchear, actualizar y eliminar
  • BackendService: obtener, ver, enumerar, crear, parchear, actualizar y eliminar
  • ForwardingRuleExternal: obtener, ver, enumerar, crear, parchear, actualizar y eliminar
  • ForwardingRuleInternal: obtener, ver, enumerar, crear, parchear, actualizar y eliminar
N/A
LoggingRule Creator RoleBinding LoggingRule recursos personalizados: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
Editor de LoggingRule RoleBinding LoggingRule recursos personalizados: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
Visualizador de LoggingRule RoleBinding LoggingRule recursos personalizados: consulta N/A N/A
Creador de LoggingTarget RoleBinding LoggingTarget recursos personalizados: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
Editor de LoggingTarget RoleBinding LoggingTarget recursos personalizados: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
Lector de LoggingTarget RoleBinding LoggingTarget recursos personalizados: consulta N/A N/A
Editor de MonitoringRule RoleBinding MonitoringRule recursos personalizados: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
MonitoringRule Viewer RoleBinding MonitoringRule recursos personalizados: consulta N/A N/A
Editor de MonitoringTarget RoleBinding MonitoringTarget recursos personalizados: crear, leer, actualizar, eliminar y aplicar parches N/A N/A
Lector de MonitoringTarget RoleBinding MonitoringTarget recursos personalizados: consulta N/A N/A
Administrador de espacios de nombres ProjectRoleBinding N/A Todos los recursos: acceso de lectura y escritura en el espacio de nombres del proyecto N/A
Visor de NAT ProjectRoleBinding N/A Despliegues: obtener y leer N/A
Editor de ObservabilityPipeline RoleBinding Recursos de ObservabilityPipeline: obtener, leer, crear, actualizar, eliminar y parchear N/A N/A
Lector de ObservabilityPipeline RoleBinding Recursos de ObservabilityPipeline: obtener y leer N/A N/A
Administrador de cubos de proyectos RoleBinding Contenedor: leer y escribir en el espacio de nombres del proyecto N/A N/A
Administrador de objetos de segmentos de proyectos RoleBinding
  • Intervalo: lectura
  • Objetos: lectura y escritura
N/A N/A
Lector de objetos de segmentos de proyectos RoleBinding Segmentos y objetos: lectura N/A N/A
Editor de Alertmanager de Project Cortex RoleBinding Sistema Cortex y Cortex Alertmanager: lectura y escritura N/A N/A
Lector de Alertmanager de Project Cortex RoleBinding Sistema Cortex y Cortex Alertmanager: lee N/A N/A
Visor de Prometheus de Project Cortex RoleBinding Sistema Cortex y Cortex Prometheus: lee N/A N/A
Lector de Grafana de proyectos RoleBinding Sistema Grafana y Grafana: lectura y escritura N/A N/A
Administrador de NetworkPolicy de proyecto RoleBinding Políticas de red del proyecto: lectura y escritura en el espacio de nombres del proyecto N/A N/A
Lector de proyectos RoleBinding Todos los recursos del espacio de nombres del proyecto: lectura N/A N/A
Administrador de VirtualMachine de proyectos RoleBinding
  • Máquinas virtuales, discos, solicitudes de acceso, acceso externo, solicitudes de copia de seguridad, copias de seguridad, solicitudes de restauración, solicitudes de eliminación de copias de seguridad, restauraciones y solicitudes de restablecimiento de contraseñas: leer, crear, actualizar y eliminar
  • Reinicio de la máquina virtual:
  • 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 máquinas virtuales de proyectos RoleBinding
  • Imágenes de máquinas virtuales: leer
  • Importaciones de imágenes de VM: lectura y escritura
N/A N/A
Administrador de secretos RoleBinding Secretos de Kubernetes: leer, crear, actualizar, eliminar y aplicar parches N/A N/A
Lector 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
Lector de configuración de servicios RoleBinding ServiceConfigurations: leído N/A N/A
Administrador de replicación de volumen ClusterRoleBinding Volume failovers, volume relationship replicas: Crear, obtener, enumerar, ver y eliminar N/A N/A
Administrador de cuadernos de Workbench RoleBinding N/A
  • Recursos personalizados (CR) de cuadernos en el espacio de nombres del proyecto: crear, leer, actualizar y eliminar
  • Instancias de cuaderno que usan Istio: lectura y escritura
  • ClusterInfo objetos: lectura
N/A
Visor de cuadernos de Workbench RoleBinding N/A
  • Recursos personalizados (CR) de Notebook en el espacio de nombres del proyecto: lectura
  • Instancias de cuaderno que usan Istio: lectura y escritura
N/A
Lector de cargas de trabajo ProjectRoleBinding N/A
  • Recursos personalizados de pods en el espacio de nombres del proyecto: lectura
  • Recursos personalizados de implementación en el espacio de nombres del proyecto: lectura
N/A

Roles de identidad y acceso predefinidos comunes

Roles habituales
Nombre Nombre del recurso de Kubernetes Administrador inicial Nivel Tipo
Visor de AI Platform ai-platform-viewer Falso Proyecto Role
Visor de sufijos DNS dnssuffix-viewer Falso Organización Role
Administrador de registros de flujo flowlog-admin Falso Organización ClusterRole
Visualizador de registros de flujo flowlog-viewer Falso Proyecto ClusterRole
Visor de descubrimiento de proyectos projectdiscovery-viewer Falso Proyecto ClusterRole
Visor de imágenes públicas public-image-viewer Falso Organización Role
Monitor de secretos de Artifact Registry del sistema anthos-creds 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 de secretos de Artifact Registry del sistema de Harbor sar-harbor-system-secret-monitor Falso Organización Role
Visor de tipos de máquinas virtuales virtualmachinetype-viewer Falso Organización OrganizationRole
Lector de tipos de VM vmtype-viewer Falso Organización Role

Roles de identidad y acceso predefinidos comunes

Roles habituales
Nombre Tipo de vinculación Permisos de clúster de administrador Permisos de clúster de Kubernetes Derivar a
Visor de AI Platform RoleBinding Servicios preentrenados: Read N/A N/A
Visor de sufijos DNS ClusterRoleBinding Maps de configuración de sufijos DNS: lectura N/A N/A
Administrador de registros de flujo ClusterRoleBinding Recursos de registro de flujo: obtener y leer Recursos de registro de flujo: obtener y leer N/A
Visualizador de registros de flujo ClusterRoleBinding Recursos de registros de flujo: crear, obtener, leer, parchear, actualizar y eliminar Recursos de registros de flujo: crear, obtener, leer, parchear, actualizar y eliminar N/A
Visor de descubrimiento de proyectos ClusterRoleBinding Proyectos: lectura N/A N/A
Visor de imágenes públicas RoleBinding Imágenes de máquinas virtuales: leer N/A N/A
Monitor de secretos de Artifact Registry del sistema anthos-creds 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 de secretos de Artifact Registry del sistema de Harbor RoleBinding harbor-system secretos: obtener y leer harbor-system secretos: obtener y leer N/A
Visor de tipos de máquinas virtuales OrganizationRoleBinding N/A Tipos de máquinas virtuales: lectura N/A
Lector de tipos de VM ClusterRoleBinding Tipos de máquinas virtuales: lectura N/A N/A

Hay dos formas de conceder acceso a los recursos:

Configurar vinculaciones de roles mediante la CLI

Acceso de AO en el clúster de administración

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 mediante un RoleBinding, en lugar de un ClusterRoleBinding.

Para conceder acceso a un AO al clúster de administrador, sigue estos pasos:

  1. Exporta el correo que usas para acceder a la cuenta de administrador. Por ejemplo, un correo como el siguiente: ao-alice@example.com.

    export AO_EMAIL=AO_EMAIL
    
  2. Crea un enlace de rol para conceder acceso de ${AO_EMAIL}administrador de gestión de identidades y accesos de proyectosiam-test en el espacio de nombres ${AO_EMAIL}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 de Kubernetes iam-test corresponde al proyecto iam-test del clúster de administrador.

  3. Verifica que la cuenta de AO tenga permisos para crear enlaces 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 un enlace de rol para conceder acceso de lector de proyectos ${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 predefinido de GDC. El espacio de nombres de Kubernetes bar corresponde al proyecto bar del clúster orgadmin.

  5. Verifica que la cuenta de AO no tenga permisos para crear enlaces de rol 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: Elimina el enlace de rol para revocar el permiso concedido a la cuenta de administrador de organización:

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

Acceso de AO en clústeres de usuarios

Un AO usa recursos de ProjectRole y ProjectRoleBinding para obtener acceso al espacio de nombres de los clústeres de usuarios. Sin embargo, los administradores principales pueden conceder permisos a toda la organización en clústeres de usuarios mediante los recursos predefinidos OrganizationRole y ProjectRoleBinding.

Sigue estos pasos para dar acceso a los clusters de usuarios a los AOs:

Para conceder acceso a clústeres de usuarios, debes tener el rol de administrador de gestión de identidades y accesos del proyecto.

  1. Crea un recurso ProjectRoleBinding para conceder acceso de administrador de ${AO_EMAIL} Namespace 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 Iniciar sesión con la CLI y kubectl para obtener las credenciales de usuario del 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: Elimina las vinculaciones de roles del proyecto para revocar el permiso concedido a la cuenta de AO de prueba:

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

Configurar vinculaciones de roles en todo el proyecto mediante la interfaz de usuario

Un operador de aplicaciones añade otros operadores de aplicaciones al proyecto para que tengan acceso a los recursos del proyecto.

Para obtener los permisos que necesitas para configurar enlaces de roles, pide a tu administrador de gestión de identidades y accesos de proyectos que te conceda el rol Administrador de gestión de identidades y accesos de proyectos.

Sigue estos pasos para configurar las vinculaciones de roles:

  1. Inicia sesión en la consola del dispositivo GDC con air gap.
  2. Selecciona un proyecto.
  3. En el menú de navegación, haz clic en Gestión de acceso.
  4. Haz clic en Añadir miembro.
  5. En la lista Proveedor de identidades, seleccione un proveedor.
  6. Elige si quieres añadir usuarios concretos o grupos.
  7. En el campo Nombre de usuario o alias de grupo, introduce el nombre de usuario, la dirección de correo o el alias.
  8. En la lista Rol, selecciona el rol que quieras asignar al usuario o al grupo, como Lector de proyectos.
  9. Haz clic en Añadir.

Quitar vinculaciones de roles mediante la interfaz de usuario

Cuando ya no se necesite el acceso, quita al miembro y sus roles, permisos y acceso asociados.

Sigue estos pasos para quitar miembros:

  1. Inicia sesión en la consola del dispositivo GDC con air gap.
  2. Selecciona un proyecto.
  3. En el menú de navegación, haz clic en Gestión de acceso.
  4. En la lista Miembros autorizados, selecciona un miembro.
  5. Haz clic en Quitar miembro.
  6. Cuando se te indique, haz clic en Quitar miembro para confirmar la acción.