Vous pouvez configurer AI Platform Prediction afin qu'il utilise le compte de service de votre choix lorsqu'il exécute du code personnalisé pour diffuser des prédictions. Plus précisément, vous pouvez spécifier un compte de service personnalisé lorsque vous effectuez l'une des opérations suivantes :
- Créer une version de modèle utilisant un conteneur personnalisé
- Créer une version de modèle utilisant une routine de prédiction personnalisée
L'utilisation d'un compte de service personnalisé vous permet de personnaliser les ressources Google Cloud auxquelles votre code de diffusion personnalisé peut accéder sans accorder trop d'autorisations au compte de service utilisé par AI Platform Prediction par défaut.
Ce guide se concentre sur les autorisations des ressources AI Platform Prediction pour accéder à d'autres ressources Google Cloud. Pour en savoir plus sur les autorisations nécessaires pour accéder directement aux ressources AI Platform Prediction, consultez la page Contrôle des accès.
Comprendre l'agent de service
Par défaut, AI Platform Prediction utilise un agent de service pour diffuser des prédictions en ligne à partir de versions de modèle qui n'utilisent pas de conteneurs personnalisés. Cet agent de service est identifié par une adresse e-mail au format suivant:
service-PROJECT_NUMBER@cloud-ml.google.com.iam.gserviceaccount.com
PROJECT_NUMBER est remplacé par le numéro de projet correspondant à votre projet Google Cloud.
Recherchez le compte de service correspondant pour votre projet dans Google Cloud Console ou à l'aide de Google Cloud CLI :
console Google Cloud
Accédez à la page IAM de la console Google Cloud, sélectionnez Inclure les attributions de rôles fournis par Google, puis recherchez le compte principal correspondant au format d'adresse e-mail décrit précédemment dans cette section. Le compte de service porte également le nom Google Cloud ML Engine Service Agent
.
gcloud
Exécutez la commande suivante dans un environnement Shell dans lequel vous avez initialisé la CLI gcloud :
gcloud projects get-iam-policy PROJECT_ID \
--flatten="bindings[].members" \
--format="table(bindings.members)" \
--filter="bindings.role:roles/ml.serviceAgent" \
| grep serviceAccount:
Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.
Cette commande génère les éléments suivants :
serviceAccount:GOOGLE_MANAGED_SERVICE_ACCOUNT
GOOGLE_MANAGED_SERVICE_ACCOUNT est l'adresse e-mail de l'agent de service AI Platform de votre projet.
Cet agent de service dispose d'autorisations appropriées pour la plupart des versions de modèle. Par exemple, il peut lire à partir de buckets Cloud Storage situés dans le même projet Google Cloud.
Si vous souhaitez que vos routines de prédiction personnalisées s'exécutent avec des autorisations supplémentaires, vous pouvez attribuer des rôles IAM supplémentaires à ce compte de service. Par exemple, vous pouvez l'autoriser à accéder aux buckets Cloud Storage d'autres projets Google Cloud.
Compte de service utilisé par défaut dans les conteneurs personnalisés
Si la version de votre modèle utilise un conteneur personnalisé, par défaut le conteneur ne s'exécute pas à l'aide de l'agent de service AI Platform. Il utilise plutôt un compte de service géré par AI Platform Prediction. Ce compte de service est autorisé à lire les artefacts de modèle qu'AI Platform Prediction rend disponible via un URI stocké dans la variable d'environnement AIP_STORAGE_URI
.
Vous ne pouvez pas personnaliser les autorisations de ce compte de service utilisé par défaut dans les conteneurs personnalisés. Si vous souhaitez personnaliser les autorisations disponibles pour votre conteneur personnalisé, lisez les sections suivantes afin d'utiliser un compte de service personnalisé avec votre version de modèle.
Utiliser un compte de service personnalisé
Si vous souhaitez accorder ou limiter des autorisations Google Cloud pour une version de modèle spécifique, utilisez un compte de service personnalisé au lieu de l'agent de service.
Pour ce faire, commencez par configurer un compte de service personnalisé. Ensuite, spécifiez le compte de service personnalisé lorsque vous créez une version de modèle.
Configurer un compte de service personnalisé
Pour configurer un compte de service personnalisé, procédez comme suit :
Attribuez des rôles IAM à votre nouveau compte de service afin de fournir à votre code diffuseur de prédictions toutes les autorisations nécessaires à son exécution.
Si le compte de service géré par l'utilisateur se trouve dans un projet différent des versions de votre modèle, configurez le compte de service géré par l'utilisateur pour pouvoir l'associer à vos versions de modèle.
Attribuez au agent de service AI Platform de votre 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:GOOGLE_MANAGED_SERVICE_ACCOUNT \ CUSTOM_SERVICE_ACCOUNT
Dans cette commande, remplacez les espaces réservés suivants :
GOOGLE_MANAGED_SERVICE_ACCOUNT : adresse e-mail du
Google Cloud ML Engine Service Agent
de votre projet. Découvrez comment trouver cette adresse e-mail dans une section précédente de ce guide.CUSTOM_SERVICE_ACCOUNT : adresse e-mail du nouveau compte de service géré par l'utilisateur que vous venez de créer à une étape précédente de cette section.
Spécifier le compte de service personnalisé pour votre version de modèle
Pour permettre à votre code diffuseur de prédictions d'accéder à un compte de service personnalisé, spécifiez le champ serviceAccount
lorsque vous créez une version de modèle. Rappelez-vous que la version de modèle doit utiliser un conteneur personnalisé ou une routine de prédiction personnalisée.
Si vous utilisez la CLI gcloud pour créer une version de modèle, vous pouvez utiliser l'indicateur --service-account
avec le composant gcloud beta
. Exemple :
gcloud beta ai-platform versions create VERSION \
--service-account CUSTOM_SERVICE_ACCOUNT \
...
Remplacez l'élément suivant :
- VERSION : nom de la version de modèle.
- CUSTOM_SERVICE_ACCOUNT : adresse e-mail du compte de service géré par l'utilisateur que vous avez configuré dans une section précédente de ce guide.
- ... : options supplémentaires pour la version de modèle.
Étape suivante
Apprenez à créer une version de modèle utilisant un conteneur personnalisé.
Apprenez à créer une version de modèle utilisant une routine de prédiction personnalisée.
En savoir plus sur les comptes de service