Sécuriser la console Google Cloud et les API Google Cloud

Ce document explique comment sécuriser l'accès à la console Google Cloud et aux API Google Cloud à l'aide de règles basées sur le contexte.

L'accès contextuel pour la console Google Cloud et les API Google Cloud limite l'accès à la console Google Cloud et aux API Google Cloud à l'aide de règles basées sur le contexte. Il fait partie de BeyondCorp Enterprise et permet de garantir que les individus et les groupes de votre organisation qui répondent aux exigences d'accès définies peuvent accéder à la console Google Cloud et aux API Google Cloud (y compris l'accès depuis la Google Cloud CLI).

Pour sécuriser la console Google Cloud et les API Google Cloud, procédez comme suit:

  1. [Facultatif] Déployez la validation des points de terminaison sur les appareils de votre organisation.
  2. Créez un niveau d'accès dans Access Context Manager.
  3. Créez un groupe d'utilisateurs soumis à des restrictions contextuelles.
  4. Obtenez les autorisations IAM (Identity and Access Management) requises.
  5. Créez une liaison d'accès qui applique des règles contextuelles pour la console Google Cloud et les API Google Cloud.

[Facultatif] Déployer la validation des points de terminaison

Si vous souhaitez sécuriser l'accès à la console Google Cloud et aux API Google Cloud à l'aide des attributs des appareils, déployez la validation des points de terminaison sur les appareils de votre organisation.

Endpoint Verification s'exécute en tant qu'extension Chrome sur les ordinateurs de bureau et portables pour les utilisateurs de macOS, Windows et Linux. Un administrateur peut la déployer sur les appareils détenus par l'entreprise à partir de la console d'administration Google. Les membres de l'organisation peuvent également l'installer eux-mêmes.

Créer un niveau d'accès

Vous devez définir un niveau d'accès pouvant être utilisé pour déterminer l'accès à la console Google Cloud et aux API Google Cloud en créant un niveau d'accès de base dans Access Context Manager.

Créer un groupe d'utilisateurs

Créez un groupe d'utilisateurs qui doivent être associés à des restrictions contextuelles. Tous les utilisateurs de ce groupe qui sont également membres de votre organisation doivent disposer du niveau d'accès que vous avez créé précédemment pour pouvoir accéder à la console Google Cloud et aux API Google Cloud.

Accorder les autorisations Cloud IAM requises

Accordez les autorisations IAM au niveau de l'organisation qui seront nécessaires pour créer les liaisons d'accès Access Context Manager.

Console

  1. Accédez à la page IAM et administration de la console Google Cloud.

    Accéder à IAM et administration

  2. Cliquez sur Ajouter et configurez les éléments suivants :

    • Nouveaux membres : spécifiez l'utilisateur ou le groupe auquel vous souhaitez accorder les autorisations.
    • Sélectionner un rôle : sélectionnez Access Context Manager > Administrateur de la liaison d'accès cloud.
  3. Cliquez sur Enregistrer.

gcloud

  1. Vérifiez que vous êtes authentifié et que vous disposez des droits suffisants pour ajouter des autorisations IAM au niveau de l'organisation. Vous devez au minimum disposer du rôle d'administrateur de l'organisation.

    Après vous être assuré que vous disposez des autorisations nécessaires, connectez-vous avec :

    gcloud auth login
    
  2. Attribuez le rôle GcpAccessAdmin en exécutant la commande suivante :

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID est l'ID de votre organisation. Si vous ne disposez pas encore de l'ID de votre organisation, vous pouvez utiliser la commande suivante pour le trouver :

       gcloud organizations list
      
    • EMAIL est l'adresse e-mail de la personne ou du groupe auquel vous souhaitez accorder le rôle.

Créer une liaison d'accès

Une liaison d'accès est un mappage entre le groupe d'utilisateurs que vous avez créé précédemment et le niveau d'accès Access Context Manager que vous avez défini pour accéder à la console Google Cloud et aux API Google Cloud.

Vous pouvez créer une liaison d'accès de l'une des manières suivantes:

  • Liaison d'accès entre un groupe et un niveau d'accès.
  • Liaison d'accès entre un groupe et un niveau d'accès avec configuration de dry run. Avec la configuration de simulation, vous pouvez créer une liaison d'accès entre un groupe et un niveau d'accès de simulation, ou entre un groupe, un niveau d'accès et un niveau d'accès de simulation.

Créer une liaison d'accès avec un niveau d'accès

Console

  1. Accédez à la page BeyondCorp Enterprise dans la console Google Cloud.

    Accéder à BeyondCorp Enterprise

  2. Choisissez une organisation et cliquez sur Sélectionner.

  3. Cliquez sur Gérer l'accès afin de choisir les groupes d'utilisateurs auxquels vous souhaitez accorder l'accès.

  4. Cliquez sur Ajouter et configurez les éléments suivants :

    • Groupes de membres : spécifiez le groupe auquel vous souhaitez accorder l'accès. Seuls les groupes qui ne sont pas déjà liés à un niveau d'accès peuvent être sélectionnés.
    • Sélectionner les niveaux d'accès : choisissez le niveau d'accès à appliquer au groupe.
  5. Cliquez sur Enregistrer.

gcloud

Vous pouvez vous reporter à la Google Cloud CLI pour en savoir plus sur cette commande et sur d'autres commandes gcloud access-context-manager cloud-bindings, y compris sur les options d'option supplémentaires.

 gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID

Où :

  • GROUP_ID est l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    Si l'ID du groupe n'est pas disponible, vous pouvez le récupérer en appelant la méthode get sur la ressource Groups.

  • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin. Si la propriété access-context-manager/organization n'a pas été définie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
  • POLICY_ID est l'ID de la règle d'accès de votre organisation.
  • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

API

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

  • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
  • GROUP_ID est l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    Si l'ID du groupe n'est pas disponible, vous pouvez le récupérer en appelant la méthode get sur la ressource Groups.

  • POLICY_ID est l'ID de la règle d'accès de votre organisation.
  • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

Méthode HTTP et URL :

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Corps JSON de la requête :

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
}

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 et 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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json et 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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ]
}

Créer une liaison d'accès avec la configuration de dry run

Vous pouvez créer une liaison d'accès avec une configuration de simulation pour comprendre l'impact des niveaux d'accès sur votre environnement dans les scénarios suivants:

  • Pour évaluer l'impact d'un niveau d'accès avant de l'appliquer, créez une liaison d'accès avec un niveau d'accès de simulation.
  • Pour appliquer un niveau d'accès et évaluer l'impact d'un niveau d'accès de simulation en même temps, créez une liaison d'accès avec un niveau d'accès actif et un niveau d'accès de simulation.

Une liaison d'accès avec un niveau d'accès de simulation n'empêche pas l'accès, mais enregistre les violations du niveau d'accès de simulation. Pour afficher les détails du journal, consultez les journaux de refus.

Créer une liaison d'accès avec un niveau d'accès de simulation

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Où :

  • GROUP_ID est l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    Si l'ID du groupe n'est pas disponible, vous pouvez le récupérer en appelant la méthode get sur la ressource Groups.

  • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin. Si la propriété access-context-manager/organization n'a pas été définie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
  • POLICY_ID est l'ID de la règle d'accès de votre organisation.
  • DRY_RUN_ACCESS_LEVEL est le ACCESS_LEVEL dont vous souhaitez comprendre l'effet. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

API

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

  • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
  • GROUP_ID est l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    Si l'ID du groupe n'est pas disponible, vous pouvez le récupérer en appelant la méthode get sur la ressource Groups.

  • POLICY_ID est l'ID de la règle d'accès de votre organisation.
  • DRY_RUN_ACCESS_LEVEL est le ACCESS_LEVEL dont vous souhaitez comprendre l'effet. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

Méthode HTTP et URL :

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Corps JSON de la requête :

{
  "groupKey": "GROUP_ID",
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

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 et 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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json et 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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",

  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Créer une liaison d'accès avec un niveau d'accès et un niveau d'accès de simulation

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key = GROUP_ID \
    --level = ACCESS_LEVEL \
    --dry-run-level = DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Où :

  • GROUP_ID est l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    Si l'ID du groupe n'est pas disponible, vous pouvez le récupérer en appelant la méthode get sur la ressource Groups.

  • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin. Si la propriété access-context-manager/organization n'a pas été définie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
  • POLICY_ID est l'ID de la règle d'accès de votre organisation.
  • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.
  • DRY_RUN_ACCESS_LEVEL est le ACCESS_LEVEL dont vous souhaitez comprendre l'effet. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

API

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

  • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
  • GROUP_ID est l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    Si l'ID du groupe n'est pas disponible, vous pouvez le récupérer en appelant la méthode get sur la ressource Groups.

  • POLICY_ID est l'ID de la règle d'accès de votre organisation.
  • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.
  • DRY_RUN_ACCESS_LEVEL est le ACCESS_LEVEL dont vous souhaitez comprendre l'effet. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

Méthode HTTP et URL :

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Corps JSON de la requête :

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

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 et 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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json et 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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ],
  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Afficher les journaux de refus

Une fois que vous avez créé une configuration de simulation, vous pouvez consulter les journaux pour identifier les cas où la configuration refuse l'accès.

Le tableau suivant répertorie les champs de journal que vous pouvez utiliser pour créer et exécuter la requête permettant d'obtenir les journaux:

Nom du champ Description
protoPayload > authenticationInfo > principalEmail ID d'adresse e-mail du compte principal pour lequel l'accès est refusé.
protoPayload > metadata > deniedApplications Nom de l'application pour laquelle l'accès est refusé.
protoPayload > metadata > evaluationResult Résultat de l'évaluation de la règle d'accès active. Valeurs possibles : GRANTED ou DENIED.
protoPayload > metadata > appliedAccessLevels Niveaux d'accès appliqués requis par la règle d'accès active.
protoPayload > metadata > appliedDryRunAccessLevels Niveaux d'accès appliqués requis par la règle d'accès de dry run.
protoPayload > metadata > dryRunEvaluationResult Résultat de l'évaluation de la règle d'accès de simulation, qui indique l'action prévue lorsque la règle d'accès est appliquée. Valeurs possibles : GRANTED ou DENIED.

Pour en savoir plus sur la création d'une requête pour les journaux, consultez la page Langage de requête Logging.

Console

  1. Dans le menu de navigation de la console Google Cloud, cliquez sur Journalisation, puis sur Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Dans le champ Requête, saisissez un filtre de requête semblable à celui-ci, puis cliquez sur Exécuter la requête.

    severity="ERROR" AND
    (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
     protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
     protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
    
  3. Affichez les journaux sous Résultats de la requête.

gcloud

Pour afficher les journaux à l'aide de gcloud CLI, exécutez une commande semblable à celle-ci:

gcloud logging read 'severity="ERROR" AND
  (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
   protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
   protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'

Gérer les liaisons d'accès

Une fois les liaisons d'accès créées pour un groupe d'utilisateurs, l'accès à la console Google Cloud et aux API Google Cloud est contrôlé en fonction du niveau d'accès lié.

Vous pouvez afficher les détails de la liaison d'accès que vous avez créée, la modifier ou la supprimer.

Afficher les liaisons d'accès

Console

Vous pouvez afficher toutes les liaisons d'accès de l'organisation et afficher les détails d'une liaison d'accès.

gcloud

  • Pour afficher toutes les liaisons d'accès, exécutez la commande suivante:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    Où :

    ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin. . Si la propriété access-context-manager/organization n'a pas été définie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.

  • Pour afficher les détails d'une liaison d'accès, exécutez la commande suivante:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    Où :

    BINDING_ID est l'ID de la liaison d'accès ou l'identifiant complet de la liaison d'accès.

API

  • Affichez toutes les liaisons d'accès:

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

    • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin. Si la propriété access-context-manager/organization n'a pas été définie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.

    Méthode HTTP et URL :

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

    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://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

    PowerShell

    exécutez la commande suivante :

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • Affichez les détails d'une liaison d'accès:

    Méthode HTTP et URL :

    GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID

    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://accesscontextmanager.googleapis.com/v1/BINDING_ID"

    PowerShell

    exécutez la commande suivante :

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

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

Mettre à jour les liaisons d'accès

Console

Vous pouvez mettre à jour une liaison d'accès si nécessaire.

gcloud

  • Pour mettre à jour une liaison d'accès, par exemple pour modifier le niveau d'accès, exécutez la commande suivante:

      gcloud access-context-manager cloud-bindings update \
         --binding ACCESS_BINDING \
         --level ACCESS_LEVEL
    

    Où :

    • ACCESS_BINDING est au format organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • ORG_ID est l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin.
    • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.
    • Remplacez la valeur de ACCESS_LEVEL si nécessaire. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.
  • Pour mettre à jour une liaison d'accès avec un niveau d'accès de simulation, exécutez la commande suivante:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Remplacez la valeur de DRY_RUN_ACCESS_LEVEL si nécessaire. Elle est au format accessPolicies/POLICY_ID/accessLevels/DRY_ACCESS_LEVEL_NAME.

  • Pour mettre à jour une liaison d'accès, et modifier à la fois les niveaux d'accès et de simulation, exécutez la commande suivante:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
     --level=`ACCESS_LEVEL`
     --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Remplacez la valeur de ACCESS_LEVEL et DRY_RUN_ACCESS_LEVEL si nécessaire. ACCESS_LEVEL et DRY_RUN_ACCESS_LEVEL sont au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME, et DRY_RUN_ACCESS_LEVEL est identique à ACCESS_LEVEL.

  • Pour supprimer un niveau d'accès de simulation d'une liaison d'accès, exécutez la commande suivante:

      gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=
    

API

  • Mettez à jour une liaison d'accès, par exemple pour modifier le niveau d'accès:

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

    • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.
    • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

    Méthode HTTP et URL :

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels

    Corps JSON de la requête :

    {
        "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    

    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 et exécutez la commande suivante:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"

    PowerShell

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

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
        "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
        "groupKey": "045jfvxd0ybeul8",
        "accessLevels": [
          "accessPolicies/305009197125/accessLevels/device_lock"
        ]
    }
    
    

  • Mettez à jour une liaison d'accès avec le niveau d'accès de simulation:

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

    • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.
    • DRY_RUN_ACCESS_LEVEL est le ACCESS_LEVEL dont vous souhaitez comprendre l'effet. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

    Méthode HTTP et URL :

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Corps JSON de la requête :

    {
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
    }
    
    

    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 et exécutez la commande suivante:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

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

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
      name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
    
      group_key: "045jfvxd0ybeul8",
    
      dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ]
      }
    
    

  • Mettez à jour une liaison d'accès, puis modifiez les niveaux d'accès et de simulation:

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

    • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.
    • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.
    • DRY_RUN_ACCESS_LEVEL est le ACCESS_LEVEL dont vous souhaitez comprendre l'effet. ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

    Méthode HTTP et URL :

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels

    Corps JSON de la requête :

    {
      "accessLevels": [ "ACCESS_LEVEL" ],
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
     }
    
    

    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 et exécutez la commande suivante:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"

    PowerShell

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

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

  • Supprimez un niveau d'accès de simulation d'une liaison d'accès:

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

    • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.

    Méthode HTTP et URL :

    PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Corps JSON de la requête :

    {
      "dryRunAccessLevels": [ ]
    }
    
    

    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 et exécutez la commande suivante:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

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

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

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | 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.

Supprimer les liaisons d'accès

Console

Vous pouvez supprimer une liaison d'accès si nécessaire.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

Où :

  • ACCESS_BINDING est au format organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.

API

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

  • ACCESS_BINDING_NAME est la chaîne unique renvoyée pour l'identifiant name lors de la création de la liaison d'accès.

Méthode HTTP et URL :

DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME

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

curl

exécutez la commande suivante :

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"

PowerShell

exécutez la commande suivante :

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

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | 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.

Questions fréquentes

  • Combien de temps faut-il pour qu'une liaison d'accès nouvellement créée soit prise en compte ?

    Cette opération peut prendre jusqu'à 24 heures.

  • Que se passe-t-il si je supprime un groupe doté d'une liaison d'accès ?

    Le groupe et la liaison sont supprimés, et tous les utilisateurs du groupe sont autorisés à accéder.

  • Que se passe-t-il si je supprime le niveau d'accès utilisé dans une liaison d'accès ?

    Le niveau d'accès ne peut jamais être satisfait, et tous les utilisateurs du groupe doté d'une liaison d'accès se voient refuser l'accès.

  • Que se passe-t-il lorsqu'un utilisateur appartient à plusieurs groupes qui ont des liaisons d'accès ?

    L'utilisateur doit seulement respecter le niveau d'accès de l'un de ces groupes pour obtenir l'accès.

  • Qu'en est-il des utilisateurs qui ne font pas partie de mon organisation ?

    Les personnes ne faisant pas partie de votre organisation ne sont pas soumises à la liaison d'accès, même si vous les avez ajoutées au groupe d'utilisateurs devant être associés aux restrictions contextuelles.

Étapes suivantes