Gérer les niveaux d'accès

Cette page explique comment gérer les niveaux d'accès existants. Vous pouvez :

Avant de commencer

  • Définissez la règle d'accès par défaut de l'outil de ligne de commande gcloud.

    -ou-

    Récupérez le nom de votre règle. Le nom de la règle est requis pour les commandes qui utilisent l'outil de ligne de commande gcloud et effectuent des appels d'API. Si vous définissez une règle d'accès par défaut, vous n'avez pas besoin de la spécifier pour l'outil de ligne de commande gcloud.

  • Assurez-vous de disposer d'un rôle IAM (Identity and Access Management) au niveau de l'organisation vous permettant de gérer les niveaux d'accès. Demandez à votre administrateur de vous attribuer l'un des rôles suivants, ou un rôle personnalisé accordant les mêmes autorisations :

Répertorier les niveaux d'accès

Console

Pour répertorier tous les niveaux d'accès, ouvrez la page Access Context Manager dans la console Cloud, puis, si vous y êtes invité, sélectionnez votre organisation. Les niveaux d'accès de votre organisation sont affichés dans une grille sur cette page. Des détails sur la configuration de chaque niveau d'accès sont également inclus.

Accéder à la page Access Context Manager

gcloud

Pour répertorier tous les niveaux d'accès, utilisez la commande list.

gcloud access-context-manager levels list \
  [--policy=POLICY_NAME]

Où :

  • POLICY_NAME est le nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.

La sortie sera semblable à ce qui suit :

NAME             TITLE                  LEVEL_TYPE
Device_Trust     Device_Trust Extended  Basic
Service_Group_A  Service_Group_A        Basic

API

Pour répertorier tous les niveaux d'accès d'une stratégie, appelez accessLevels.list.

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels

Où :

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

Corps de la requête

Le corps de la requête doit être vide.

Paramètres facultatifs

Vous avez la possibilité d'inclure un ou plusieurs des paramètres de requête suivants.

Paramètres
pageSize

number

Par défaut, la liste des niveaux d'accès renvoyée par accessLevels.list est paginée. Chaque page est limitée à 100 niveaux d'accès.

Vous pouvez utiliser ce paramètre pour modifier le nombre de niveaux d'accès renvoyé par page.

pageToken

string

Si le nombre de niveaux d'accès renvoyé par votre appel est supérieur à la valeur "pageSize", le corps de la réponse inclura un jeton de page.

Vous pouvez utiliser ce paramètre dans un nouvel appel pour obtenir la page de résultats suivante.

accessLevelFormat

enum(LevelFormat)

Normalement, les niveaux d'accès sont renvoyés tels qu'ils sont défini: BasicLevel ou CustomLevel.

Vous pouvez spécifier la valeur CEL pour ce paramètre afin de renvoyer BasicLevels en tant que CustomLevels dans Cloud Common Expression Language.

Corps de la réponse

En cas de succès, le corps de réponse de l'appel contient un objet AccessLevels qui répertorie les niveaux d'accès, ainsi qu'une chaîne nextPageToken. Une valeur n'est attribuée à nextPageToken que si le nombre de niveaux d'accès renvoyé est supérieur à la taille de la page. Sinon, nextPageToken est renvoyé sous forme de chaîne vide.

Répertorier les niveaux d'accès (formatés)

L'outil de ligne de commande gcloud vous permet d'obtenir la liste de vos niveaux d'accès au format YAML ou JSON.

Pour obtenir la liste formatée des niveaux d'accès, utilisez la commande list.

gcloud access-context-manager levels list \
  --format=FORMAT \
  [--policy=POLICY_NAME]

Où :

  • FORMAT est l'une des valeurs suivantes :

    • list (format YAML)

    • json (format JSON)

  • POLICY_NAME est le nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.

La sortie YAML ressemble à ceci :

- basic: {'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for corp access.
  name: accessPolicies/165717541651/accessLevels/corp_level
  title: Corp Level
- basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for net access.
  name: accessPolicies/165717541651/accessLevels/net_level
  title: Net Level

Le résultat JSON se présente comme suit :

[
  {
    "basic": {
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for corp access.",
    "name": "accessPolicies/165717541651/accessLevels/corp_level",
    "title": "Corp Level"
  },
  {
    "basic": {
      "combiningFunction": "OR",
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for net access.",
    "name": "accessPolicies/165717541651/accessLevels/net_level",
    "title": "Net Level"
  }
]

Décrire un niveau d'accès

Console

Reportez-vous aux étapes visant à répertorier les niveaux d'accès à l'aide de Cloud Console. Lorsque vous répertoriez les niveaux d'accès, des détails sont fournis dans la grille qui s'affiche.

gcloud

Lorsque vous répertoriez des niveaux d'accès à l'aide de gcloud, seuls les noms, les titres et les types des différents niveaux vous sont renvoyés. Pour obtenir des informations détaillées sur ce que fait un niveau, utilisez la commande describe.

gcloud access-context-manager levels describe LEVEL_NAME \
    [--policy=POLICY_NAME]

Où :

  • LEVEL_NAME est le nom du niveau d'accès que vous souhaitez décrire.

  • POLICY_NAME est le nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.

Cette commande imprime un résultat au format YAML contenant des informations relatives au niveau d'accès spécifié. Par exemple, si le niveau restreint l'accès à certaines versions de différents systèmes d'exploitation, la sortie peut ressembler à ceci :

basic:
  conditions:
  - devicePolicy:
      allowedEncryptionStatuses:
      - ENCRYPTED
      osConstraints:
      - minimumVersion: 10.13.6
        osType: DESKTOP_MAC
      - minimumVersion: 10.0.18219
        osType: DESKTOP_WINDOWS
      - minimumVersion: 68.0.3440
        osType: DESKTOP_CHROME_OS
      requireScreenlock: true
name: accessPolicies/330193482019/accessLevels/Device_Trust
title: Device_Trust Extended

API

Lorsque vous répertoriez des niveaux d'accès à l'aide de l'API, seuls les noms, les titres et les types des différents niveaux vous sont renvoyés. Pour obtenir des informations détaillées sur un niveau d'accès, appelez accessLevels.get.

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

Où :

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

  • LEVEL_NAME est le nom du niveau d'accès que vous souhaitez décrire.

Corps de la requête

Le corps de la requête doit être vide.

Paramètres facultatifs

Vous pouvez également inclure le paramètre de requête accessLevelFormat. Normalement, les niveaux d'accès sont renvoyés tels qu'ils sont définis : BasicLevel ou CustomLevel.

Vous pouvez spécifier la valeur CEL pour ce paramètre pour renvoyer BasicLevels en tant que CustomLevels dans Cloud Common Expression Language.

Corps de la réponse

En cas de succès, le corps de la réponse à l'appel contient une ressource AccessLevel qui fournit des détails sur le fonctionnement du niveau d'accès et la date de sa dernière mise à jour, etc.

Mettre à jour un niveau d'accès

Cette section explique comment mettre à jour des niveaux d'accès individuels. Pour mettre à jour tous les niveaux d'accès de votre organisation en une seule opération, consultez la section Apporter des modifications groupées aux niveaux d'accès.

Console

Pour mettre à jour un niveau d'accès :

  1. Ouvrez la page Access Context Manager dans Cloud Console.

    Accéder à la page Access Context Manager

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

  3. Dans la grille, cliquez sur le nom du niveau d'accès que vous souhaitez mettre à jour.

  4. Dans le volet Edit Access Level (Modifier le niveau d'accès), apportez des modifications au niveau d'accès.

    Pour obtenir une liste complète des attributs que vous pouvez ajouter ou modifier, reportez-vous à la page Attributs de niveau d'accès.

  5. Cliquez sur Save (Enregistrer).

    Outre le fait de pouvoir mettre à jour ou supprimer des conditions existantes, vous avez la possibilité d'ajouter de nouvelles conditions, ainsi que d'ajouter de nouveaux attributs aux conditions existantes.

gcloud

Utilisez la commande update pour mettre à jour un niveau d'accès.

Niveau d'accès de base :

gcloud access-context-manager levels update LEVEL_NAME \
    --basic-level-spec=FILE \
    [--policy=POLICY_NAME]

Niveau d'accès personnalisé :

gcloud access-context-manager levels update LEVEL_NAME \
    --custom-level-spec=FILE \
    [--policy=POLICY_NAME]

Où :

  • LEVEL_NAME est le nom du niveau d'accès que vous souhaitez mettre à jour.

  • FILE est le nom d'un fichier .yaml qui définit les conditions du niveau d'accès (pour les niveaux d'accès de base) ou une expression CEL qui donne une seule valeur booléene (pour les niveaux d'accès personnalisés).

    Pour obtenir la liste complète des attributs que vous pouvez utiliser dans vos conditions de niveau d'accès de base, consultez la section Attributs de niveau d'accès.

  • POLICY_NAME est le nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.

  • Vous pouvez inclure une ou plusieurs des options suivantes.

    Options
    combine-function

    Cette option n'est utilisée que pour les niveaux d'accès de base.

    Cette option permet de spécifier comment les conditions sont combinées.

    Valeurs valides : AND et OR

    description

    Description longue du niveau d'accès

    title

    Un titre court pour le niveau d'accès. Le titre du niveau d'accès s'affiche dans Cloud Console.

    Vous avez la possibilité d'inclure n’importe quel indicateur gcloud-wide.

Exemple de commande

gcloud access-context-manager levels update Device_Trust \
    --build-level-spec=corpdevspec.yaml \
    --combine-function=OR \
    --description='Access level that conforms to updated corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=1034095178592

API

Pour mettre à jour un niveau d'accès, appelez la méthode accessLevels.patch.

PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS

Où :

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

  • LEVEL_NAME est le nom du niveau d'accès que vous souhaitez décrire.

  • FIELDS est une liste de noms de champs complets, séparés par des virgules, que vous mettez à jour.

Corps de la requête

Le corps de la requête doit inclure une ressource AccessLevel qui spécifie les modifications que vous souhaitez apporter au niveau d'accès.

Corps de la réponse

En cas de succès, le corps de la réponse à l'appel contient une ressource Operation qui fournit des détails sur l'opération corrective.

Supprimer un niveau d'accès

Console

Pour supprimer un niveau d'accès :

  1. Ouvrez la page Access Context Manager dans Cloud Console.

    Accéder à la page Access Context Manager

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

  3. Dans la grille, cliquez sur le bouton  de la ligne correspondant au niveau d'accès que vous souhaitez supprimer.

  4. Cliquez sur Supprimer.

  5. Dans la boîte de dialogue qui s'affiche, confirmez que vous souhaitez supprimer le niveau d'accès.

gcloud

Pour supprimer un niveau d'accès :

  1. Utilisez la commande delete pour supprimer un niveau d'accès.

    gcloud access-context-manager levels delete LEVEL_NAME \
        [--policy=POLICY_NAME]
    

    Où :

    • LEVEL_NAME est le nom du niveau d'accès que vous souhaitez supprimer.

    • POLICY_NAME est le nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.

  2. Confirmez que vous souhaitez supprimer le niveau d'accès.

    Exemple :

    You are about to delete level Device_Trust
    
    Do you want to continue (Y/n)?
    
    
    You should see output similar to the following:
    
    
    Waiting for operation [accessPolicies/330193482019/accessLevels/Device_Trust/delete/1531171874311645] to complete...done.
    Deleted level [Device_Trust].
    

API

Pour supprimer un niveau d'accès, appelez la méthode accessLevels.delete.

DELETE https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

Où :

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

  • LEVEL_NAME est le nom du niveau d'accès que vous souhaitez décrire.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

En cas de succès, le corps de la réponse à l'appel contient une ressource Operation qui fournit des détails sur l'opération de suppression.