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

Cette page décrit la procédure générique pour créer des niveaux d'accès de base. Pour créer des niveaux d'accès personnalisés et utiliser le mode avancé dans la console Google Cloud, consultez la section Créer un niveau d'accès personnalisé.

Elle décrit 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 de base

Console

Pour créer un niveau d'accès de base, procédez comme suit :

  1. Ouvrez la page Access Context Manager dans la console Google Cloud.

    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 le champ 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. Dans la section Conditions, cliquez sur le bouton add (ajouter) pour le type d'attribut que vous souhaitez ajouter, puis indiquez les valeurs que vous souhaitez appliquer à cet attribut.

      Pour obtenir une 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.

      Une condition de niveau d'accès peut inclure un attribut de chaque type. Certains attributs incluent des options supplémentaires, par exemple l'attribut Device Policy (Règles relatives aux appareils).

      Les niveaux d'accès prennent en charge des conditions basées sur l'identité de l'utilisateur. Toutefois, pour ajouter des identités à une condition, vous devez créer ou mettre à jour le niveau d'accès à l'aide de gcloud CLI ou de l'API.

    3. Utilisez l'option Lorsque la condition est remplie, renvoyer pour spécifier si vous souhaitez que la condition exige qu'une requête réponde à tous les attributs spécifiés (TRUE) ou qu'elle doit satisfaire à d'autres critères 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. Si vous avez créé plusieurs conditions, utilisez Combine condition with pour indiquer si vous souhaitez que le niveau d'accès exige qu'une requête remplisse au moins l'une des conditions (OR) ou toutes les conditions (AND).

    6. Cliquez sur 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

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 ne peut pas comporter plus de 50 caractères.

  • OPTIONS fait référence 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 la console Google Cloud.

    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 est l'ID de la règle d'accès de votre organisation. Si une règle par défaut est définie, ce paramètre est facultatif.

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

Fichier YAML de spécification de niveau de base

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. Le fichier YAML définit une ou plusieurs conditions pour le niveau d'accès. Les conditions doivent contenir au moins un attribut. Lorsqu'une condition contient plusieurs attributs, ils sont combinés en tant qu'opération AND (toutes doivent être vraies) ou opération NAND (aucune ne peut être vraie), selon que l'attribut negate est inclus ou non dans la condition.

Pour obtenir la liste complète des attributs que vous pouvez inclure dans votre fichier YAML, consultez 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' \
    --policy=1521580097614100

API

Avant de commencer

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

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

Où :

  • POLICY est l'ID de la règle 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. Chaque Condition comporte un ou plusieurs attributs qui sont évalués en tant qu'opération AND (tous doivent être vrais) ou NAND (aucun ne peut être vrai) selon que le champ negate est défini sur true ou non. L'évaluation qui en résulte détermine si la condition est remplie ou non.

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 la console Google Cloud.

    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 incluant une ou plusieurs plages IPv4 ou IPv6 sous forme de blocs CIDR.

    Dans cet exemple, pour n'accorder 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
    

    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 le titre de la règle, présenté dans un format lisible. Ce titre doit être propre à la règle.

    • POLICY est l'ID de la règle d'accès de votre organisation. Si vous avez défini une règle par défaut, ce paramètre est facultatif.

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

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/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 le titre de la règle, présenté dans un format lisible. 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/accessLevels
    

    Où :

    • POLICY est l'ID de la règle d'accès de votre organisation.

Limiter l'accès en fonction des attributs de l'appareil

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 la console Google Cloud.

    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 propre à l'OS, puis cliquez sur Règle propre à 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 propre à 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 avec des contraintes de système d'exploitation.

    Dans cet exemple, pour n'autoriser que les appareils disposant d'une version minimale acceptable de ChromeOS et de Windows, 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
    

    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 le titre de la règle, présenté dans un format lisible. Ce titre doit être propre à la règle.

    • POLICY est l'ID de la règle d'accès de votre organisation. Si vous avez défini une règle par défaut, ce paramètre est facultatif.

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

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/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 le titre de la règle, présenté dans un format lisible. 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/accessLevels
    

    Où :

    • POLICY est l'ID de la règle d'accès de votre organisation.

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

Il est souvent utile d'accorder un accès basé sur l'identité avec des comptes de service, par exemple pour permettre à une fonction Cloud d'accéder aux données.

Cet exemple explique comment accorder l'accès à des utilisateurs et des comptes de service spécifiques, tout en incluant les niveaux d'accès existants pour afficher un exemple de niveaux d'accès imbriqués. Dans ce cas, les utilisateurs spécifiés sont inclus dans ce niveau d'accès, qu'ils remplissent ou non les conditions spécifiées dans les niveaux d'accès existants. Ce nouveau niveau d'accès peut être considéré comme moins restrictif que les niveaux d'accès existants.

Console

Pour le moment, la console Google Cloud ne permet pas d'ajouter des comptes principaux aux niveaux d'accès. Si vous souhaitez ajouter des comptes principaux à des niveaux d'accès, vous devez utiliser l'outil de ligne de commande gcloud ou l'API.

gcloud

  1. Créez un fichier YAML contenant une condition qui répertorie les comptes principaux auxquels vous souhaitez donner 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 existants que vous souhaitez inclure dans ce niveau d'accès.

    Dans cet exemple, nous supposons que les niveaux d'accès sont nommés Device_Trust et IP_Trust, et que 247332951433 est le nom de votre règle 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 à l'aide de la commande create.

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

    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 le titre de la règle, présenté dans un format lisible. Ce titre doit être propre à la règle.

    • POLICY est l'ID de la règle d'accès de votre organisation. Si vous avez défini une règle par défaut, ce paramètre est facultatif.

    • 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 accorde l'accès aux comptes principaux même si les autres conditions ne sont pas remplies.

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

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY/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 comptes principaux auxquels vous souhaitez donner 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 le titre de la règle, présenté dans un format lisible. Ce titre doit être propre à la règle.

  2. Ajoutez une condition qui répertorie les niveaux d'accès existants que vous souhaitez inclure dans ce niveau d'accès.

    Dans cet exemple, nous supposons que les niveaux d'accès sont nommés Device_Trust et IP_Trust, et que 247332951433 est le nom de votre règle 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 comptes principaux 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/accessLevels
    

    Où :

    • POLICY est l'ID de la règle d'accès de votre organisation.