Entrena con una cuenta de servicio personalizada

Puedes configurar AI Platform Training para usar la cuenta de servicio que desees cuando se ejecuta la aplicación de entrenamiento. Usar una cuenta de servicio personalizada te permite personalizar a qué recursos de Google Cloud puede acceder tu código de entrenamiento sin otorgar permisos demasiado amplios a la cuenta de servicio que AI Platform Training usa de forma predeterminada. Además, puedes usar una cuenta de servicio personalizada para otorgar a tu código acceso a servicios adicionales de Google Cloud, como Administrador de secretos.

La guía se centra en los permisos de los recursos de AI Platform Training para acceder a otros recursos de Google Cloud. Para obtener más información sobre los permisos que necesitas para acceder a los recursos de AI Platform Training, lee Control de acceso.

Información sobre la cuenta de servicio administrada por Google

De forma predeterminada, AI Platform Training usa una cuenta de servicio administrada por Google para ejecutar trabajos de entrenamiento. Esta cuenta de servicio se identifica con una dirección de correo electrónico que tiene el siguiente formato:

service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com

PROJECT_NUMBER se reemplaza por el número de proyecto de tu proyecto de Google Cloud.

Busca la cuenta de servicio correspondiente para tu proyecto en Google Cloud Console o mediante la herramienta de línea de comandos de gcloud:

Cloud Console

Ve a la página IAM en Cloud Console y busca al miembro que coincida con el formato de dirección de correo electrónico que se describió antes en esta sección. La cuenta de servicio también tiene el nombre Google Cloud ML Engine Service Agent.

Ir a la página IAM

gcloud

Ejecuta el siguiente comando en un entorno de shell en el que inicializaste la herramienta de gcloud:

gcloud projects get-iam-policy PROJECT_ID \
  --flatten="bindings[].members" \
  --format="table(bindings.members)" \
  --filter="bindings.role:roles/ml.serviceAgent" \
  | grep serviceAccount:

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Con este comando se genera lo siguiente:

serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT

GOOGLE_MANAGED_SERVICE_ACCOUNT es la dirección de correo electrónico de la cuenta de servicio administrada por Google de tu proyecto en AI Platform.

Esta cuenta de servicio administrada por Google tiene permisos que son adecuados para la mayoría de los trabajos de entrenamiento. Por ejemplo, puede realizar operaciones de lectura y escritura en depósitos de Cloud Storage en el mismo proyecto de Google Cloud.

Si necesitas que tus aplicaciones de entrenamiento se ejecuten con permisos adicionales, puedes asignar funciones adicionales de administración de identidades y accesos (IAM) a esta cuenta de servicio. Por ejemplo, puedes otorgarle acceso a los depósitos de Cloud Storage en otros proyectos de Google Cloud.

Usa una cuenta de servicio personalizada

Si deseas otorgar o limitar los permisos de Google Cloud para un trabajo de entrenamiento específico, usa una cuenta de servicio personalizada en lugar de la cuenta de servicio administrada por Google.

Para ello, primero configura una cuenta de servicio personalizada. Luego, especifica la cuenta de servicio personalizada cuando crees un trabajo de entrenamiento.

Configura una cuenta de servicio personalizada

Para configurar una cuenta de servicio personalizada, haz lo siguiente:

  1. Crea una cuenta de servicio administrada por el usuario.

  2. Otorga funciones de IAM nuevas a la cuenta de servicio para proporcionar a tu aplicación de entrenamiento cualquier permiso que necesite cuando se ejecuta.

  1. Otorga a la cuenta de servicio administrada por Google Platform de tu proyecto la función de administrador de cuenta de servicio (roles/iam.serviceAccountAdmin) para tu cuenta de servicio personalizada nueva. Para hacerlo, usa la herramienta de gcloud a fin de ejecutar el siguiente comando:

    gcloud iam service-accounts add-iam-policy-binding \
      --role=roles/iam.serviceAccountAdmin \
      --member=serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT \
      CUSTOM_SERVICE_ACCOUNT
    

    En este comando, reemplaza los siguientes marcadores de posición:

    • GOOGLE_MANAGED_SERVICE_ACCOUNT: Es la dirección de correo electrónico del Google Cloud ML Engine Service Agent de tu proyecto. Obtén información sobre cómo encontrar esta dirección de correo electrónico en una sección anterior de esta guía.

    • CUSTOM_SERVICE_ACCOUNT: Es la dirección de correo electrónico de la cuenta de servicio administrada por el usuario nueva que acabas de crear en un paso anterior de esta sección.

Especifica la cuenta de servicio personalizada para el trabajo de entrenamiento

Para configurar AI Platform Training de modo que use la cuenta de servicio personalizada cuando ejecuta la aplicación de entrenamiento, especifica el campo trainingInput.serviceAccount cuando crees un trabajo de entrenamiento..

Si usas la herramienta de gcloud para crear un trabajo de entrenamiento, debes usar un archivo config.yaml a fin de especificar este campo. Por ejemplo:

trainingInput:
  serviceAccount: CUSTOM_SERVICE_ACCOUNT

Reemplaza CUSTOM_SERVICE_ACCOUNT por la dirección de correo electrónico de la cuenta de servicio administrada por el usuario que configuraste en una sección anterior de esta guía.

¿Qué sigue?