Gérer l'accès à une instance Agent Platform Workbench

Ce guide explique comment accorder l'accès à une instance Workbench Gemini Enterprise Agent Platform spécifique. Pour gérer l'accès aux ressources Gemini Enterprise Agent Platform, consultez la page Agent Platform sur le contrôle des accès.

Pour accorder l'accès à une instance Agent Platform Workbench, 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 à Agent Platform Workbench (par exemple, pour accorder l'accès à un projet Google Cloud ), consultez la documentation IAM pour Gérer l'accès aux projets, aux dossiers et aux organisations.

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 section Rôles IAM prédéfinis pour Agent Platform Workbench.

Toutefois, même si vous accordez à un compte principal un accès complet à une instance Agent Platform Workbench, 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.

Accorder l'accès aux instances Agent Platform Workbench

Pour autoriser les utilisateurs à accéder à une instance Agent Platform Workbench spécifique, définissez une stratégie IAM pour l'instance.

gcloud

Pour accorder un rôle à un compte principal sur une instance Agent Platform Workbench, utilisez la commande get-iam-policy pour récupérer la stratégie actuelle, modifiez les modalités d'accès définies au sein de celle-ci, puis utilisez la commande set-iam-policy pour mettre à jour la stratégie sur l'instance.

Récupérer la stratégie actuelle

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de l'instance
  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : zone où se trouve votre instance

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud workbench instances get-iam-policy INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION

Windows (PowerShell)

gcloud workbench instances get-iam-policy INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION

Windows (cmd.exe)

gcloud workbench instances get-iam-policy INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION
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@example.com"
      ]
    }
  ],
  "etag": "BwWWja0YfJA=",
  "version": 3
}

Modifier la stratégie

  1. 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 à eve@example.com, ajoutez la nouvelle liaison suivante à la stratégie dans la section "bindings" :

    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:eve@example.com"
      ]
    }
    

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

    {
      "bindings": [
        {
          "role": "roles/notebooks.viewer",
          "members": [
            "user:email@example.com"
          ]
        },
        {
          "role": "roles/notebooks.admin",
          "members": [
            "user:eve@example.com"
          ]
        }
      ],
      "etag": "BwWWja0YfJA=",
      "version": 3
    }
    
  2. Enregistrez la stratégie mise à jour dans un fichier nommé request.json.

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 la commande ci-dessous, effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de l'instance
  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : zone où se trouve votre instance

Enregistrez le code suivant dans un fichier nommé request.json :

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

Exécutez la commande suivante :

Linux, macOS ou Cloud Shell

gcloud workbench instances set-iam-policy INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    request.json --format=json

Windows (PowerShell)

gcloud workbench instances set-iam-policy INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    request.json --format=json

Windows (cmd.exe)

gcloud workbench instances set-iam-policy INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    request.json --format=json

Accorder l'accès à l'interface JupyterLab

En accordant à un compte principal l'accès à une instance Agent Platform Workbench, 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 Agent Platform Workbench.

API

Pour accorder un rôle à un compte principal sur une instance Agent Platform Workbench, utilisez la méthode getIamPolicy pour récupérer la stratégie actuelle, modifiez les modalités d'accès définies au sein de celle-ci, 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, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : zone où se trouve votre instance
  • INSTANCE_NAME : nom de l'instance

Méthode HTTP et URL :

GET https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/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)" \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/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 "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/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@example.com"
      ]
    }
  ],
  "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 à eve@example.com, ajoutez la nouvelle liaison suivante à la stratégie dans la section "bindings" :

{
  "role": "roles/notebooks.admin",
  "members": [
    "user:eve@example.com"
  ]
}

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

{
  "bindings": [
    {
      "role": "roles/notebooks.viewer",
      "members": [
        "user:email@example.com"
      ]
    },
    {
      "role": "roles/notebooks.admin",
      "members": [
        "user:eve@example.com"
      ]
    }
  ],
  "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, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud
  • LOCATION : zone où se trouve votre instance
  • INSTANCE_NAME : nom de l'instance

Méthode HTTP et URL :

POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy

Corps JSON de la requête :

{
  "policy": {
    "bindings": [
      {
        "role": "roles/notebooks.viewer",
        "members": [
          "user:email@example.com"
        ]
      },
      {
        "role": "roles/notebooks.admin",
        "members": [
          "user:eve@example.com"
        ]
      }
    ],
    "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 \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/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 "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/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 Agent Platform Workbench, 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.

Étapes suivantes