Gérer l'accès à une instance de notebooks gérés

Ce guide explique comment accorder l'accès à une instance de notebooks gérés Vertex AI Workbench spécifique. Pour gérer l'accès aux ressources Vertex AI, consultez la page Vertex AI sur le contrôle des accès.

Pour accorder l'accès à une instance de notebooks gérés, définissez une stratégie IAM (Identity and Access Management) sur l'instance. Cette stratégie associe un ou plusieurs comptes principaux, tels qu'un utilisateur ou un compte de service, à un ou plusieurs rôles. Chaque rôle contient une liste d'autorisations permettant au compte principal d'interagir avec l'instance.

Vous pouvez accorder l'accès à une instance plutôt qu'à une ressource parente (telle qu'un projet, un dossier ou une organisation), afin d'appliquer le principe du moindre privilège.

Si vous accordez l'accès à une ressource parente (par exemple à un projet), vous accordez implicitement l'accès à toutes ses ressources enfants (par exemple, à toutes les instances de ce projet). Pour limiter l'accès aux ressources, définissez les stratégies IAM sur les ressources de niveau inférieur lorsque cela est possible, plutôt qu'au niveau du projet ou à un niveau supérieur.

Pour obtenir des informations générales sur la manière d'accorder, de modifier et de révoquer l'accès à des ressources non liées à Vertex AI Workbench (par exemple, pour accorder l'accès à un projet Google Cloud), consultez la page Accorder, modifier et révoquer les accès à des ressources dans la documentation IAM.

Limites d'accès

L'accès à une instance peut inclure un large éventail de fonctionnalités, en fonction du rôle que vous attribuez au compte principal. Vous pouvez par exemple autoriser un compte principal à démarrer, arrêter, mettre à jour et surveiller l'état d'une instance. Pour obtenir la liste complète des autorisations IAM disponibles, consultez la page Rôles IAM prédéfinis pour les notebooks gérés.

Toutefois, même si vous accordez à un compte principal un accès complet à une instance de notebooks gérés, vous ne lui permettez pas pour autant d'utiliser l'interface JupyterLab de cette instance. Pour accorder l'accès à l'interface JupyterLab, consultez la section Gérer l'accès à l'interface JupyterLab d'une instance de notebooks gérés.

Accorder l'accès aux instances de notebooks gérés

Pour autoriser des utilisateurs à accéder à une instance de notebooks gérés spécifique, définissez une stratégie IAM pour l'instance.

Pour accorder un rôle à un compte principal sur une instance de notebooks gérés, utilisez la méthode getIamPolicy pour récupérer la stratégie actuelle, modifiez les modalités d'accès à cette stratégie, puis utilisez la méthode setIamPolicy pour mettre à jour la stratégie sur l'instance.

Récupérer la stratégie actuelle

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de votre instance de notebooks gérés.

Méthode HTTP et URL :

GET http://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"http://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://notebooks.googleapis.com/v1/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
La réponse correspond au texte de la stratégie IAM de votre instance. Voici un exemple :
{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:[email protected]"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Modifier la stratégie

Modifiez la stratégie à l'aide d'un éditeur de texte pour ajouter ou supprimer des comptes principaux et les rôles qui leur sont associés. Par exemple, pour accorder le rôle notebooks.admin à [email protected], ajoutez la nouvelle liaison suivante à la stratégie dans la section "bindings" :

{
  "role": "roles/notebooks.admin",
  "members": [
    "user:[email protected]"
  ]
}

La stratégie ressemble à ceci après l'ajout de la nouvelle liaison :

{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:[email protected]"
      ]
    },
    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:[email protected]"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Mettre à jour la stratégie sur l'instance

Dans le corps de la requête, indiquez la stratégie IAM mise à jour lors de l'étape précédente, imbriquée dans une section "policy".

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de votre instance de notebooks gérés.

Méthode HTTP et URL :

POST http://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy

Corps JSON de la requête :

{
  "policy": {
    "bindings": [
      {
        "role": "roles/notebooks.viewer",
        "members": [
          "user:[email protected]"
        ]
      },
      {
        "role": "roles/notebooks.admin",
        "members": [
          "user:[email protected]"
        ]
      }
    ],
    "etag": "BwWWja0YfJA=",
    "version": 3
  }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://notebooks.googleapis.com/v1/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Accorder l'accès à l'interface JupyterLab

En accordant à un compte principal l'accès à une instance de notebooks gérés, vous ne lui permettez pas pour autant d'utiliser l'interface JupyterLab de cette instance. Pour accorder l'accès à l'interface JupyterLab, consultez la section Gérer l'accès à l'interface JupyterLab d'une instance de notebooks gérés.

Étapes suivantes