Cette page explique comment appliquer l'accès basé sur les certificats à l'aide de règles d'accès contextuelles 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 auquel vous souhaitez restreindre l'accès. Cette restriction s'applique à toutes les applications clientes qui appellent les API Google Cloud.
Vous pouvez éventuellement 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 créées par Google, telles que Cloud Console
pour la console Google Cloud et Google Cloud SDK
pour la Google Cloud CLI
.
Avant de commencer
Assurez-vous d'avoir créé un niveau d'accès CBA nécessitant 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 Cloud Access Binding Admin (Administrateur de l'association d'accès Cloud) au groupe d'utilisateurs.
Assurez-vous d'être autorisé et de disposer 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 de la liaison d'accès Cloud.
Console
Dans la console, accédez à la page IAM.
Dans l'onglet Autorisations, cliquez sur Accorder l'accès, puis configurez les éléments suivants:
- Nouveaux comptes principaux: spécifiez le groupe auquel vous souhaitez accorder le rôle.
- Dans l'option Sélectionner un rôle, sélectionnez Access Context Manager > Administrateur de la liaison d'accès cloud.
- Cliquez sur Enregistrer.
gcloud
Se connecter:
gcloud auth login
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.
Lier 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 du groupe d'utilisateurs que vous spécifiez.
Dans la console, accédez à la page Chrome Enterprise Premium.
Choisissez une organisation, puis cliquez sur Sélectionner.
Cliquez sur Gérer l'accès afin de choisir les groupes d'utilisateurs auxquels vous souhaitez accorder l'accès.
Cliquez sur Ajouter, puis configurez les éléments suivants:
- Groupes de membres: spécifiez le groupe auquel vous souhaitez accorder l'accès. Vous ne pouvez sélectionner que des groupes qui ne sont pas déjà liés à un niveau d'accès.
- Sélectionner des niveaux d'accès: sélectionnez le niveau d'accès CBA à appliquer au groupe.
- Cliquez sur Enregistrer.
Lier un niveau d'accès CBA à un groupe d'utilisateurs et à des applications spécifiques
Dans certains cas d'utilisation, tels que les applications compatibles avec les certificats client, lier un niveau d'accès CBA à un groupe d'utilisateurs peut être trop large. 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 , à la CLI gcloud et à l'application OAuth d'un utilisateur.
Connectez-vous à la gcloud CLI.
gcloud auth application-default login
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, par exemple
Cloud Console
pour la consoleGoogle Cloud . Seules la console Google Cloud et les applications Google du SDK Google Cloud 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 du niveau d'accès CBA au format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
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 basé sur le contexte et ORG_ID par l'ID de votre organisation.
Si vous ne disposez pas de l'GROUP_KEY, vous pouvez le récupérer en appelant la méthode
get
sur la ressource de groupe.(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 la liaison généré automatiquement lors de sa création.
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 à les exempter de la stratégie.
Les étapes suivantes supposent que vous avez déjà créé un niveau d'accès CBA nécessitant des certificats pour déterminer l'accès aux ressources.
Créez un niveau d'accès d'exception à l'aide de l'une des méthodes suivantes.
- Niveau d'accès personnalisé : indiquez
true
comme valeur dans la condition d'expression CEL. - Niveau d'accès de base : créez un niveau d'accès basé sur une plage d'adresses IP en fournissant les sous-réseaux IP
0.0.0.0/0
et::/0
, qui correspondent respectivement à IPv4 et IPv6.
- Niveau d'accès personnalisé : indiquez
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 d'exception au format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
Créez la règle de liaison d'exception.
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 basé sur le contexte et ORG_ID par l'ID de votre organisation.
Si vous ne disposez pas de l'GROUP_KEY, vous pouvez le récupérer en appelant la méthode
get
sur la ressource de groupe.