Créer des niveaux d'accès basés sur les appareils

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document explique comment les administrateurs peuvent créer des niveaux d'accès basés sur les attributs des appareils (niveaux d'accès basés sur les appareils) à l'aide d'Access Context Manager.

Un niveau d'accès est un ensemble d'attributs permettant d'autoriser l'accès aux ressources en fonction des informations contextuelles concernant la requête. En tant qu'administrateur, vous pouvez créer des niveaux d'accès de base ou personnalisés à l'aide des attributs d'appareil collectés par Endpoint Verification.

Avant de commencer

Créer un niveau d'accès

Console

  1. Dans Google Cloud Console, accédez à la page Access Context Manager.

    Accéder à Access Context Manager

  2. Si vous y êtes invité, sélectionnez votre organisation.

  3. Sur la page Access Context Manager, cliquez sur Créer un niveau d'accès.

  4. Dans le volet Nouveau niveau d'accès, créez un niveau d'accès de base ou personnalisé. Pour obtenir des instructions, développez la section requise.

    Créer un niveau d'accès de base

    1. Dans le champ Titre du niveau d'accès, saisissez un titre pour le niveau d'accès.

      Le titre doit comporter 50 caractères au maximum, commencer par une lettre et ne peut contenir que des chiffres, des lettres, des traits de soulignement et des espaces.

    2. Dans la section Créer des conditions dans, sélectionnez Mode de base.

      .
    3. Dans la section Conditions, sélectionnez les attributs de l'appareil :
      1. Cliquez sur Device Policy.
      2. Sélectionnez les attributs obligatoires.

        Par exemple, si vous souhaitez appliquer l'approbation de l'administrateur sur les appareils, sélectionnez Exiger l'approbation de l'administrateur.

    4. Cliquez sur Enregistrer.

    Le niveau d'accès que vous venez de créer s'affiche sur la page Access Context Manager.

    Créer un niveau d'accès personnalisé

    1. Dans le champ Titre du niveau d'accès, saisissez un titre pour le niveau d'accès.

      Le titre doit comporter 50 caractères au maximum, commencer par une lettre et ne peut contenir que des chiffres, des lettres, des traits de soulignement et des espaces.

    2. Dans la section Créer des conditions dans, sélectionnez Mode avancé.
    3. Dans la section Conditions, saisissez les expressions correspondant à votre niveau d'accès personnalisé. La condition doit être remplacée par une seule valeur booléenne.

      Pour trouver les attributs d'appareil disponibles pour votre expression CEL, consultez les attributs d'appareil collectés par Endpoint Verification.

      L'expression CEL suivante autorise l'accès uniquement depuis les appareils chiffrés:

      device.encryption_status == DeviceEncryptionStatus.ENCRYPTED

      Pour obtenir des exemples et en savoir plus sur la compatibilité du langage CEL (Common Expression Language) et sur les niveaux d'accès personnalisés, consultez la spécification de niveau d'accès personnalisé.

    4. Cliquez sur Enregistrer.

    Le niveau d'accès que vous venez de créer s'affiche sur la page Access Context Manager.

CLI gcloud

Pour créer des niveaux d'accès, utilisez la méthode gcloud access-context-manager level create.

  1. Créez un fichier .yaml.

    • Pour un niveau d'accès de base, spécifiez des attributs de règles relatives aux appareils.

      Exemple: Pour limiter l'accès aux seuls utilisateurs disposant d'un espace de stockage d'appareil chiffré, saisissez la commande suivante dans le fichier .yaml.

        - devicePolicy:
            allowedEncryptionStatuses
              - ENCRYPTED
      
    • Pour un niveau d'accès personnalisé, spécifiez une expression CEL sous la forme d'une seule paire clé/valeur: expression: "CEL_EXPRESSION"

      Exemple: Pour limiter l'accès aux seuls utilisateurs dont l'espace de stockage est chiffré et dont l'état d'appareil est approuvé, saisissez la commande suivante dans le fichier .yaml.

      expression: "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && device.is_admin_approved_device"
      

    Pour obtenir la liste des attributs de niveau d'accès des règles relatives aux appareils et de leur format YAML, consultez la section Attributs de règles relatives aux appareils. Pour obtenir un fichier YAML complet de tous les attributs possibles, consultez cet exemple de fichier YAML de niveau d'accès.

    Pour trouver les attributs d'appareil disponibles pour des spécifications de niveau personnalisé, consultez Attributs d'appareil collectés par Endpoint Verification.

  2. Créez le niveau d'accès.

    • Pour obtenir un niveau d'accès de base, exécutez la commande suivante:

      gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
      --title=TITLE \
      --basic-level-spec=FILE_NAME.yaml\
      --policy=POLICY_NAME
      
    • Pour obtenir un niveau d'accès personnalisé, exécutez la commande suivante:

      gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
      --title=TITLE \
      --custom-level-spec=FILE_NAME.yaml\
      --policy=POLICY_NAME
      

    Où :

    • ACCESS_LEVEL_NAME est le nom unique du niveau d'accès. Il doit être au format suivant : accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.

    • LEVEL_ID est le nom du niveau d'accès. Le nom doit comporter 50 caractères maximum, commencer par une lettre et ne peut contenir que des chiffres, des lettres et des traits de soulignement.

    • TITLE est le titre de la règle, présenté dans un format lisible. Ce titre doit être propre à la règle.

    • FILE_NAME est le nom du fichier .yaml. Pour un niveau d'accès de base, il contient des attributs de règles relatives aux appareils. Pour un niveau d'accès personnalisé, il contient une expression CEL sous la forme d'une seule paire clé/valeur : "CEL_ExpressION".

    • POLICY_NAME est le nom de la règle d'accès de votre organisation.

    Vous obtenez un résultat semblable à celui-ci :

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

Créez un niveau d'accès à l'aide de la méthode accessPolicies.accessLevels.create.

Créer un niveau d'accès de base

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

  • POLICY_ID : ID de la règle d'accès de votre organisation.
  • LEVEL_ID : nom du niveau d'accès. Le nom doit comporter 50 caractères au maximum, commencer par une lettre et ne peut contenir que des chiffres, des lettres et des traits de soulignement.
  • ACCESS_LEVEL_NAME : nom unique du niveau d'accès. Il doit être au format suivant : accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: titre lisible Il doit être propre à la règle.
  • DESCRIPTION : description du niveau d'accès et de son utilisation.
  • CONDITION : liste des conditions requises pour accorder un niveau d'accès.

Méthode HTTP et URL :

POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels

Corps JSON de la requête :


For basic access levels:

{
"name": ACCESS_LEVEL_NAME,
"title": TITLE,
  "description": DESCRIPTION,

  "basic": {
  "conditions": [
    {
    CONDITION
    }
   ],
  }
 },
}

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://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels"

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://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels" | Select-Object -Expand Content

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


{
  "name": "operations/accessPolicies/84961948973/accessLevels/deviceEncrypted/create/1666896068847514",
  "metadata": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessLevel",
    "name": "accessPolicies/84961948973/accessLevels/deviceEncrypted",
    "title": "accessPolicies/84961948973/accessLevels/deviceEncrypted",
    "basic": {
      "conditions": [
        {
          "devicePolicy": {
            "allowedEncryptionStatuses": [
              "ENCRYPTED"
            ]
          }
        }
      ]
    }
  }
}

Créer un niveau d'accès personnalisé

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

  • POLICY_ID: ID de la règle d'accès de votre organisation.
  • LEVEL_ID : nom du niveau d'accès. Le nom doit comporter 50 caractères au maximum, commencer par une lettre et ne peut contenir que des chiffres, des lettres et des traits de soulignement.
  • ACCESS_LEVEL_NAME : nom unique du niveau d'accès. Il doit être au format suivant: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.
  • TITLE: titre lisible Il doit être propre à la règle.
  • DESCRIPTION : description du niveau d'accès et de son utilisation.
  • CEL_EXPRESSION: expression CEL qui renvoie une valeur booléenne.

Méthode HTTP et URL :

POST https://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels

Corps JSON de la requête :


{
"name": ACCESS_LEVEL_NAME,
"title": TITLE,
  "description": DESCRIPTION,

  "custom": {
   "conditions": [
     {
      "expr": {
     CEL_EXPRESSION
     }
    }
   ]
  }
 },
}

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://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels"

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://accesscontextmanager.googleapis.com/v1/{parent=accessPolicies/POLICY_ID}/accessLevels" | Select-Object -Expand Content

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


{
  "name": "operations/accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelName/create/1666936427127701",
  "metadata": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessContextManagerOperationMetadata"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.AccessLevel",
    "name": "accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelName",
    "title": "accessPolicies/84961948973/accessLevels/sampleCustomAccessLevelTitle",
    "custom": {
      "expr": {
        "expression": "device.encryption_status == DeviceEncryptionStatus.ENCRYPTED"
      }
    }
  }
}

Pour en savoir plus sur la création de niveaux d'accès avec différentes conditions et dépendances de niveaux d'accès, consultez la page Créer un niveau d'accès de base.

Étapes suivantes