Créer un niveau d'accès

Cette page explique la procédure générique permettant de créer des niveaux d'accès. Elle décrit également des mises en œuvre de niveaux d'accès plus ciblées. Consultez les exemples suivants :

Avant de commencer

Créer un niveau d'accès

Console

Pour créer 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. En haut de la page Access Context Manager, cliquez sur New (Nouveau).

  4. Dans le volet New Access Level (Nouveau niveau d'accès) :

    1. Dans la zone Titre du niveau d'accès, saisissez un titre de niveau d'accès. Ce titre doit contenir au maximum 50 caractères, commencer par une lettre et ne peut contenir que des chiffres, des lettres, des traits de soulignement et des espaces.

    2. Cliquez sur Add Attribute (Ajouter un attribut), puis sélectionnez l'attribut que vous souhaitez ajouter à la condition.

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

      Par exemple, si vous souhaitez que le niveau d'accès prenne en considération le fait que la requête provient de votre réseau interne, sélectionnez l'attribut Sous-réseaux IP.

      Répétez cette étape pour ajouter plusieurs attributs à une même condition. Lorsqu'une condition comporte plusieurs attributs, la demande d'accès doit respecter tous les attributs.

    3. Utilisez l'option When condition is met (Lorsque la condition est remplie) pour indiquer si vous souhaitez que le niveau d'accès exige qu'une requête respecte tous les attributs spécifiés (TRUE), ou qu'elle respecte tout critère autre que ces attributs (FALSE).

      Par exemple, si vous souhaitez refuser les demandes d'une certaine plage d'adresses IP de votre réseau, spécifiez la plage d'adresses IP à l'aide de l'attribut Sous-réseaux IP, puis définissez la condition sur FALSE.

    4. Si nécessaire, cliquez sur Ajouter une autre condition pour ajouter une condition supplémentaire à votre niveau d'accès, puis répétez les deux étapes précédentes.

      Par exemple, si vous souhaitez refuser l'accès à un sous-ensemble d'adresses IP dans une plage d'adresses IP plus large, créez une nouvelle condition, spécifiez la plage d'adresses IP du sous-ensemble pour l'attribut Sous-réseaux IP, puis définissez la condition pour renvoyer FALSE.

      Répétez cette étape pour ajouter d'autres conditions au même niveau d'accès.

    5. Dans la section Conditions, utilisez l'option Combine conditions (Combiner les conditions) pour spécifier si le niveau d'accès doit exiger qu'une requête réponde à toutes les conditions de niveau d'accès (ET) ou à une seule des conditions (OU).

    6. Cliquez sur Save (Enregistrer).

gcloud

Avant de commencer

Pour créer un niveau d'accès à l'aide de l'outil de ligne de commande gcloud, utilisez la commande gcloud access-context-manager levels create.

gcloud access-context-manager levels create LEVEL_NAME OPTIONS \
    --policy=POLICY_NAME

Où :

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

  • OPTIONS correspond aux options requises dans le tableau suivant.

    Options
    basic-level-spec

    Un fichier .yaml qui spécifie une ou plusieurs conditions pour le 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.

    combine-function

    Une option (facultative) permettant de spécifier comment les conditions doivent être combinées.

    Valeurs valides : AND et OR

    description

    Description longue du niveau d'accès (facultative).

  • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

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

Fichier .yaml pour l'option basic-level-spec

Lorsque vous utilisez l'outil de ligne de commande gcloud pour créer un niveau d'accès, vous devez fournir un fichier .yaml pour l'option basic-level-spec. Ce fichier .yaml définit une ou plusieurs conditions pour le niveau d'accès. Les conditions doivent contenir au moins un attribut.

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

Pour plus d'informations sur les niveaux d'accès et YAML, reportez-vous à la page Exemple de fichier YAML pour un niveau d'accès.

Exemple de commande

gcloud access-context-manager levels create Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=AND \
    --description='Access level that conforms to corporate spec.' \
    --title='Device_Trust Extended'

API

Avant de commencer

Pour créer un niveau d'accès, appelez accessLevels.create.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels

Où :

  • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

Corps de la requête

Le corps de la requête doit inclure une ressource AccessLevel spécifiant les conditions que vous souhaitez appliquer pour le nouveau niveau d'accès.

Corps de la réponse

Si la requête aboutit, le corps de la réponse à l'appel contient une ressource Operation qui fournit des détails sur l'opération POST.

Exemples de mise en œuvre

Voici quelques exemples pratiques de mise en œuvre de niveaux d'accès que votre organisation pourrait souhaiter employer. Dans ces exemples, nous supposons que votre organisation dispose déjà d'une règle d'accès.

Limiter l'accès sur un réseau d'entreprise

Cet exemple explique comment créer une condition de niveau d'accès n'autorisant l'accès que depuis une plage d'adresses IP spécifiée (par exemple, les adresses IP internes d'un réseau d'entreprise).

En limitant la plage d'adresses IP autorisées à accéder aux ressources, vous pouvez rendre plus difficile l'exfiltration de données pour un pirate informatique agissant depuis l'intérieur de l'entreprise ou depuis l'extérieur.

Pour cet exemple, supposons que vous souhaitez créer un niveau d'accès permettant à un groupe d'auditeurs internes d'accéder au service Cloud Logging pour un projet nommé données-sensibles. Tous les appareils des auditeurs se voient attribuer des adresses IP sur un sous-réseau spécifique (de 203.0.113.0 à 203.0.113.127). Vous avez l'assurance que seuls les appareils utilisés par les auditeurs pourront accéder à ce sous-réseau.

Console

  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. En haut de la page Access Context Manager, cliquez sur Nouveau.

  4. Dans la section Conditions du volet Nouveau niveau d'accès, cliquez sur Ajouter un attribut, puis sur Sous-réseaux IP.

  5. Dans la zone Sous-réseaux IP, entrez une ou plusieurs plages IPv4 ou IPv6 sous forme de blocs CIDR.

    Dans cet exemple, pour n'autoriser l'accès qu'aux auditeurs, vous devez saisir 203.0.113.0/25 dans le champ Sous-réseaux IP.

  6. Cliquez sur Enregistrer.

gcloud

  1. Créez un fichier .yaml pour un niveau d'accès qui comprend une ou plusieurs plages IPv4 ou IPv6 sous forme de blocs CIDR.

    Dans cet exemple, pour n'autoriser l'accès qu'aux auditeurs, vous devez saisir les éléments suivants dans le fichier .yaml :

    - ipSubnetworks:
      - 203.0.113.0/25
    
  2. Enregistrez le fichier. Dans cet exemple, le fichier est nommé CONDITIONS.yaml.

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

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY_NAME
    

    Où :

    • NAME est le nom unique du niveau d'accès. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres et des traits de soulignement.

    • TITLE est un titre lisible par l'homme. Ce titre doit être propre à la règle.

    • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

    Un résultat semblable à celui-ci s'affiche :

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

API

  1. Concevez un corps de requête pour créer une ressource AccessLevel incluant une ou plusieurs plages IPv4 ou IPv6 spécifiées sous forme de blocs CIDR.

    Dans cet exemple, pour n'autoriser l'accès qu'aux auditeurs, vous devez saisir les éléments suivants dans le corps de la requête :

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "ipSubnetworks": [
             "203.0.113.0/25"
           ]
         }
       ]
     }
    }
    

    Où :

    • NAME est le nom unique du niveau d'accès. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres et des traits de soulignement.

    • TITLE est un titre lisible par l'homme. Ce titre doit être propre à la règle.

  2. Créez le niveau d'accès en appelant la méthode accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    Où :

    • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

Limiter l'accès des périphériques sur un réseau

Cet exemple explique comment créer un niveau d'accès n'autorisant l'accès qu'aux appareils répondant à un ensemble d'exigences spécifique (par exemple, une certaine version du système d'exploitation).

Les informations sur les appareils sont fournies à Access Context Manager à l'aide de la Validation des points de terminaison. Pour déterminer si l'accès doit être accordé ou non, vous pouvez vérifier que :

  • le verrouillage de l'écran est activé ;
  • le chiffrement du stockage est activé ;
  • l'appareil exécute un type et une version de système d'exploitation spécifiés.

Pour cet exemple, nous supposons que votre entreprise n'utilise que des ordinateurs fonctionnant sous Chrome OS ou Windows. Pour ajouter une couche de sécurité, vous souhaitez créer un niveau d'accès permettant d'empêcher toute personne utilisant un autre système d'exploitation d'accéder aux ressources concernées. Pour limiter davantage les risques, vous voulez vous assurer que seules certaines versions de ces systèmes d'exploitation se verront accorder l'accès aux ressources.

Console

  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. En haut de la page Access Context Manager, cliquez sur Nouveau.

  4. Dans la section Conditions du volet Nouveau niveau d'accès, cliquez sur Ajouter un attribut, puis sur Device Policy (Règles relatives aux appareils).

  5. Ajoutez les attributs de "règles relatives aux appareils" :

    1. Cliquez sur Ajouter une règle relative à l'OS, puis cliquez sur Règle relative à Chrome OS.

    2. Dans le champ Version minimale, saisissez la version minimale de Chrome OS que vous souhaitez autoriser.

    3. Répétez les étapes 1 et 2 pour Règle relative à Windows.

  6. Cliquez sur Enregistrer.

gcloud

  1. Créez un fichier .yaml pour un niveau d'accès incluant une "règle relative aux appareils" qui définit des contraintes en termes de système d'exploitation.

    Dans cet exemple, pour n'autoriser que les appareils dont la version du système d'exploitation (Chrome OS et Windows) correspond au moins à la version minimale requise, vous devez saisir les éléments suivants dans le fichier .yaml :

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. Enregistrez le fichier. Dans cet exemple, le fichier est nommé CONDITIONS.yaml.

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

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY_NAME
    

    Où :

    • NAME est le nom unique du niveau d'accès. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres et des traits de soulignement.

    • TITLE est un titre lisible par l'homme. Ce titre doit être propre à la règle.

    • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

    Un résultat semblable à celui-ci s'affiche :

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

API

  1. Concevez un corps de requête pour créer une ressource AccessLevel incluant une "règle relative aux appareils" qui définit des contraintes en termes de système d'exploitation.

    Dans cet exemple, pour n'autoriser que les appareils dont la version du système d'exploitation (Chrome OS et Windows) correspond au moins à la version minimale requise, vous devez saisir les éléments suivants dans le corps de la requête :

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "devicePolicy": {
             "osConstraints": [
               {
                 "osType": "DESKTOP_CHROME_OS",
                 "minimumVersion": "11316.165.0"
               },
               {
                 "osType": "DESKTOP_WINDOWS",
                 "minimumVersion": "10.0.1809"
               }
             ]
           {
         }
       ]
     }
    }
    

    Où :

    • NAME est le nom unique du niveau d'accès. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres et des traits de soulignement.

    • TITLE est un titre lisible par l'homme. Ce titre doit être propre à la règle.

  2. Créez le niveau d'accès en appelant la méthode accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    Où :

    • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

Limiter l'accès par utilisateur ou compte de service

Il est souvent utile d'accorder un accès "basé sur l'identité" lorsque des comptes de service sont employés. Par exemple, cela vous permet d'autoriser Cloud Functions à accéder aux données.

Cet exemple explique comment accorder l'accès à des utilisateurs et des comptes de service spécifiques qui ne répondent pas aux critères des autres niveaux d'accès. Dans cet exemple, nous supposons que vous souhaitez autoriser un administrateur système et un compte de service à accéder aux services d'un projet, quelles que soient les conditions spécifiées dans les autres niveaux d'accès.

Console

L'ajout de membres aux niveaux d'accès n'est pas disponible sur Cloud Console pour le moment. Si vous souhaitez ajouter des membres aux niveaux d'accès, vous devez utiliser l'outil de ligne de commande gcloud ou l'API.

gcloud

  1. Créez un fichier .yaml comportant une condition qui répertorie les membres auxquels vous souhaitez accorder l'accès.

    Dans cet exemple, vous souhaitez ajouter votre administrateur système (sysadmin@example.com) et un compte de service (service@project.iam.gserviceaccount.com).

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
  2. Ajoutez une condition qui répertorie les niveaux d'accès que vous ne souhaitez pas appliquer aux membres. La négation est obtenue en définissant la fonction de combinaison sur OR à l'étape 4.

    Dans cet exemple, supposez que les niveaux d'accès sont nommés Device_Trust et IP_Trust, et que 247332951433 est le nom de votre stratégie d'accès.

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
    - requiredAccessLevels:
        - accessPolicies/247332951433/accessLevels/Device_Trust
        - accessPolicies/247332951433/accessLevels/IP_Trust
    
  3. Enregistrez le fichier. Dans cet exemple, le fichier est nommé CONDITIONS.yaml.

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

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --combine-function=OR \
       --policy=POLICY_NAME
    

    Où :

    • NAME est le nom unique du niveau d'accès. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres et des traits de soulignement.

    • TITLE est un titre lisible par l'homme. Ce titre doit être propre à la règle.

    • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.

    • La propriété combine-function est définie sur OR. La valeur par défaut AND indique que toutes les conditions doivent être satisfaites pour que l'accès soit accordé. La valeur OR permet d'accorder l'accès aux membres même si d'autres conditions (telles que l'adresse IP ou les conditions héritées d'autres niveaux d'accès requis) ne sont pas remplies.

    Un résultat semblable à celui-ci s'affiche :

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

API

  1. Concevez un corps de requête pour créer une ressource AccessLevel incluant une condition qui répertorie les membres auxquels vous souhaitez accorder l'accès.

    Dans cet exemple, vous souhaitez ajouter votre administrateur système (sysadmin@example.com) et un compte de service (service@project.iam.gserviceaccount.com).

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         }
       ]
     }
    }
    

    Où :

    • NAME est le nom unique du niveau d'accès. Ce nom doit commencer par une lettre et ne peut contenir que des lettres, des chiffres et des traits de soulignement.

    • TITLE est un titre lisible par l'homme. Ce titre doit être propre à la règle.

  2. Ajoutez une condition qui répertorie les niveaux d'accès que vous ne souhaitez pas appliquer aux membres. La négation est obtenue en définissant la fonction de combinaison sur OR à l'étape suivante.

    Dans cet exemple, supposez que les niveaux d'accès sont nommés Device_Trust et IP_Trust, et que 247332951433 est le nom de votre stratégie d'accès.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ]
     }
    }
    
  3. Définissez combiningFunction sur OR.

    La valeur par défaut pour combiningFunction (AND) requiert que toutes les conditions soient remplies avant qu'un niveau d'accès ne soit accordé. La valeur OR permet d'accorder l'accès aux membres même si d'autres conditions (telles que l'adresse IP ou les conditions héritées d'autres niveaux d'accès requis) ne sont pas remplies.

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "serviceAccount:service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ],
       "combiningFunction": "OR"
     }
    }
    
  4. Créez le niveau d'accès en appelant la méthode accessLevels.create.

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    Où :

    • POLICY_NAME est le nom de la stratégie d'accès de votre organisation.