Ce guide explique comment configurer Vertex AI pour utiliser un compte de service personnalisé dans les scénarios suivants :
Lorsque vous réalisez un entraînement personnalisé, vous pouvez configurer Vertex AI pour utiliser un compte de service personnalisé dans le conteneur d'entraînement, qu'il s'agisse d'un conteneur prédéfini ou d'unconteneur personnalisé.
Lorsque vous déployez une ressource
Model
résultant d'un entraînement personnalisé sur une ressourceEndpoint
pour diffuser des prédictions en ligne, vous pouvez configurer Vertex AI pour utiliser un compte de service personnalisé dans le conteneur qui diffuse les prédictions, qu'il s'agisse d'un conteneur prédéfini ou d'un conteneur personnalisé.
Quand utiliser un compte de service personnalisé
Pendant l'exécution, Vertex AI utilise généralement les autorisations de l'un des multiples comptes de service que Google crée et gère pour votre projet Google Cloud. Pour permettre à Vertex AI d'accéder à d'autres services Google Cloud dans certains contextes, vous pouvez ajouter des rôles spécifiques aux agents de service de Vertex AI.
Toutefois, le fait de personnaliser les autorisations des agents de service peut ne pas fournir un contrôle d'accès suffisamment précis. Voici quelques cas d'utilisation courants :
- Accorder moins d'autorisations aux tâches et modèles Vertex AI L'agent de service Vertex AI par défaut a accès à BigQuery et à Cloud Storage.
- Autoriser différentes tâches à accéder à différentes ressources. Vous pouvez autoriser de nombreux utilisateurs à lancer des tâches dans un même projet, mais n'autoriser les tâches de chaque utilisateur qu'à accéder à une table BigQuery ou à un bucket Cloud Storage spécifique.
Par exemple, vous pouvez personnaliser individuellement chaque tâche d'entraînement personnalisée que vous exécutez pour avoir accès à différentes ressources Google Cloud en dehors de votre projet.
De plus, la personnalisation des autorisations des agents de service ne modifie pas les autorisations disponibles pour un conteneur qui diffuse des prédictions à partir d'un Model
personnalisé.
Pour personnaliser l'accès à chaque fois que vous effectuez un entraînement personnalisé ou pour personnaliser les autorisations d'un conteneur de prédiction Model
résultant d'un entraînement personnalisé, vous devez utiliser un compte de service personnalisé.
Accès par défaut
Cette section décrit l'accès par défaut disponible pour les conteneurs d'entraînement personnalisés et pour les conteneurs de prédiction des ressources Model
résultant d'un entraînement personnalisé.
Lorsque vous utilisez un compte de service personnalisé, vous remplacez cet accès pour une ressource CustomJob
, HyperparameterTuningJob
, TrainingPipeline
ou DeployedModel
spécifique.
Conteneurs d'entraînement
Lorsque vous créez un CustomJob
, HyperparameterTuningJob
ou TrainingPipeline
personnalisé, le conteneur d'entraînement s'exécute par défaut en utilisant l'agent de service de code personnalisé de Vertex AI de votre projet Google Cloud.
Obtenez plus d'informations sur l'agent de service de code personnalisé de Vertex AI et découvrez comment lui donner accès à d'autres ressources Google Cloud.
Conteneurs de prédiction
Lorsque vous déployez un Model
personnalisé entraîné sur un Endpoint
, le conteneur de prédiction utilise un compte de service géré par Vertex AI. Ce compte de service est différent des agents de service d'IA Vertex.
Le compte de service utilisé par défaut par le conteneur de prédiction a l'autorisation de lire des artefacts de modèle que Vertex AI met à disposition sur un URI stocké dans la variable d'environnement AIP_STORAGE_URI
. Ne comptez pas sur le fait que le compte de service dispose d'autres autorisations. Vous ne pouvez pas personnaliser les autorisations du compte de service.
Configurer un compte de service personnalisé
Les sections suivantes décrivent comment configurer un compte de service personnalisé à utiliser avec Vertex AI et comment configurer CustomJob
, HyperparameterTuningJob
, TrainingPipeline
ou DeployedModel
pour utiliser le compte de service.
Configurer un compte de service personnalisé
Pour configurer un compte de service personnalisé, procédez comme suit :
Créez un compte de service géré par l'utilisateur. Le compte de service géré par l'utilisateur doit se trouver dans le même projet que vos ressources Vertex AI.
Accordez à votre nouveau compte de service des rôles IAM qui lui permettent d'accéder aux services et ressources Google Cloud que vous souhaitez que Vertex AI puisse utiliser lors de l'entraînement personnalisé ou de la prédiction.
Dans le projet où vous utilisez Vertex AI, recherchez l'adresse e-mail de l'agent de service Vertex AI du projet. Cette adresse e-mail est au format suivant :
service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
PROJECT_NUMBER est remplacé par le numéro de projet correspondant à votre projet Google Cloud.
Vous pouvez trouver le compte de service répertorié sur la page IAM de Google Cloud Console :
Si vous prévoyez d'utiliser le compte de service personnalisé uniquement pour l'entraînement, ignorez cette étape. Si vous prévoyez d'utiliser le compte de service personnalisé pour un conteneur de prédiction, attribuez-lui un rôle supplémentaire :
Dans le projet où vous utilisez Vertex AI, accordez à l'agent de service Vertex AI du projet le rôle "Administrateur de compte de service" (
roles/iam.serviceAccountAdmin
) pour votre nouveau compte de service personnalisé. Pour ce faire, utilisez la CLI gcloud afin d'exécuter la commande suivante :gcloud iam service-accounts add-iam-policy-binding \ --role=roles/iam.serviceAccountAdmin \ --member=serviceAccount:AI_PLATFORM_SERVICE_AGENT \ CUSTOM_SERVICE_ACCOUNT
Dans cette commande, remplacez les espaces réservés suivants :
AI_PLATFORM_SERVICE_AGENT : adresse e-mail de l'agent de service Vertex AI de votre projet, que vous avez trouvé à l'étape précédente de cette section.
CUSTOM_SERVICE_ACCOUNT : adresse e-mail du nouveau compte de service géré par l'utilisateur que vous avez créé à la première étape de cette section.
Spécifier un compte de service personnalisé pour les ressources Vertex AI
Le processus de configuration de Vertex AI permettant d'utiliser un compte de service spécifique pour une ressource s'appelle la liaison ou l'association du compte de service à la ressource. Les sections suivantes expliquent comment associer le compte de service que vous avez créé dans la section précédente à plusieurs ressources Vertex AI.
Associer un compte de service à une ressource d'entraînement personnalisé
Pour configurer Vertex AI afin qu'il utilise votrenouveau compte de service lors de l'entraînement personnalisé, spécifiez l'adresse e-mail du compte de service dans le champ serviceAccount
d'un message CustomJobSpec
lorsque vous démarrez l'entraînement personnalisé. Selon le type de ressource d'entraînement personnalisé que vous créez, l'emplacement de ce champ dans votre requête API peut varier :
Si vous créez un
CustomJob
, spécifiez l'adresse e-mail du compte de service dansCustomJob.jobSpec.serviceAccount
.Découvrez comment créer un
CustomJob
.Si vous créez un
HyperparameterTuningJob
, spécifiez l'adresse e-mail du compte de service dansHyperparameterTuningJob.trialJobSpec.serviceAccount
.Découvrez comment créer un
HyperparameterTuningJob
.Si vous créez un
TrainingPipeline
personnalisé sans réglage d'hyperparamètres, spécifiez l'adresse e-mail du compte de service dansTrainingPipeline.trainingTaskInputs.serviceAccount
.Si vous créez un
TrainingPipeline
personnalisé avec réglage d'hyperparamètres, spécifiez l'adresse e-mail du compte de service dansTrainingPipeline.trainingTaskInputs.trialJobSpec.serviceAccount
.
Associer un compte de service à un conteneur qui diffuse des prédictions en ligne
Pour configurer le conteneur de prédiction Model
résultant d'un entraînement personnalisé afin qu'il utilise votre nouveau compte de service, spécifiez l'adresse e-mail du compte de service lorsque vous déployez le Model
sur un Endpoint
:
Console
Suivez le guide Déployer un modèle à l'aide de Cloud Console. Lorsque vous spécifiez les paramètres du modèle, sélectionnez le compte de service dans la liste déroulante Compte de service.
gcloud
Suivez la section Déployer un modèle à l'aide de l'API Vertex AI. Lorsque vous exécutez la commande gcloud
ai endpoints deploy-model
, utilisez l'option --service-account
pour spécifier l'adresse e-mail de votre compte de service.
Exemple :
gcloud ai endpoints deploy-model ENDPOINT_ID \
--region=LOCATION \
--model=MODEL_ID \
--display-name=DEPLOYED_MODEL_NAME \
--machine-type=MACHINE_TYPE \
--min-replica-count=MIN_REPLICA_COUNT \
--max-replica-count=MAX_REPLICA_COUNT \
--traffic-split=0=100 \
--service-account=CUSTOM_SERVICE_ACCOUNT
Remplacez CUSTOM_SERVICE_ACCOUNT par l'adresse e-mail du compte de service.
API
Suivez la section Déployer un modèle à l'aide de l'API Vertex AI. Lorsque vous envoyez la requête projects.locations.endpoints.deployModel
, définissez le champ deployedModel.serviceAccount
sur l'adresse e-mail du compte de service.
Accéder aux services Google Cloud dans votre code
Si vous configurez Vertex AI pour utiliser un compte de service personnalisé en suivant les instructions des sections précédentes, votre conteneur d'entraînement ou votre conteneur de prédiction peut accéder à tous les services et ressources Google Cloud auxquels le compte de service a accès.
Pour accéder aux services Google Cloud, rédigez votre code d'entraînement ou votre code de diffusion de prédictions de manière à utiliser les Identifiants par défaut de l'application (ADC) et spécifiez explicitement l'ID ou le numéro du projet de la ressource à laquelle vous souhaitez accéder. Découvrez comment écrire votre code pour accéder à d'autres services Google Cloud.
Étape suivante
- Obtenez plus d'informations sur le contrôle des accès pour la solution d'IA Vertex.
- Découvrez les autorisations IAM spécifiques et les opérations qu'elles acceptent.