Cette page explique comment gérer les niveaux d'accès existants. Vous pouvez :
Avant de commencer
Définissez la règle d'accès par défaut de Google Cloud CLI.
-ou-
Récupérez le nom de votre règle. Le nom de la règle est requis pour les commandes utilisant la gcloud CLI et effectuant des appels d'API. Si vous définissez une règle d'accès par défaut, vous n'avez pas besoin de la spécifier pour la gcloud CLI.
Assurez-vous de disposer d'un rôle IAM (Identity and Access Management) au niveau de l'organisation vous permettant de gérer les niveaux d'accès. Demandez à votre administrateur de vous attribuer l'un des rôles suivants, ou un rôle personnalisé accordant les mêmes autorisations :
Pour afficher les niveaux d'accès :Lecteur Access Context Manager (
roles/accesscontextmanager.policyReader)Pour afficher et modifier les niveaux d'accès :Éditeur Access Context Manager (
roles/accesscontextmanager.policyEditor) ou Administrateur Access Context Manager (roles/accesscontextmanager.policyAdmin)
Répertorier les niveaux d'accès
Console
Pour lister tous les niveaux d'accès, ouvrez la page Access Context Manager dans la console Google Cloud , puis sélectionnez votre organisation si vous y êtes invité. La page affiche les niveaux d'accès de votre organisation dans une grille, y compris les détails de la configuration de chaque niveau d'accès.
gcloud
Pour répertorier tous les niveaux d'accès, utilisez la commande list.
gcloud access-context-manager levels list \ [--policy=POLICY_NAME]
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.
Le résultat ressemble à ce qui suit :
NAME TITLE LEVEL_TYPE Device_Trust Device_Trust Extended Basic Service_Group_A Service_Group_A Basic
API
Pour répertorier tous les niveaux d'accès d'une stratégie, appelez accessLevels.list.
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'accès de votre organisation.
Corps de la requête
Le corps de la requête doit être vide.
Paramètres facultatifs
Vous avez la possibilité d'inclure un ou plusieurs des paramètres de requête suivants.
| Paramètres | |
|---|---|
pageSize
|
Par défaut, la liste des niveaux d'accès renvoyée par Vous pouvez utiliser ce paramètre pour modifier le nombre de niveaux d'accès renvoyé par page. |
pageToken
|
Si le nombre de niveaux d'accès renvoyés par votre appel dépasse la taille de la page, le corps de la réponse inclut un jeton de page. Vous pouvez utiliser ce paramètre dans un nouvel appel pour obtenir la page de résultats suivante. |
accessLevelFormat
|
Normalement, les niveaux d'accès sont renvoyés tels qu'ils sont défini: Vous pouvez spécifier la valeur |
Corps de la réponse
En cas de succès, le corps de réponse de l'appel contient un objet AccessLevels qui répertorie les niveaux d'accès, ainsi qu'une chaîne nextPageToken. Une valeur n'est attribuée à nextPageToken que si le nombre de niveaux d'accès renvoyé est supérieur à la taille de la page. Sinon, nextPageToken est renvoyé sous forme de chaîne vide.
Répertorier les niveaux d'accès (formatés)
La gcloud CLI vous permet d'obtenir la liste de vos niveaux d'accès au format YAML ou JSON.
Pour obtenir la liste formatée des niveaux d'accès, utilisez la commande list.
gcloud access-context-manager levels list \ --format=FORMAT \ [--policy=POLICY_NAME]
Remplacez les éléments suivants :
FORMAT: cette option peut prendre l'une des valeurs suivantes :list(format YAML)json(format JSON)
POLICY_NAME: nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.
Le résultat YAML ressemble à ce qui suit :
- basic: {'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for corp access. name: accessPolicies/123456789012/accessLevels/corp_level title: Corp Level - basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for net access. name: accessPolicies/123456789012/accessLevels/net_level title: Net Level
Le résultat JSON ressemble à ce qui suit :
[ { "basic": { "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for corp access.", "name": "accessPolicies/123456789012/accessLevels/corp_level", "title": "Corp Level" }, { "basic": { "combiningFunction": "OR", "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for net access.", "name": "accessPolicies/123456789012/accessLevels/net_level", "title": "Net Level" } ]
Décrire un niveau d'accès
Console
À l'aide de la console Google Cloud , reportez-vous à la procédure pour répertorier les niveaux d'accès. Lorsque vous répertoriez les niveaux d'accès, des détails sont fournis dans la grille qui s'affiche.
gcloud
Lorsque vous répertoriez des niveaux d'accès à l'aide de gcloud, seuls les noms, les titres et les types des différents niveaux vous sont renvoyés. Pour obtenir des informations détaillées sur ce que fait un niveau, utilisez la commande describe.
gcloud access-context-manager levels describe LEVEL_NAME \ [--policy=POLICY_NAME]
Remplacez les éléments suivants :
LEVEL_NAME: nom du niveau d'accès que vous souhaitez décrire.POLICY_NAME: nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.
La commande affiche des informations sur le niveau au format YAML. Par exemple, si le niveau limite l'accès à certaines versions du système d'exploitation, le résultat ressemble à ce qui suit :
basic: conditions: - devicePolicy: allowedEncryptionStatuses: - ENCRYPTED osConstraints: - minimumVersion: 10.13.6 osType: DESKTOP_MAC - minimumVersion: 10.0.18219 osType: DESKTOP_WINDOWS - minimumVersion: 68.0.3440 osType: DESKTOP_CHROME_OS requireScreenlock: true name: accessPolicies/123456789012/accessLevels/Device_Trust title: Device_Trust Extended
API
Lorsque vous répertoriez des niveaux d'accès à l'aide de l'API, seuls les noms, les titres et les types des différents niveaux vous sont renvoyés.
Pour obtenir des informations détaillées sur un niveau d'accès, appelez accessLevels.get.
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'accès de votre organisation.LEVEL_NAME: nom du niveau d'accès que vous souhaitez décrire.
Corps de la requête
Le corps de la requête doit être vide.
Paramètres facultatifs
Vous pouvez également inclure le paramètre de requête accessLevelFormat. Normalement, les niveaux d'accès sont renvoyés tels qu'ils sont définis : BasicLevel ou CustomLevel.
Vous pouvez spécifier la valeur CEL pour ce paramètre pour renvoyer BasicLevels en tant que CustomLevels dans Cloud Common Expression Language.
Corps de la réponse
En cas de succès, le corps de la réponse à l'appel contient une ressource AccessLevel qui fournit des détails sur le fonctionnement du niveau d'accès et la date de sa dernière mise à jour, etc.
Mettre à jour un niveau d'accès
Cette section explique comment mettre à jour des niveaux d'accès individuels. Pour mettre à jour tous les niveaux d'accès de votre organisation en une seule opération, consultez la section Apporter des modifications groupées aux niveaux d'accès.
Console
Pour mettre à jour un niveau d'accès :
Ouvrez la page Access Context Manager dans la console Google Cloud .
Si vous y êtes invité, sélectionnez votre organisation.
Dans la grille, cliquez sur le nom du niveau d'accès que vous souhaitez mettre à jour.
Dans le volet Edit Access Level (Modifier le niveau d'accès), apportez des modifications au niveau d'accès.
Pour obtenir une liste complète des attributs que vous pouvez ajouter ou modifier, reportez-vous à la page Attributs de niveau d'accès.
Cliquez sur Save (Enregistrer).
Outre le fait de pouvoir mettre à jour ou supprimer des conditions existantes, vous avez la possibilité d'ajouter de nouvelles conditions, ainsi que d'ajouter de nouveaux attributs aux conditions existantes.
gcloud
Utilisez la commande update pour mettre à jour un niveau d'accès.
Niveau d'accès de base :
gcloud access-context-manager levels update LEVEL_NAME \ --basic-level-spec=FILE \ [--policy=POLICY_NAME]
Niveau d'accès personnalisé :
gcloud access-context-manager levels update LEVEL_NAME \ --custom-level-spec=FILE \ [--policy=POLICY_NAME]
Remplacez les éléments suivants :
LEVEL_NAME: nom du niveau d'accès que vous souhaitez mettre à jour.FILE: nom d'un fichier YAML qui définit les conditions du niveau d'accès (pour les niveaux d'accès de base) ou une expression CEL qui renvoie une seule valeur booléenne (pour les niveaux d'accès personnalisés).Pour obtenir la liste complète des attributs que vous pouvez utiliser dans vos conditions de niveau d'accès de base, consultez la section Attributs de niveau d'accès.
POLICY_NAME: nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.Vous pouvez inclure une ou plusieurs des options suivantes.
Options combine-functionCette option n'est utilisée que pour les niveaux d'accès de base.
Cette option permet de spécifier comment les conditions sont combinées.
Valeurs valides :
ANDetORdescriptionDescription longue du niveau d'accès
titleUn titre court pour le niveau d'accès. Le titre du niveau d'accès s'affiche dans la console Google Cloud .
Vous avez la possibilité d'inclure n'importe quel indicateur gcloud-wide.
Exemple de commande
gcloud access-context-manager levels update Device_Trust \ --basic-level-spec=corpdevspec.yaml \ --combine-function=OR \ --description='Access level that conforms to updated corporate spec.' \ --title='Device_Trust Extended' \ --policy=123456789012
API
Pour mettre à jour un niveau d'accès, appelez la méthode accessLevels.patch.
PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'accès de votre organisation.LEVEL_NAME: nom du niveau d'accès que vous souhaitez mettre à jour.FIELDS: liste de noms de champs complets que vous mettez à jour, séparés par une virgule.
Corps de la requête
Le corps de la requête doit inclure une ressource AccessLevel qui spécifie les modifications que vous souhaitez apporter au niveau d'accès.
Corps de la réponse
En cas de succès, le corps de la réponse à l'appel contient une ressource Operation qui fournit des détails sur l'opération corrective.
Supprimer un niveau d'accès
Cette section explique comment supprimer des niveaux d'accès Access Context Manager. La suppression d'un niveau d'accès s'effectue en deux étapes :
Vérifier les dépendances de niveau d'accès
Avant de supprimer un niveau d'accès, assurez-vous qu'il n'est pas référencé par d'autres niveaux d'accès, des périmètres de service VPC Service Controls, des règles d'accès contextuel Google Workspace, des liaisons d'accèsGoogle Cloud ou des conditions IAM.
Pour trouver tous les niveaux d'accès qui font référence à celui que vous souhaitez supprimer, procédez comme suit :
Assurez-vous d'avoir installé
jq. Pour vérifier quejqest installé, exécutezjq --version. Si nécessaire, installezjq.Vérifiez les dépendances des niveaux d'accès. Cette commande liste tous les niveaux d'accès, puis utilise
jqpour filtrer les niveaux d'accès qui font référence àLEVEL_NAMEdans les définitions de niveau de base ou personnalisé.echo "Searching for Access Levels referencing: accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME" echo "" gcloud access-context-manager levels list \ --policy="POLICY_NAME" \ --format=json | \ jq -r ' .[] | select( # Check basic levels: Is the target access level present as an element in any requiredAccessLevels array? ([(.basic.conditions // [])[] | (.requiredAccessLevels // []) | index("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") != null] | any) or # Check custom levels: Does the expression string contain the target access level? ((.custom.expr.expression // "") | (contains("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") or contains("levels.LEVEL_NAME"))) ) | " - \(.title) (Name: \(.name))" ' echo "" echo "If any levels are listed, they reference LEVEL_NAME. You must update these referencing levels before you delete LEVEL_NAME."
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.LEVEL_NAME: nom du niveau d'accès que vous souhaitez supprimer, par exemplemy_level.
Dans le résultat, tous les niveaux d'accès qui font référence à
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEoulevels.LEVEL_NAMEsont listés, ainsi que leurstitleetname. Ces niveaux d'accès sont les suivants :Niveaux de base, où
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEest listé dansrequiredAccessLevelsNiveaux personnalisés, où
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAMEoulevels.LEVEL_NAMEest listé dans la chaînecustom.expr.expression.
Si la commande liste des niveaux d'accès référencés, vous devez d'abord mettre à jour ces niveaux pour supprimer la dépendance. Pour obtenir des instructions, consultez Mettre à jour un niveau d'accès.
Une fois toutes les références supprimées, vous pouvez supprimer le niveau d'accès individuel.
Supprimer un niveau d'accès individuel
Console
Pour supprimer un niveau d'accès :
Ouvrez la page Access Context Manager dans la console Google Cloud .
Si vous y êtes invité, sélectionnez votre organisation.
Dans la grille, cliquez sur le bouton de la ligne correspondant au niveau d'accès que vous souhaitez supprimer.
Cliquez sur Supprimer.
Dans la boîte de dialogue qui s'affiche, confirmez que vous souhaitez supprimer le niveau d'accès.
gcloud
Pour supprimer un niveau d'accès :
Utilisez la commande
deletepour supprimer un niveau d'accès.gcloud access-context-manager levels delete LEVEL_NAME \ [--policy=POLICY_NAME]
Remplacez les éléments suivants :
LEVEL_NAME: nom du niveau d'accès que vous souhaitez supprimer.POLICY_NAME: nom de la règle d'accès de votre organisation. Cette valeur n'est requise que si vous n'avez pas défini de règle d'accès par défaut.
Confirmez que vous souhaitez supprimer le niveau d'accès.
Exemple :
You are about to delete level Device_Trust Do you want to continue (Y/n)?
Un résultat semblable aux lignes suivantes doit s'afficher :
Waiting for operation [accessPolicies/123456789012/accessLevels/Device_Trust/delete/1531171874311645] to complete...done. Deleted level [Device_Trust].
API
Pour supprimer un niveau d'accès, appelez la méthode accessLevels.delete.
DELETE https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
Remplacez les éléments suivants :
POLICY_NAME: nom de la règle d'accès de votre organisation.LEVEL_NAME: nom du niveau d'accès que vous souhaitez supprimer.
Corps de la requête
Le corps de la requête doit être vide.
Corps de la réponse
En cas de succès, le corps de la réponse à l'appel contient une ressource Operation qui fournit des détails sur l'opération de suppression.