L'API Cloud Asset vous permet d'utiliser un langage de requête personnalisé pour rechercher des stratégies d'autorisation IAM (Identity and Access Management) dans un projet, un dossier ou une organisation.
Avant de commencer
Activez l'API Cloud Asset pour votre projet.
Assurez-vous que l'appelant dispose d'un rôle contenant l'autorisation
cloudasset.assets.searchAllIamPolicies
. Pour en savoir plus, consultez la page Contrôle des accès.
Rechercher des stratégies d'autorisation
Console
Pour rechercher dans toutes les stratégies d'autorisation IAM, procédez comme suit.
Accédez à la page Inventaire des éléments de la console Google Cloud.
Pour définir le champ d'application de votre recherche, ouvrez la liste des projets dans la barre de menu, puis sélectionnez l'organisation, le dossier ou le projet à interroger.
Sélectionnez l'onglet Stratégie IAM.
Pour effectuer une recherche dans les règles d'autorisation, vous pouvez utiliser une requête prédéfinie ou créer la vôtre.
Pour utiliser une requête prédéfinie, sélectionnez les options de Préréglages de requête dans le volet Filtrer les résultats. Pour filtrer les résultats, sélectionnez des options dans Filtres.
Pour créer votre propre requête, saisissez le texte de la requête dans la barre Filtre. Sélectionnez la zone de texte. Une liste de champs de recherche s'affiche. La recherche de stratégies accepte plusieurs champs. Apprenez-en plus sur la syntaxe des requêtes.
Les règles d'autorisation correspondant à la requête sont répertoriées dans la table Result.
Pour afficher la requête sous la forme d'une commande Google Cloud CLI, sélectionnez Afficher la requête.
Pour exporter les résultats, sélectionnez Télécharger au format CSV.
gcloud
Vous pouvez appeler SearchAllIamPolicies
à l'aide de la commande gcloud asset search-all-iam-policies
. Vous devez exécuter la Google Cloud CLI version 302.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version
:
gcloud asset search-all-iam-policies \
--scope=SCOPE \
--query="QUERY" \
--asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
--order-by=ORDER_BY
Indiquez les valeurs suivantes :
SCOPE
: valeur obligatoire. Un champ d'application peut être un projet, un dossier ou une organisation. La recherche est limitée aux stratégies d'autorisation IAM de ce champ d'application. L'appelant doit disposer d'un rôle contenant l'autorisationcloudasset.assets.searchAllIamPolicies
sur le champ d'application sélectionné. Si aucune valeur n'est spécifiée, la propriété de projet configurée est utilisée.Les valeurs autorisées sont les suivantes :
projects/PROJECT_ID
projects/PROJECT_NUMBER
Trouver un numéro de projet Google Cloud
Console
Pour trouver un numéro de projet Google Cloud, procédez comme suit:
-
Accédez à la page Tableau de bord dans la console Google Cloud.
- Cliquez sur le sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
- Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.
gcloud CLI
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.
gcloud CLI
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Où TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.
gcloud CLI
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
QUERY
: facultatif. Instruction de requête. Pour en savoir plus, consultez la section Syntaxe des requêtes. Si elle n'est pas spécifiée ou vide, elle recherche toutes les stratégies d'autorisation IAM dans lescope
spécifié. Notez que la chaîne de requête est comparée à chaque liaison de stratégie d'autorisation, y compris ses comptes principaux, ses rôles et ses conditions IAM. Les stratégies d'autorisation renvoyées ne contiennent que les liaisons qui correspondent à votre requête. Pour en savoir plus sur la structure des règles d'autorisation, consultez la page Comprendre les règles.Exemples :
policy:amy@gmail.com
pour rechercher les liaisons de stratégie d'autorisation qui spécifient l'utilisateur "amy@gmail.com".policy:roles/compute.admin
pour rechercher les liaisons de stratégie d'autorisation qui spécifient le rôle d'administrateur de Compute.policy:comp*
pour rechercher les liaisons de stratégie d'autorisation contenant "comp" comme préfixe de n'importe quel mot de la liaison.policy.role.permissions:storage.buckets.update
pour rechercher les liaisons de stratégie d'autorisation qui spécifient un rôle contenant l'autorisation "storage.buckets.update". Notez que si l'appelant n'a pas reçu de rôle contenant l'autorisationiam.roles.get
sur le rôle souhaité, les liaisons de stratégie qui spécifient ce rôle sont supprimées des résultats de recherche.policy.role.permissions:upd*
pour rechercher les liaisons de stratégie d'autorisation qui spécifient un rôle contenant "upd" en tant que préfixe de n'importe quel mot de la liaison. Notez que si l'appelant ne s'est pas vu attribuer un rôle contenant l'autorisationiam.roles.get
sur le rôle souhaité, les liaisons de stratégie qui spécifient ce rôle sont supprimées des résultats de recherche.resource:organizations/123456
pour rechercher les liaisons de stratégie d'autorisation définies dans "organizations/123456".resource=//cloudresourcemanager.googleapis.com/projects/myproject
pour rechercher les liaisons de stratégie d'autorisation définies sur le projet nommé "myproject".Important
pour rechercher les liaisons de stratégie d'autorisation contenant le mot "Important" dans l'un des champs inclus dans l'index de recherche (à l'exception des autorisations incluses).resource:(instance1 OR instance2) policy:amy
pour rechercher les liaisons de stratégie d'autorisation définies sur les ressources "instance1" ou "instance2", et qui spécifient également l'utilisateur "amy".roles:roles/compute.admin
pour rechercher les liaisons de stratégie d'autorisation qui spécifient le rôle d'administrateur de Compute.memberTypes:user
pour rechercher les liaisons de stratégie d'autorisation qui contiennent le type de compte principal "utilisateur".
ASSET_TYPE
: facultatif. Liste des types d'éléments auxquels les stratégies d'autorisation Identity and Access Management sont associées. Si ce champ est vide, il recherche les stratégies d'autorisation Identity and Access Management associées à tous les types d'éléments inclus dans l'index de recherche. Les expressions régulières sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreurINVALID_ARGUMENT
est renvoyée.ORDER_BY
: facultatif. Liste de champs séparés par une virgule spécifiant l'ordre de tri des résultats. L'ordre par défaut est croissant. AjoutezDESC
après le nom du champ pour indiquer l'ordre décroissant. Les espaces vides sont ignorés. Exemple :"assetType DESC, resource"
. Seuls les champs primitifs singuliers de la réponse peuvent être triés :resource
assetType
project
Tous les autres champs, tels que les champs répétés (par exemple,
folders
) et les champs non primitifs (par exemple,policy
), ne sont pas acceptés.
Voici des exemples de commandes gcloud
:
Recherchez toutes les liaisons de stratégie d'autorisation IAM dans votre
organizations/123456
contenant le domainemycompany.com
:gcloud asset search-all-iam-policies \ --scope=organizations/123456 \ --query="policy:\"domain:mycompany.com\""
Recherchez toutes les liaisons de stratégie d'autorisation IAM dans votre
organizations/123456
, où le rôle de base Propriétaire (roles/owner
) a été attribué àmyuser@mycompany.com
:gcloud asset search-all-iam-policies \ --scope=organizations/123456 \ --query="policy:(roles/owner myuser@mycompany.com)"
Recherchez toutes les liaisons de stratégie d'autorisation IAM dans votre
organizations/123456
définies surprojects/12345678
:gcloud asset search-all-iam-policies \ --scope=organizations/123456 \ --query="resource:projects/12345678"
REST
Vous pouvez appeler SearchAllIamPolicies
à l'aide d'un jeton OAuth valide pour un projet. Pour appeler la méthode SearchAllIamPolicies
à partir de Cloud Shell ou de toute console où la commande gcloud
est disponible, procédez comme suit :
Si vous n'avez pas configuré l'écran de consentement OAuth de votre projet, vous devez le faire. Vous devez indiquer une adresse e-mail et un nom de produit.
Accédez à l'écran de consentement OAuth de votre projet.
Saisissez le nom de l'application que vous souhaitez afficher.
Sous Adresse e-mail d'assistance, sélectionnez l'adresse e-mail que vous souhaitez afficher en tant que contact public. Il doit s'agir de votre adresse e-mail ou d'un groupe Google dont vous êtes propriétaire.
Ajoutez des détails, si nécessaire.
Cliquez sur Enregistrer.
Créez un jeton OAuth pour votre projet. Pour en savoir plus, consultez la page Configurer OAuth 2.0.
Accédez à la page "Créer un ID client OAuth".
Sélectionnez le Type d'application en choisissant Application de bureau.
Cliquez sur Créer.
Téléchargez le fichier
client_secret.json
.Accédez à la page Identifiants.
À droite de votre nouvel ID client, cliquez sur
Télécharger JSON.Stockez le fichier de manière sécurisée dans un emplacement auquel seule votre application peut accéder.
Connectez-vous à l'aide du fichier JSON avec la commande suivante.
gcloud auth application-default login --client-id-file=YOUR_JSON_FILE
Cette commande vous invite à ouvrir un lien. Assurez-vous que la page affiche le nom de l'application que vous avez défini dans votre écran de consentement OAuth.
Vous pouvez désormais interroger les stratégies d'autorisation IAM à l'aide des commandes
curl
.curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": PAGE_SIZE, "query": "QUERY" }' \ https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies
Fournissez les informations suivantes:
ASSET_TYPE
: facultatif. Liste des types d'éléments auxquels les stratégies d'autorisation Identity and Access Management sont associées. Si ce champ est vide, il recherche les stratégies d'autorisation Identity and Access Management associées à tous les types d'éléments inclus dans l'index de recherche. Les expressions régulières sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreurINVALID_ARGUMENT
est renvoyée.ORDER_BY
: facultatif. Liste de champs séparés par une virgule spécifiant l'ordre de tri des résultats. Par défaut, l'ordre est croissant. AjoutezDESC
après le nom du champ pour indiquer l'ordre décroissant. Les espaces vides sont ignorés. Exemple :"assetType DESC, resource"
. Seuls les champs primitifs singuliers de la réponse peuvent être triés :resource
assetType
project
Tous les autres champs, tels que les champs répétés (par exemple,
folders
) et les champs non primitifs (par exemple,policy
), ne sont pas acceptés.PAGE_SIZE
: facultatif. Nombre de résultats à renvoyer par page. Le maximum est de 2 000. Si la valeur est définie sur0
ou sur une valeur négative, une valeur par défaut appropriée est sélectionnée. UnnextPageToken
est renvoyé pour récupérer les résultats suivants.QUERY
: facultatif. Instruction de requête. Pour en savoir plus, consultez la section Syntaxe des requêtes. Si elle n'est pas spécifiée ou vide, elle recherche toutes les stratégies d'autorisation IAM dans lescope
spécifié. Notez que la chaîne de requête est comparée à chaque liaison de stratégie d'autorisation, y compris à ses comptes principaux, ses rôles et ses conditions IAM. Les stratégies d'autorisation renvoyées ne contiennent que les liaisons qui correspondent à votre requête. Pour en savoir plus sur la structure des règles d'autorisation, consultez la section Comprendre les règles d'autorisation.Exemples :
policy:amy@gmail.com
pour rechercher les liaisons de stratégie d'autorisation qui spécifient l'utilisateur "amy@gmail.com".policy:roles/compute.admin
pour rechercher les liaisons de stratégie d'autorisation spécifiant le rôle d'administrateur de Compute.policy:comp*
pour rechercher les liaisons de stratégie d'autorisation contenant "comp" comme préfixe de n'importe quel mot dans la liaison.policy.role.permissions:storage.buckets.update
pour rechercher les liaisons de stratégie d'autorisation qui spécifient un rôle contenant l'autorisation "storage.buckets.update". Notez que si l'appelant n'a pas reçu de rôle contenant l'autorisationiam.roles.get
sur le rôle souhaité, les liaisons de stratégie qui spécifient ce rôle sont supprimées des résultats de recherche.policy.role.permissions:upd*
pour rechercher les liaisons de stratégie d'autorisation qui spécifient un rôle contenant "upd" en tant que préfixe de n'importe quel mot de l'autorisation du rôle. Notez que si l'appelant n'a pas reçu de rôle contenant l'autorisationiam.roles.get
sur le rôle souhaité, les liaisons de stratégie qui spécifient ce rôle sont supprimées des résultats de recherche.resource:organizations/123456
pour rechercher les liaisons de stratégie d'autorisation définies dans "organizations/123456".resource=//cloudresourcemanager.googleapis.com/projects/myproject
pour rechercher les liaisons de stratégie d'autorisation définies sur le projet nommé "myproject".Important
pour rechercher les liaisons de stratégie d'autorisation contenant le mot "Important" dans l'un des champs inclus dans l'index de recherche (à l'exception des autorisations incluses).resource:(instance1 OR instance2) policy:amy
pour rechercher les liaisons de stratégie d'autorisation définies sur les ressources "instance1" ou "instance2", et spécifier également l'utilisateur "amy".roles:roles/compute.admin
pour rechercher les liaisons de stratégie d'autorisation spécifiant le rôle d'administrateur de Compute.memberTypes:user
pour rechercher les liaisons de stratégie d'autorisation qui contiennent le type de compte principal "utilisateur".
SCOPE
: un champ d'application peut être un projet, un dossier ou une organisation. La recherche est limitée aux stratégies d'autorisation IAM de ce champ d'application. L'appelant doit disposer d'un rôle contenant l'autorisationcloudasset.assets.searchAllIamPolicies
sur le champ d'application sélectionné. Si aucune valeur n'est spécifiée, la propriété de projet configurée est utilisée.Les valeurs autorisées sont les suivantes :
projects/PROJECT_ID
projects/PROJECT_NUMBER
Trouver un numéro de projet Google Cloud
Console
Pour trouver un numéro de projet Google Cloud, procédez comme suit:
-
Accédez à la page Tableau de bord dans la console Google Cloud.
- Cliquez sur le sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
- Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.
gcloud CLI
Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.
gcloud CLI
Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Où TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option
--format
pour afficher plus d'informations sur les dossiers trouvés.Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.
gcloud CLI
Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Documentation de référence sur la bibliothèque cliente et l'API
SearchAllIamPolicies
:
Comment construire une requête
Pour en savoir plus sur le langage de requête, consultez la section Syntaxe des requêtes.
Consultez la section Rechercher des exemples de stratégies d'autorisation IAM pour en savoir plus sur les exemples de requêtes pour divers cas d'utilisation réels.
Interroger les stratégies d'autorisation IAM via des informations de liaison
Pour rechercher des stratégies d'autorisation IAM, une expression de requête présente le format suivant:
policy:QUERY
Vous pouvez également rechercher exclusivement les types de comptes principaux ou de rôles aux formats suivants :
Mot clé exact:
memberTypes=QUERY
roles=QUERY
Correspondance partielle:
memberTypes:QUERY
roles:QUERY
Compte principal
Les liaisons de stratégie d'autorisation IAM sont compatibles avec cinq types de comptes principaux:
Comptes Google, tels que
user:user@gmail.com
Google Groupes, tels que
group:devs@googlegroups.com
Domaines Cloud Identity et G Suite, tels que
domain:google.com
Comptes de service, tels que
serviceAccount:my-other-app@appspot.gserviceaccount.com
Identifiants spéciaux, tels que
allUsers
etallAuthenticatedUsers
Vous pouvez limiter votre requête de façon à autoriser les stratégies liées à un utilisateur spécifique à l'aide de la syntaxe suivante:
policy:"user:amy@mycompany.com"
Notez que vous devez saisir user:amy@mycompany.com
avec des guillemets doubles, car il contient le caractère spécial :
. Vous pouvez omettre le préfixe user:
ou group:
dans une chaîne de requête, si la valeur de la requête est suffisamment unique ou si vous souhaitez rechercher l'adresse e-mail quel que soit le type de compte principal. Par exemple, la requête suivante ne correspond probablement qu'à un utilisateur:
policy:amy@mycompany.com
Vous pouvez également limiter votre requête aux stratégies liées à un type de compte principal spécifique à l'aide de la syntaxe suivante :
policy:user
memberTypes:user
memberTypes=user
Il est possible que policy:user
corresponde à un autre type de compte principal. Par exemple, group:test-user@mycompany.com
. Utilisez memberTypes
pour limiter la recherche à des types de comptes principaux spécifiques.
Exemples : requête par compte principal
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient l'utilisateur
Amy
:policy:amy
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient le domaine
mydomain.com
:policy:mydomain.com
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient les utilisateurs
Amy
etJohn
:policy:(amy john)
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient l'utilisateur
Amy
ouJohn
:policy:(amy OR john)
Recherchez toutes les liaisons de stratégie d'autorisation IAM dans votre organisation contenant
amy@mycompany.com
:policy:amy@mycompany.com
Recherchez toutes les liaisons de stratégie d'autorisation IAM de votre organisation qui contiennent le domaine
mycompany.com
:policy:"domain:mycompany.com"
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent des rôles au compte de service
mycompany.gserviceaccount.com
:policy:"serviceAccount:mycompany.gserviceaccount.com"
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent des rôles au groupe
admins
:policy:"group:admins"
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent des rôles à tous les utilisateurs:
memberTypes:allUsers
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent des rôles à tous les utilisateurs authentifiés:
memberTypes:allAuthenticatedUsers
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent des rôles à
amy@mycompany.com
ou au domainemycompany.com
:policy:(amy@mycompany.com OR "domain:mycompany.com")
Rôle
Les liaisons de stratégie d'autorisation IAM prennent en charge différents types de rôles.
Tous les noms de rôle IAM commencent par le préfixe roles/
.
Les rôles de base: trois rôles existaient avant l'introduction d'IAM: Propriétaire (
roles/owner
), Éditeur (roles/editor
) et Lecteur (roles/viewer
).Rôles prédéfinis: IAM fournit des rôles prédéfinis supplémentaires qui accordent un accès précis à différentes ressources. Consultez tous les rôles prédéfinis.
Rôles personnalisés : Rôles IAM définis par l'utilisateur contenant une liste organisée d'autorisations.
Vous pouvez limiter votre requête afin d'autoriser les stratégies liées à un rôle spécifique à l'aide de la syntaxe suivante:
policy:roles/role-name
roles:roles/role-name
roles=roles/role-name
Notez que vous pouvez omettre le préfixe roles/
dans une chaîne de requête si la valeur de la requête est suffisamment unique. Par exemple, la requête suivante ne correspond probablement qu'au rôle roles/cloudasset.owner
:
policy:cloudasset.owner
roles:cloudasset.owner
Il est possible que policy:cloudasset.owner
corresponde à un rôle différent. Par exemple, lorsqu'un rôle est attribué au compte principal user:cloudasset.owner@mycompany.com
. Utilisez roles
pour limiter la recherche aux rôles.
Exemples : requête par rôle
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient le rôle
owner
.policy:roles/owner roles:roles/owner roles=roles/owner
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent le rôle de propriétaire à
amy@mycompany.com
:policy:(roles/owner amy@mycompany.com)
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui attribuent le rôle
compute.admin
aux comptes principaux dont l'adresse e-mail contient le motjohn
:policy:(roles/compute.admin john)
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui accordent le rôle
viewer
aux utilisateurs ayant le préfixe "swe" ou "sde".policy:(roles/viewer (swe* OR sde*))
Conditions IAM
Les liaisons de stratégie d'autorisation IAM peuvent contenir un objet condition
, qui vous permet de définir et d'appliquer contrôle des accès conditionnel et basé sur des attributs pour les ressources Google Cloud. Pour en savoir plus, consultez la page Présentation des conditions IAM.
Vous pouvez limiter votre requête aux stratégies liées à une condition spécifique à l'aide de la syntaxe suivante:
policy:condition_information
Exemples : requête par condition
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient une condition, dont le titre/la description contient le mot "myCondition":
policy:myCondition
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui spécifient une condition, dont l'expression contient l'attribut "request.time":
policy:"request.time"
Interroger les stratégies d'autorisation IAM par autorisations incluses
Les rôles d'une stratégie d'autorisation peuvent inclure une liste d'autorisations. Pour en savoir plus, consultez la documentation de référence sur les autorisations IAM. Vous pouvez limiter votre requête aux stratégies contenant une autorisation spécifique. L'expression de requête se présente sous les formats suivants:
- Mot clé exact:
policy.role.permissions=QUERY
- Correspondance partielle:
policy.role.permissions:QUERY
Exemples : requête par autorisations
Recherchez toutes les liaisons de stratégie d'autorisation IAM contenant l'autorisation
compute.instances.create
:policy.role.permissions:compute.instances.create policy.role.permissions=compute.instances.create
Recherchez toutes les liaisons de stratégie d'autorisation IAM contenant les autorisations associées
compute.instances
:policy.role.permissions:compute.instances
Recherchez toutes les liaisons de stratégie d'autorisation IAM contenant les autorisations
cloudasset.assets.export...
(par exemple,cloudasset.assets.exportAssets
etcloudasset.assets.exportIamPolicyAnalysis
):policy.role.permissions:cloudasset.assets.export*
Recherchez toutes les liaisons de stratégie d'autorisation IAM qui accordent à un utilisateur l'autorisation de modifier les stratégies d'autorisation IAM:
policy.role.permissions:setIamPolicy
Recherchez toutes les liaisons de stratégie d'autorisation IAM avec un rôle contenant les autorisations
compute.instances.create
etcompute.disks.create
:policy.role.permissions:(compute.instances.create compute.disks.create)
Recherchez toutes les liaisons de stratégie d'autorisation IAM contenant l'autorisation
compute.instances.create
et spécifiez l'utilisateuramy
:policy.role.permissions:compute.instances.create policy:amy policy.role.permissions=compute.instances.create policy:amy
Interroger les stratégies d'autorisation IAM par ressource associée
Lorsque vous effectuez une recherche, vous pouvez spécifier un nom complet de ressource pour rechercher uniquement les règles d'autorisation directement définies sur la ressource. Vous pouvez également spécifier un projet, un dossier ou une organisation pour rechercher uniquement les stratégies d'autorisation définies sur les ressources situées dans le projet/dossier/organisation donné. Une expression de requête se présente sous les formats suivants:
Mot clé exact:
resource=QUERY
project=QUERY
folders=QUERY
organization=QUERY
Correspondance partielle:
resource:QUERY
project:QUERY
folders:QUERY
organization:QUERY
Exemples : requête par ressource associée
Recherchez toutes les liaisons de stratégie d'autorisation IAM directement définies sur une ressource dont le nom complet de ressource correspond exactement à
//cloudresourcemanager.googleapis.com/projects/myproject
:resource=//cloudresourcemanager.googleapis.com/projects/myproject
Recherchez toutes les liaisons de stratégie d'autorisation IAM directement définies sur les ressources dont le nom complet de la ressource contient le mot
myproject
:resource:myproject
Recherchez toutes les liaisons de stratégie d'autorisation IAM directement définies sur les ressources dont le nom complet de la ressource contient un mot avec le préfixe
myproj
donné:resource:myproj*
Recherchez toutes les liaisons de stratégie d'autorisation IAM directement définies sur les ressources d'un type de service donné:
resource:cloudresourcemanager
Recherchez toutes les liaisons de stratégie d'autorisation IAM définies sur
myproject
oumyfolder
:resource:(myproject OR myfolder)
Recherchez toutes les liaisons de stratégie d'autorisation IAM définies sur les ressources
cloudresourcemanager
et attribuez le rôle de propriétaire aux utilisateursgmail.com
:resource:cloudresourcemanager policy:(roles/owner gmail.com)
Recherchez toutes les liaisons de stratégie d'autorisation IAM définies sur les ressources dont le champ
project
comporte le numéro123
:project:123
Recherchez toutes les liaisons de stratégie d'autorisation IAM définies sur les ressources contenues dans
folder
dont le numéro est123
:folders:123
Recherchez toutes les liaisons de stratégie d'autorisation IAM définies sur les ressources dont le champ
organization
comporte le numéro123
:organization:123
Interroger les stratégies d'autorisation IAM par texte libre
Vous pouvez également utiliser une requête en texte libre sans spécifier de champ. La réponse renvoie des règles autorisant tant qu'il existe un champ inclus dans l'index de recherche (par exemple, des champs de liaison de stratégie ou des champs de ressource) correspondant à la requête.
Exemples : requête par texte libre
Recherchez dans votre fichier
scope
toutes les liaisons de stratégie d'autorisation IAM dont les champs de métadonnées (par exemple, autoriser les liaisons de stratégie ou les champs de ressource) contiennentImportant
en tant que mot:Important
Recherchez dans votre fichier
scope
toutes les liaisons de stratégie d'autorisation IAM dont les champs de métadonnées (par exemple, autoriser les liaisons de stratégie ou les champs de ressource) contiennentimport
comme préfixe de n'importe quel mot:import*