Appliquer un accès basé sur des certificats à un groupe d'utilisateurs

Cette page explique comment appliquer l'accès basé sur les certificats (CBA) à l'aide de règles d'accès contextuel basées sur un groupe d'utilisateurs.

Vous pouvez restreindre l'accès à tous les services Google Cloud en associant un niveau d'accès CBA à un groupe d'utilisateurs dont vous souhaitez restreindre l'accès. Cette restriction s'applique à toutes les applications clientes qui appellent les API Google Cloud.

Vous pouvez également appliquer les restrictions à des applications clientes spécifiques ou en exempter certaines. Les applications incluent à la fois des applications tierces et des applications propriétaires développées par Google, telles que Cloud Console pour la console Google Cloud et Google Cloud SDK pour Google Cloud CLI.

Avant de commencer

Assurez-vous d'avoir créé un niveau d'accès CBA qui nécessite des certificats pour déterminer l'accès aux ressources.

Créer un groupe d'utilisateurs

Créez un groupe d'utilisateurs contenant les membres auxquels l'accès doit être accordé en fonction du niveau d'accès CBA.

Attribuer le rôle "Administrateur de liaisons d'accès au cloud"

Attribuez le rôle Administrateur des liaisons d'accès au cloud au groupe d'utilisateurs.

Vérifiez que vous disposez des droits suffisants pour ajouter des autorisations IAM au niveau de l'organisation. Vous devez au minimum disposer des rôles Administrateur de l'organisation et Administrateur des liaisons d'accès au cloud.

Console

  1. Dans la console, accédez à la page IAM.

    Accéder à IAM

  2. Dans l'onglet Autorisations, cliquez sur Accorder l'accès, puis configurez les éléments suivants :

    1. Nouveaux comptes principaux : spécifiez le groupe auquel vous souhaitez attribuer le rôle.
    2. Dans l'option Sélectionner un rôle, sélectionnez Access Context Manager > Administrateur de la liaison d'accès cloud.
    3. Cliquez sur Enregistrer.

gcloud

  1. Se connecter :

    gcloud auth login
    
  2. Attribuez le rôle GcpAccessAdmin en exécutant la commande suivante :

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID est l'ID de votre organisation. Si vous ne disposez pas encore de l'ID de votre organisation, vous pouvez utiliser la commande suivante pour le trouver :

       gcloud organizations list
      
    • EMAIL est l'adresse e-mail de la personne ou du groupe auquel vous souhaitez accorder le rôle.

Associer un niveau d'accès CBA à un groupe d'utilisateurs

Dans cette option de liaison, le niveau d'accès CBA s'applique à toutes les applications clientes pour le groupe d'utilisateurs que vous spécifiez.

  1. Dans la console, accédez à la page Chrome Enterprise Premium.

    Accéder à Chrome Enterprise Premium

  2. Choisissez une organisation, puis cliquez sur Sélectionner.

  3. Cliquez sur Gérer l'accès pour choisir les groupes d'utilisateurs auxquels vous souhaitez accorder l'accès.

  4. Cliquez sur Ajouter, puis configurez les éléments suivants :

    1. Groupes de membres : spécifiez le groupe auquel vous souhaitez accorder l'accès. Vous ne pouvez sélectionner que les groupes qui ne sont pas déjà liés à un niveau d'accès.
    2. Sélectionner les niveaux d'accès : sélectionnez le niveau d'accès CBA à appliquer au groupe.
    3. Cliquez sur Enregistrer.

Associer un niveau d'accès CBA à un groupe d'utilisateurs et à des applications spécifiques

Dans certains cas d'utilisation, comme les applications qui acceptent les certificats client, associer un niveau d'accès CBA à un groupe d'utilisateurs peut être trop général. Vous pouvez utiliser cette option pour appliquer des niveaux d'accès CBA aux applications compatibles avec les certificats client.

L'exemple suivant lie un niveau d'accès CBA à la console Google Cloud , à gcloud CLI et à l'application OAuth d'un utilisateur.

  1. Connectez-vous à la gcloud CLI.

    gcloud auth application-default login
    
  2. Créez un fichier policy_file.json.

    Vous pouvez spécifier des applications à l'aide de leur ID client OAuth. Pour spécifier des applications Google, utilisez le nom de l'application, tel que Cloud Console pour la consoleGoogle Cloud . Seules la console Google Cloud et les applications Google Cloud SDK Google sont compatibles.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Cloud Console
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Google Cloud SDK
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_1
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    

    Remplacez les éléments suivants :

    • CLIENT_ID_1 : ID client OAuth.
    • CBA_ACCESS_LEVEL : nom de niveau d'accès CBA au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
  3. Créez la liaison de niveau d'accès CBA.

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../policy_file.json

    Remplacez GROUP_KEY par le groupe d'accès contextuel et ORG_ID par l'ID de votre organisation.

    Si vous ne disposez pas de GROUP_KEY, vous pouvez le récupérer en appelant la méthode get sur la ressource de groupe.

  4. (Facultatif) Mettez à jour une liaison de niveau d'accès existante.

    gcloud access-context-manager cloud-bindings update \
      --binding='BINDING_NAME' \
      --binding-file=.../policy_file.json

    Remplacez BINDING_NAME par le nom de liaison généré automatiquement lors de la création de la liaison.

Exempter une application d'une liaison

Une autre façon d'appliquer un niveau d'accès CBA sans bloquer les applications clientes qui ne sont pas compatibles avec les certificats clients consiste à exempter ces applications de la règle.

Les étapes suivantes supposent que vous avez déjà créé un niveau d'accès CBA qui nécessite des certificats pour déterminer l'accès aux ressources.

  1. Créez un niveau d'accès d'exemption à l'aide de l'une des méthodes suivantes.

  2. Créez un fichier exemption_file.json.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: APPLICATION_NAME_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    

    Remplacez les éléments suivants :

    • CLIENT_ID_2 : ID client OAuth.
    • APPLICATION_NAME_2 : nom de l'application.
    • EXEMPT_ACCESS_LEVEL : nom du niveau d'accès à l'exemption au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
  3. Créez la règle de liaison d'exemption.

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../exemption_file.json

    Remplacez GROUP_KEY par le groupe d'accès contextuel et ORG_ID par l'ID de votre organisation.

    Si vous ne disposez pas de GROUP_KEY, vous pouvez le récupérer en appelant la méthode get sur la ressource de groupe.