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

Ce document explique comment les administrateurs peuvent créer des niveaux d'accès basés sur attributs d'appareil (niveaux d'accès basés sur l'appareil) en utilisant Access Context Manager :

Un niveau d'accès est un ensemble d'attributs permettant d'accéder à des ressources sur les informations contextuelles de la demande. 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ées par Endpoint Verification.

Avant de commencer

Créer un niveau d'accès

Console

  1. Dans la console Google Cloud, 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 New Access Level (Nouveau niveau d'accès), créez un niveau d'accès de base ou un un niveau d'accès 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 ne doit pas dépasser 50 caractères, doit commencer par une lettre et peut ne 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: <ph type="x-smartling-placeholder">
        </ph>
      1. Cliquez sur . Device Policy.
      2. Sélectionnez les attributs obligatoires.

        Par exemple, si vous voulez imposer l'approbation d'un administrateur sur les appareils, sélectionnez Exiger l'approbation de l'administrateur.

    4. Cliquez sur Enregistrer.

    Le niveau d'accès nouvellement créé s'affiche 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 ne doit pas dépasser 50 caractères, doit commencer par une lettre et peut ne 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 pour votre niveau d'accès personnalisé. La condition doit correspondre à une seule valeur booléenne .

      Pour trouver les attributs d'appareil disponibles pour votre expression CEL, procédez comme suit : consultez les attributs de l'appareil collectées par Endpoint Verification.

      L'expression CEL suivante autorise l'accès uniquement à partir des appareils chiffrés:

      device.encryption_status == DeviceEncryptionStatus.ENCRYPTED

      Pour obtenir des exemples et plus d'informations sur Common Expression Language (CEL) et les niveaux d'accès personnalisés, consultez les Spécification de niveau d'accès personnalisé

    4. Cliquez sur Enregistrer.

    Le niveau d'accès nouvellement créé s'affiche page Access Context Manager.

CLI gcloud

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

  1. Créez un fichier .yaml.

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

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

        - devicePolicy:
            allowedEncryptionStatuses
              - ENCRYPTED
      
    • Pour un niveau d'accès personnalisé, spécifiez une expression CEL au format paire clé-valeur unique: expression: "CEL_EXPRESSION"

      Exemple: Pour limiter l'accès aux seuls utilisateurs disposant d'un espace de stockage chiffré sur l'appareil Si l'état de l'appareil est "Approuvé", saisissez le code suivant dans le champ .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, voir cet exemple de fichier YAML de niveau d'accès.

    Pour trouver les attributs d'appareil disponibles pour les spécifications de niveau personnalisé : consultez la section 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 définir 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 respecter le format suivant: accessPolicies/POLICY_ID/accessLevels/LEVEL_ID.

    • LEVEL_ID est le nom du niveau d'accès. Le nom ne doit pas dépasser 50 caractères, doit 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 une niveau d'accès, elle contient une expression CEL au format Paire clé-valeur unique : "expression : "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éer 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 ci-dessous, 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 ne doit pas dépasser 50 caractères. commencent par une lettre et ne peuvent contenir que des chiffres, des lettres et des traits de soulignement ;
  • ACCESS_LEVEL_NAME: nom unique du niveau d'accès. Il doit comporter les éléments suivants : format: 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 le niveau d'accès à accorder.

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 ci-dessous, 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 ne doit pas dépasser 50 caractères. commencent par une lettre et ne peuvent contenir que des chiffres, des lettres et des traits de soulignement ;
  • ACCESS_LEVEL_NAME: nom unique du niveau d'accès. Il doit comporter les éléments suivants : format: 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 dont le résultat correspond à 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 les dépendances de niveau d'accès, consultez la section Créer un niveau d'accès de base.

Étape suivante