AI Platform Pipelines depende de las funciones de administración de identidades y accesos (IAM) para autorizar a usuarios, grupos y servicios cuando las canalizaciones de aprendizaje automático (AA) acceden a los recursos de Google Cloud.
En este documento, se describen las funciones necesarias para hacer lo siguiente:
- Configurar AI Platform Pipelines
- Ejecutar AI Platform Pipelines con una cuenta de servicio administrada por el usuario
- Acceder a AI Platform Pipelines como usuario
Obtén más información sobre los conceptos de IAM y su funcionamiento.
Funciones necesarias para configurar AI Platform Pipelines
Para implementar AI Platform Pipelines, debes tener las funciones de visualizador (roles/viewer
) y administrador de Kubernetes Engine (roles/container.admin
) en el proyecto.
La función de visualizador proporciona acceso de lectura a todos los recursos dentro de un proyecto. La función de administrador de Kubernetes Engine proporciona acceso completo a los clústeres de Kubernetes y los objetos de la API de Kubernetes.
Para seguir el principio del menor privilegio, configura tu clúster de AI Platform Pipelines a fin de usar el acceso detallado. Para configurar tu clúster con acceso detallado, también debes tener la función de administrador de cuenta de servicio (roles/iam.serviceAccountAdmin
) en el proyecto. Esta función proporciona acceso para crear y configurar cuentas de servicio de IAM.
Obtén más información para otorgar acceso a las funciones de IAM.
Rol | Permisos |
---|---|
Visualizador (roles/viewer ) |
Proporciona permisos para acciones de solo lectura que no afectan el estado, como visualizar (pero no modificar) los recursos o datos existentes dentro de un proyecto. |
Administrador de Kubernetes Engine( Proporciona acceso a la administración completa de los clústeres y sus objetos de la API de Kubernetes.
Para configurar una cuenta de servicio en los nodos, también debes tener la función de usuario de la cuenta de servicio ( Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Administrador de cuenta de servicio( Crear y administrar cuentas de servicio Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Funciones necesarias para ejecutar AI Platform Pipelines con una cuenta de servicio administrada por el usuario
Los pods en un clúster de Google Kubernetes Engine (GKE) se autentican en Google Cloud mediante la cuenta de servicio del clúster de GKE. Para facilitar la configuración y el uso de AI Platform Pipelines, los clústeres de GKE que crea AI Platform Pipelines usan la cuenta de servicio de Compute Engine predeterminada con el permiso de acceso https://www.googleapis.com/auth/cloud-platform
. Este permiso de acceso proporciona acceso completo a los recursos y a las API de Google Cloud que habilitaste en tu proyecto, lo que puede proporcionar a las cargas de trabajo de tu clúster acceso excesivo a Google Cloud.
Si deseas asignar permisos detallados a las cargas de trabajo que se ejecutan en el clúster de AI Platform Pipelines, crea una cuenta de servicio para el clúster y otorga a esta cuenta de servicio las siguientes funciones en el proyecto:
- Visualizador de Monitoring: La función de visualizador de Monitoring (
roles/monitoring.viewer
) proporciona acceso de lectura a los datos y la configuración de supervisión. - Escritor de métricas de Monitoring: La función de escritor de métricas de Monitoring (
roles/monitoring.metricWriter
) proporciona acceso de escritura para que tu clúster pueda escribir métricas. - Escritor de registros: La función de escritor de registros (
roles/logging.logWriter
) permite que tu clúster escriba entradas de registro. - Visualizador de objetos de almacenamiento: Si planeas crear imágenes de contenedor personalizadas para las canalizaciones que están almacenadas en Container Registry, otorga al clúster de AI Platform Pipelines la función de visualizador de objetos de almacenamiento
roles/storage.objectViewer
en el proyecto.
También debes otorgar a tu cuenta de servicio acceso a cualquier recurso o API de Google Cloud que usen las canalizaciones de AA.
- Configura el clúster de GKE para usar una cuenta de servicio administrada por el usuario.
- Obtén más información sobre las funciones de IAM y la administración de cuentas de servicio.
Función | Título | Descripción | Permisos |
---|---|---|---|
Visualizador de Monitoring( Proporciona acceso de solo lectura para obtener y mostrar información sobre todos los datos de supervisión y configuraciones. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
||
Escritor de métricas de Monitoring( Proporciona acceso de solo escritura a las métricas. Esto proporciona de forma exacta los permisos que necesita el agente de Cloud Monitoring y otros sistemas que envían métricas. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
||
Escritor de registros( Proporciona los permisos para escribir entradas de registro. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
||
Visualizador de objetos de Storage( Otorga acceso para ver los objetos y sus metadatos, excepto las LCA. También puede crear una lista de los objetos de un bucket. Recursos de nivel más bajo en los que puedes otorgar esta función:
|
|
Funciones necesarias para acceder a AI Platform Pipelines como usuario
A fin de acceder a un clúster de AI Platform Pipelines, cada usuario debe tener la función de visualizador de clústeres de Kubernetes Engine (roles/container.clusterViewer
) y la función de usuario de la cuenta de servicio para la cuenta de servicio del clúster de Google Kubernetes Engine.
Función | Título | Descripción | Permisos |
---|---|---|---|
Lector de clústeres de Kubernetes Engine( Proporciona acceso para obtener y enumerar clústeres de GKE. |
|
Continúa con la siguiente sección para obtener información sobre cómo otorgar a los usuarios acceso a la función de visualizador de clústeres de Kubernetes Engine y a la función de usuario de la cuenta de servicio.
Otorga a un usuario acceso a AI Platform Pipelines
Usa las siguientes instrucciones para otorgar a una cuenta de usuario acceso a tu clúster de AI Platform Pipelines.
Abre AI Platform Pipelines en la consola de Google Cloud.
Busca el clúster de AI Platform Pipelines. Toma nota del clúster y la zona para usarlos en pasos posteriores.
Abre una sesión de Cloud Shell.
Cloud Shell se abrirá en un marco en la parte inferior de la consola de Google Cloud. Usa Cloud Shell para completar el resto de este proceso.
Ejecuta el siguiente comando para establecer el proyecto de Google Cloud predeterminado de esta sesión de Cloud Shell.
gcloud config set project PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.
Ejecuta el siguiente comando para buscar la cuenta de servicio que usa el clúster de GKE.
gcloud container clusters describe CLUSTER_NAME --zone ZONE \ --format="flattened(nodePools[].config.serviceAccount)"
Reemplaza lo siguiente:
- CLUSTER_NAME: Es el nombre del clúster de GKE.
- ZONE: Es la zona en la que se creó el clúster.
La respuesta puede indicar que tu clúster usa una cuenta de servicio llamada
default
. Este valor se refiere a la cuenta de servicio predeterminada para Compute Engine. Ejecuta el siguiente comando para buscar el nombre completo de esta cuenta de servicio.gcloud iam service-accounts list \ --filter "compute@developer.gserviceaccount.com"
Obtén más información sobre la cuenta de servicio predeterminada de Compute Engine.
Otorga a tu cuenta de usuario la función de usuario de la cuenta de servicio de tu clúster de GKE.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME \ --member=user:USERNAME \ --role=roles/iam.serviceAccountUser
Reemplaza lo siguiente:
- SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio del clúster de GKE, que encontraste en el paso anterior. Los nombres de cuentas de servicio tienen el siguiente formato: *@*.gserviceaccount.com
- USERNAME: Es tu nombre de usuario en Google Cloud.
Otorga a tu cuenta de usuario la función de visualizador de clústeres de GKE en el proyecto.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USERNAME --role roles/container.clusterViewer
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID del proyecto de Google Cloud.
- USERNAME: Es tu nombre de usuario en Google Cloud.