AI Platform Pipelines dépend des rôles Identity and Access Management (IAM) pour autoriser les utilisateurs, les groupes et les services lorsque les pipelines de machine learning (ML) accèdent aux ressources Google Cloud.
Ce document décrit les rôles requis pour :
- configurer AI Platform Pipelines ;
- exécuter AI Platform Pipelines avec un compte de service géré par l'utilisateur ;
- accéder à AI Platform Pipelines en tant qu'utilisateur.
Obtenez plus d'informations sur les concepts d'IAM et le fonctionnement d'IAM.
Rôles requis pour configurer AI Platform Pipelines
Pour déployer AI Platform Pipelines, vous devez disposer des rôles Lecteur (roles/viewer
) et Administrateur Kubernetes Engine (roles/container.admin
) sur le projet.
Le rôle Lecteur fournit un accès en lecture à toutes les ressources d'un projet. Le rôle Administrateur Kubernetes Engine fournit un accès complet aux clusters Kubernetes et aux objets d'API Kubernetes.
Pour suivre le principe du moindre privilège, configurez votre cluster AI Platform Pipelines pour bénéficier d'un accès précis. Pour configurer votre cluster avec un accès précis, vous devez également disposer du rôle Administrateur de compte de service (roles/iam.serviceAccountAdmin
) sur le projet. Le rôle d'administrateur de compte de service permet de créer et de configurer des comptes de service IAM.
Découvrez comment accorder l'accès aux rôles IAM.
Rôle | Autorisations |
---|---|
Lecteur (roles/viewer ) |
Autorisations permettant de réaliser des actions en lecture seule qui n'affectent pas l'état du projet, comme consulter (mais pas modifier) des ressources ou des données existantes. |
Administrateur de Kubernetes Engine( Permet la gestion complète des clusters et de leurs objets API Kubernetes.
Pour définir un compte de service sur des nœuds, vous devez également disposer du rôle Utilisateur du compte de service ( Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
Administrateur de compte de service( Créer et gérer des comptes de service Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
Rôles requis pour exécuter AI Platform Pipelines avec un compte de service géré par l'utilisateur
Les pods d'un cluster Google Kubernetes Engine (GKE) s'authentifient sur Google Cloud à l'aide du compte de service du cluster GKE. Pour faciliter la configuration et l'utilisation d'AI Platform Pipelines, les clusters GKE créés par AI Platform Pipelines utilisent le compte de service Compute Engine par défaut avec le champ d'application d'accès https://www.googleapis.com/auth/cloud-platform
. Ce champ d'application fournit un accès complet aux ressources et aux API Google Cloud que vous avez activées dans votre projet, ce qui peut fournir aux charges de travail de votre cluster un accès excessif à Google Cloud.
Pour attribuer des autorisations précises aux charges de travail exécutées sur votre cluster AI Platform Pipelines, créez un compte de service pour votre cluster et accordez-lui l'accès aux rôles suivants au niveau du projet :
- Lecteur Monitoring : Le rôle Lecteur Monitoring (
roles/monitoring.viewer
) accorde un accès en lecture aux données et aux configurations Monitoring. - Rédacteur de métriques Monitoring : Le rôle Rédacteur de métriques Monitoring (
roles/monitoring.metricWriter
) fournit un accès en écriture pour que votre cluster puisse écrire des métriques. - Rédacteur de journaux : Le rôle Rédacteur de journaux (
roles/logging.logWriter
) permet au cluster d'écrire des entrées de journal. - Lecteur des objets Storage : Si vous envisagez de créer des images de conteneurs personnalisées pour vos pipelines stockés dans Container Registry, accordez à votre cluster AI Platform Pipelines l'accès au rôle Lecteur des objets Storage (
roles/storage.objectViewer
) au niveau du projet.
Vous devez également autoriser votre compte de service à accéder à toutes les ressources ou API Google Cloud utilisées par vos pipelines de ML.
- Configurez votre cluster GKE pour utiliser un compte de service géré par l'utilisateur.
- Apprenez-en plus sur les rôles IAM et la gestion des comptes de service.
Rôle | Titre | Description | Permissions |
---|---|---|---|
Lecteur Monitoring( Fournit un accès en lecture seule permettant d'obtenir et de répertorier des informations sur toutes les configurations et les données de surveillance. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
||
Rédacteur de métriques Monitoring( Fournit un accès en écriture seule aux métriques. Ce rôle fournit exactement les autorisations nécessaires à l'agent Cloud Monitoring et aux autres systèmes pour envoyer des métriques. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
||
Rédacteur de journaux( Fournit les autorisations nécessaires pour écrire des entrées de journal. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
||
Lecteur des objets Storage( Permet d'afficher les objets et leurs métadonnées, à l'exclusion des listes de contrôle d'accès. Peut aussi répertorier les objets d'un bucket. Ressources de niveau inférieur auxquelles vous pouvez attribuer ce rôle :
|
|
Rôles requis pour accéder à AI Platform Pipelines en tant qu'utilisateur
Pour accéder à un cluster AI Platform Pipelines, chaque utilisateur doit disposer du rôle Lecteur de cluster Kubernetes Engine (roles/container.clusterViewer
) et du rôle Utilisateur du compte de service pour le compte de service du cluster Google Kubernetes Engine.
Rôle | Titre | Description | Permissions |
---|---|---|---|
Lecteur de cluster Kubernetes Engine( Fournit un accès permettant d'obtenir et de regrouper les clusters GKE. |
|
Passez à la section suivante pour savoir comment accorder aux utilisateurs l'accès aux rôles Lecteur de cluster Kubernetes Engine et Utilisateur du compte de service.
Accorder à un utilisateur l'accès à AI Platform Pipelines
Suivez les instructions ci-dessous pour autoriser un compte utilisateur à accéder à votre cluster AI Platform Pipelines.
Ouvrez AI Platform Pipelines dans Google Cloud Console.
Recherchez votre cluster AI Platform Pipelines. Prenez note du cluster et de la zone à utiliser dans les étapes suivantes.
Ouvrez une session Cloud Shell.
Cloud Shell s'ouvre dans un cadre au bas de Google Cloud Console. Utilisez Cloud Shell pour effectuer le reste de cette procédure.
Exécutez la commande suivante pour définir le projet Google Cloud par défaut pour cette session Cloud Shell.
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.
Exécutez la commande suivante pour trouver le compte de service utilisé par votre cluster GKE.
gcloud container clusters describe CLUSTER_NAME --zone ZONE \ --format="flattened(nodePools[].config.serviceAccount)"
Remplacez les éléments suivants :
- CLUSTER_NAME : nom de votre cluster GKE.
- ZONE : zone dans laquelle votre cluster a été créé.
La réponse peut indiquer que votre cluster utilise un compte de service nommé
default
. Cette valeur fait référence au compte de service par défaut pour Compute Engine. Exécutez la commande suivante pour obtenir le nom complet de ce compte de service.gcloud iam service-accounts list \ --filter "compute@developer.gserviceaccount.com"
Apprenez-en plus sur le compte de service Compute Engine par défaut.
Attribuez à votre compte utilisateur le rôle Utilisateur du compte de service sur le compte de service de votre cluster GKE.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME \ --member=user:USERNAME \ --role=roles/iam.serviceAccountUser
Remplacez les éléments suivants :
- SERVICE_ACCOUNT_NAME : nom du compte de service de votre cluster GKE, que vous avez trouvé à l'étape précédente. Le format des noms de compte de service est le suivant : *@*.gserviceaccount.com
- USERNAME : votre nom d'utilisateur sur Google Cloud.
Attribuez à votre compte utilisateur le rôle Lecteur de cluster GKE sur le projet.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USERNAME --role roles/container.clusterViewer
Remplacez les éléments suivants :
- PROJECT_ID : ID de votre projet Google Cloud.
- USERNAME : votre nom d'utilisateur sur Google Cloud.