Ce document explique comment gérer vos liaisons d'accès existantes, qui définissent comment les règles d'accès sont appliquées à vos groupes d'utilisateurs ou à vos comptes de service. Vous pouvez afficher, modifier et supprimer ces liaisons selon vos besoins. Les liaisons d'accès déterminent comment les niveaux d'accès et les contrôles de session sont appliqués à un groupe d'utilisateurs ou à un compte de service.
Pour savoir comment créer des liaisons d'accès pour les utilisateurs et obtenir plus de détails sur les niveaux d'accès et les contrôles de session, consultez Appliquer des règles à des groupes d'utilisateurs avec des liaisons d'accès.
Pour en savoir plus sur la création de liaisons d'accès pour les comptes de service, consultez Configurer l'accès contextuel pour les comptes de service.
Répertorier les liaisons d'accès
Pour répertorier toutes les liaisons d'accès créées précédemment pour les groupes d'utilisateurs, procédez comme suit :
gcloud
Pour répertorier toutes les liaisons d'accès pour les utilisateurs à l'aide de gcloud CLI, exécutez la commande suivante. Pour répertorier les liaisons d'accès pour les comptes de service, vous devez utiliser un filtre.
gcloud access-context-manager cloud-bindings list \
--organization ORGANIZATION_ID
ORG_ID : ID de votre organisation.
Si la propriété access-context-manager/organization n'a pas été définie,
remplacez ORG_ID dans l'option facultative --organization
par l'ID de l'organisation que vous avez utilisé lors de la création du
rôle GcpAccessAdmin.
Pour répertorier les liaisons d'accès sur des ressources spécifiques, vous pouvez utiliser une option de filtre.
--filter="FILTER"
Remplacez FILTER par un filtre qui décrit la ressource à laquelle la règle d'accès est liée, par exemple :
- Groupes d'utilisateurs :
principal:group_key
Comptes de service :
principal:service_account OR principal:service_account_project_number
API REST
Pour répertorier toutes les liaisons d'accès USER_LOGIN, exécutez la commande suivante :
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings"
Pour répertorier les liaisons d'accès sur des ressources spécifiques, vous pouvez utiliser un paramètre de filtre.
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings?filter=FILTER"
Remplacez les éléments suivants :
PROJECT_ID: ID du projetORGANIZATION_ID: ID de l'organisationFILTER: filtre qui décrit la ressource à laquelle la règle d'accès est liée, par exemple :Groupes d'utilisateurs :
principal:group_keyComptes de service :
principal:service_account OR principal:service_account_project_number
Afficher une liaison d'accès
Une fois les liaisons d'accès créées pour un groupe d'utilisateurs, l'accès à la Google Cloud console et aux Google Cloud API est contrôlé en fonction du niveau d'accès associé.
Vous pouvez afficher les détails de la liaison d'accès que vous avez créée, la modifier ou la supprimer.
Console
Dans la Google Cloud console, accédez à la page Access Context Manager.
Si vous y êtes invité, sélectionnez un projet. Les liaisons d'accès sont listées sur la page Access Context Manager.
gcloud
Pour afficher les détails d'une liaison d'accès, exécutez la commande suivante :
gcloud access-context-manager cloud-bindings describe \
--binding=BINDING_ID
BINDING_ID est l'ID de la liaison d'accès ou l'identifiant complet de la liaison d'accès.
API
Affichez les détails d'une liaison d'accès :
Méthode HTTP et URL :
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
"accessPolicies/305009197125/accessLevels/device_lock"
],
"dryRunAccessLevels": [
"accessPolicies/305009197125/accessLevels/another"
]
}
Mettre à jour une liaison d'accès
Vous pouvez mettre à jour une liaison d'accès pour effectuer les opérations suivantes :
- Ajouter, supprimer ou modifier les applications auxquelles une règle s'applique.
- Modifier les niveaux d'accès d'une application au sein d'un groupe d'utilisateurs.
- Ajouter un niveau d'accès en mode test ou promouvoir un niveau existant en niveau actif.
Console
Dans la Google Cloud console, accédez à la page Access Context Manager.
Si vous y êtes invité, sélectionnez un projet.
Sur la page Access Context Manager, sélectionnez une liaison d'accès, puis cliquez sur Modifier pour la mettre à jour.
Vous ne pouvez pas mettre à jour les liaisons d'accès avec des niveaux d'accès en mode test ou des contrôles de session dans la Google Cloud console.
gcloud
Créez un fichier de liaison YAML.
gcloud access-context-manager cloud-bindings update \ --binding=ACCESS_BINDING \ --binding-file=BINDING_FILE_PATH \ --level=DEFAULT_ACCESS_LEVEL \ --dry-run-level=DEFAULT_DRY_RUN_ACCESS_LEVEL [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]Remplacez les éléments suivants :
-
ACCESS_BINDINGest au formatorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
BINDING_FILE_PATH : chemin d'accès au fichier YAML contenant le schéma de liaison d'accès.
Le fichier de liaison n'est compatible qu'avec
scopedAccessSettings. -
DEFAULT_ACCESS_LEVEL : nom facultatif du niveau d'accès, au format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. RemplacezPOLICY_IDpar l'ID de la règle d'accès etACCESS_LEVEL_NAMEpar le nom du niveau d'accès. - DEFAULT_DRY_RUN_ACCESS_LEVEL_2 : nom facultatif du niveau d'accès au format `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Incluez cette option pour appliquer le niveau d'accès en mode test spécifié à toutes les applications par défaut s'il n'est pas spécifié dans le fichier YAML.
-
DEFAULT_SESSION_LENGTH : durée de la session facultative au format horaire, par exemple
15hpour 15 heures ou2hpour deux heures. -
DEFAULT_SESSION_REAUTH_METHOD : méthode facultative permettant d'inviter les utilisateurs à vérifier à nouveau leur
identité. Elle doit être l'une des suivantes :
LOGIN: appliquer la connexion standard, qui peut inclure l'MFA ou d'autres facteurs définis par Workspace.PASSWORD: n'exiger qu'un mot de passe, même si d'autres facteurs sont définis. Si les mots de passe sont gérés à l'aide d'un fournisseur d'identité externe, les utilisateurs sont redirigés vers le fournisseur d'identité. Si la session du fournisseur d'identité est active, les utilisateurs sont réauthentifiés de manière implicite. Si le fournisseur d'identité n'est pas actif, les utilisateurs doivent se connecter via le fournisseur d'identité.SECURITY_KEY: exiger une clé de sécurité matérielle.
Fonctionnement combiné des arguments
--levelet--binding-file- Si vous n'utilisez que
--binding-file, seules les applications du fichier se voient appliquer les règles. - Si vous n'utilisez que
--level, le niveau d'accès s'applique à toutes les applications. - Si vous utilisez les deux, les règles sont combinées. La valeur
--levels'applique à toutes les applications, tandis que les règles du fichier YAML spécifié par--binding-filene s'appliquent qu'aux applications telles qu'elles sont définies dans le fichier.
Utiliser les contrôles de session
- Pour définir des contrôles de session par défaut pour toutes les applications, utilisez
--session-lengthet--session-reauth-method. - Si vous définissez également des contrôles de session dans le fichier YAML, ces contrôles de session remplacent les paramètres par défaut pour ces applications spécifiques.
- Vous devez utiliser
--session-lengthet--session-reauth-methodensemble.
Pour supprimer un niveau d'accès par défaut ou un niveau d'accès en mode test par défaut, fournissez une chaîne vide, par exemple
--level=ou--dry-run-level=. Lorsque ces arguments ne sont pas fournis, la commandeupdaten'apporte aucune modification.Pour supprimer un contrôle de session, définissez
--session-length=0.-
API
Créez un corps JSON.
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } ] }Remplacez les éléments suivants :
-
DEFAULT_ACCESS_LEVEL : nom facultatif du niveau d'accès, au format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. RemplacezPOLICY_IDpar l'ID de la règle d'accès etACCESS_LEVEL_NAMEpar le nom du niveau d'accès. - CLIENT_ID : ID client OAuth. Vous pouvez utiliser
clientIdounamelorsqu'une application contientsessionSettings. - ACCESS_LEVEL_A : nom du niveau d'accès au format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. - SESSION_LENGTH : durée de la session au format ISO 8601, par exemple
30mpour 30 minutes ou2hpour deux heures. SESSION_REAUTH_METHOD : méthode facultative permettant d'inviter les utilisateurs à vérifier à nouveau leur identité. Elle doit être l'une des suivantes :
LOGIN: appliquer la connexion standard, qui peut inclure l'MFA ou d'autres facteurs définis par Workspace.PASSWORD: n'exiger qu'un mot de passe, même si d'autres facteurs sont définis. Si les mots de passe sont gérés à l'aide d'un fournisseur d'identité externe, les utilisateurs sont redirigés vers le fournisseur d'identité. Si la session du fournisseur d'identité est active, les utilisateurs sont réauthentifiés de manière implicite. Si le fournisseur d'identité n'est pas actif, les utilisateurs doivent se connecter via le fournisseur d'identité.SECURITY_KEY: exiger une clé de sécurité matérielle.
CLIENT_NAME : nom du client. Vous pouvez utiliser
nameouclientIdlorsqu'une application contientsessionSettings.ACCESS_LEVEL_C : nom du niveau d'accès au format
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
-
DEFAULT_ACCESS_LEVEL : nom facultatif du niveau d'accès, au format
Envoyez la requête PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?updateMask=FIELD_MASKRemplacez les éléments suivants :
-
ACCESS_BINDINGest au formatorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. - FIELD_MASK : liste obligatoire, séparée par des virgules, des champs que vous souhaitez mettre à jour. Cela indique à l'API les parties de la liaison d'accès à modifier.
fieldMaskdoit contenir les clés JSON de premier niveau dans le corps de la requête que vous souhaitez mettre à jour, qui peuvent conteniraccessLevels,dryRunAccessLevelsetscopedAccessSettings.Si l'opération réussit, vous devriez recevoir une représentation de l'objet JSON. En cas de problème, vous recevez un message d'erreur.
-
Supprimer des liaisons d'accès
Console
Dans la Google Cloud console, accédez à la page Access Context Manager.
Si vous y êtes invité, sélectionnez un projet.
Sur la page Access Context Manager, sélectionnez une liaison d'accès, puis cliquez sur Supprimer.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Remplacez les éléments suivants :
-
ACCESS_BINDINGest au formatorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
ACCESS_BINDING_NAMEest la chaîne unique renvoyée pour l'identifiantnamelors de la création de la liaison d'accès.
API
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
-
ACCESS_BINDING_NAMEest la chaîne unique renvoyée pour l'identifiantnamelors de la création de la liaison d'accès.
Méthode HTTP et URL :
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.