Cette page contient des informations sur l'analyse des paramètres de vos règles d'administration afin d'identifier les ressources couvertes par chaque règle d'administration. Policy Analyzer pour les règles d'administration vous permet de créer une requête d'analyse pour obtenir des informations sur les règles d'administration personnalisées et prédéfinies.
Une requête d'analyse est composée d'un champ d'application et d'une contrainte.
- Contrainte: spécifie le nom de ressource d'une contrainte.
- Champ d'application: spécifie l'organisation concernée par l'analyse. Toutes les règles d'administration dont la contrainte spécifiée est définie dans ce champ d'application sont incluses dans l'analyse.
Pour en savoir plus sur les règles d'administration d'administration, consultez la Présentation du service de règles d'administration. Pour en savoir plus sur la création de contraintes personnalisées, consultez la page Créer et gérer des contraintes personnalisées.
Avant de commencer
Activez Cloud Asset API.
Vous devez activer l'API dans le projet ou l'organisation que vous utiliserez pour envoyer la requête. Il ne doit pas nécessairement s'agir de la ressource à laquelle vous appliquez votre requête.
Rôles et autorisations requis
Afin d'obtenir les autorisations nécessaires pour exécuter une analyse des règles d'administration, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur la ressource d'organisation dans laquelle vous souhaitez effectuer votre analyse:
-
Pour effectuer l'analyse : Lecteur d'éléments Cloud (
roles/cloudasset.viewer
) -
Pour afficher les contraintes personnalisées : Lecteur des règles d'administration (
roles/orgpolicy.policyViewer
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ces rôles prédéfinis contiennent les autorisations requises pour exécuter une analyse des règles d'administration. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour exécuter une analyse des règles d'administration:
-
Pour effectuer l'analyse :
-
cloudasset.assets.analyzeOrgPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
-
Pour afficher les contraintes personnalisées :
orgpolicy.customConstraints.get
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Analyser les règles configurées
Une règle d'administration repose sur une contrainte et sur des conditions facultatives auxquelles cette contrainte est appliquée. Policy Analyzer permet de renvoyer une liste de règles d'administration avec une contrainte particulière et les ressources auxquelles ces règles sont associées.
Pour chaque règle d'administration détectée dans le champ d'application de la requête, Policy Analyzer renvoie une entrée de résultat. Une entrée de résultat contient les champs suivants:
consolidatedPolicy
: ressource à laquelle la règle d'administration est associée et application effective de la stratégie sur cette ressource par rapport aux règles d'évaluation de la hiérarchie.folders
: ID de tous les dossiers ancêtres de la ressource à laquelle la règle d'administration est associée.organization
: ID de la ressource d'organisation qui est l'ancêtre de la ressource à laquelle la règle d'administration est associée.policyBundle
: règle d'administration complète configurée associée à la ressource ci-dessus, et règles d'administration définies sur ses ancêtres dans la hiérarchie des ressources.
Console
Dans la console Google Cloud, accédez à la page Policy Analyzer.
Dans la section Analyser les règles d'administration, recherchez le volet intitulé Comment les règles d'administration sont-elles configurées pour les ressources de mon organisation ?, puis cliquez sur Créer une requête dans ce volet.
Dans la zone Sélectionner l'organisation de la requête, sélectionnez l'organisation pour laquelle vous souhaitez analyser les règles d'administration.
Sélectionnez le type de contrainte que vous souhaitez analyser. Pour une contrainte prédéfinie, sélectionnez Contrainte intégrée. Pour une contrainte personnalisée, sélectionnez Contrainte personnalisée.
Saisissez le nom de la contrainte que vous souhaitez analyser. Le préfixe du type de contrainte que vous analysez est déjà inclus. Par exemple, saisissez
iam.allowedPolicyMemberDomains
pour la contrainte de restriction de domaine prédéfinie, et pour une contrainte personnalisée, saisissez son nom, par exempledisableGkeAutoUpgrade
.Cliquez sur Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis, ainsi qu'un tableau de résultats de toutes les ressources auxquelles cette contrainte est directement appliquée.
gcloud
Pour obtenir une analyse de l'application d'une contrainte de règle d'administration dans une organisation, utilisez la commande gcloud beta asset analyze-org-policies
:
gcloud beta asset analyze-org-policies \
--constraint=CONSTRAINT_NAME \
--scope=organizations/ORGANIZATION_ID \
--limit=LIMIT_POLICIES \
--filter=FILTER_QUERY
Remplacez les éléments suivants :
CONSTRAINT_NAME: nom de la contrainte de règle d'administration que vous souhaitez analyser. Pour obtenir la liste des contraintes, consultez la page Contraintes en matière de règles d'administration.
ORGANIZATION_ID: ID de la ressource d'organisation. Pour savoir comment trouver votre ID d'organisation, consultez la page Créer et gérer des organisations.
LIMIT_POLICIES: nombre d'entrées de résultats à afficher Pour afficher un nombre illimité d'entrées, saisissez
unlimited
.FILTER_QUERY: requête de filtre permettant d'afficher uniquement les règles correspondant à votre expression de filtrage. Le seul champ disponible pour le filtrage est
consolidated_policy.attached_resource
. Par exemple,consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890"
ne renvoie que les conditions associées au projet avec l'ID de projet1234567890
.
La réponse YAML se présente comme suit:
Exemple de réponse YAML
--- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 rules: - enforce: true policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 reset: true - appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true --- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true
REST
Pour obtenir une analyse de l'application d'une contrainte de règle d'administration dans une organisation, utilisez la méthode analyzeOrgPolicies
de l'API Cloud Asset.
Méthode HTTP et URL :
GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicies
Corps JSON de la requête :
JSON_REQUEST="{ 'constraint': 'CONSTRAINT_NAME', 'filter': 'FILTER_QUERY', 'page_size': PAGE_SIZE, 'page_token': PAGE_TOKEN }"
Remplacez les éléments suivants :
ORGANIZATION_ID: ID de la ressource d'organisation. Pour savoir comment trouver votre ID d'organisation, consultez la page Créer et gérer des organisations.
CONSTRAINT_NAME: nom de la contrainte de règle d'administration que vous souhaitez analyser. Pour obtenir la liste des contraintes, consultez la page Contraintes en matière de règles d'administration.
FILTER_QUERY: requête de filtre permettant d'afficher uniquement les règles correspondant à votre expression de filtrage. Le seul champ disponible pour le filtrage est
consolidated_policy.attached_resource
. Par exemple,consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890"
ne renvoie que les conditions associées au projet avec l'ID de projet1234567890
.PAGE_SIZE: nombre d'entrées de résultats par page que vous souhaitez afficher. Pour afficher un nombre illimité d'entrées, saisissez
unlimited
. Une requête effectuée avec cet ensemble d'indicateurs renvoie une valeurnextPageToken
si le nombre total d'entrées de résultats est supérieur à PAGE_SIZE.PAGE_TOKEN: à définir uniquement pour les requêtes après la première requête incluant l'option
page_size
. Vous pouvez utiliser les valeursnextPageToken
reçues des réponses précédentes pour renvoyer une page de résultats particulière.
La réponse JSON se présente comme suit:
Exemple de réponse JSON
{ "orgPolicyResults": [ { "consolidatedPolicy": { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012", "rules": [ { "values": { "allowedValues": [ "C0265whk2" ] } }, { "values": { "allowedValues": [ "C03kd36xr" ] } } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012" }, "policyBundle": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012", "rules": [ { "values": { "allowedValues": [ "C03kd36xr" ] } } ], "inheritFromParent": true, "appliedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012" }, { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123", "rules": [ { "values": { "allowedValues": [ "C0265whk2" ] } } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123" } ] }, { "consolidatedPolicy": { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123", "rules": [ { "values": { "allowedValues": [ "C0265whk2" ] } } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123" }, "policyBundle": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123", "rules": [ { "values": { "allowedValues": [ "C0265whk2" ] } } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123" } ] } ] "constraint": { "googleDefinedConstraint": { "name": "constraints/iam.allowedPolicyMemberDomains", "displayName": "Domain restricted sharing", "description": "This list constraint defines one or more Cloud Identity or Google Workspace customer IDs whose principals can be added to IAM policies. \u003cbr\u003eBy default, all user identities are allowed to be added to IAM policies. Only allowed values can be defined in this constraint, denied values are not supported. \u003cbr\u003eIf this constraint is active, only principals that belong to the allowed customer IDs can be added to IAM policies.", "constraintDefault": "ALLOW", "listConstraint": {} } } }
Analyser les conteneurs
Dans ce contexte, un conteneur est un projet, un dossier ou une ressource d'organisation.
Policy Analyzer vous permet de renvoyer une liste de tous les conteneurs disposant de règles d'administration auxquelles une contrainte particulière est appliquée.
Policy Analyzer renvoie également le nom complet de chaque conteneur et
le parent du conteneur dans la hiérarchie.
Pour chaque conteneur détecté dans le champ d'application de la requête, Policy Analyzer renvoie une entrée de résultat. Une entrée de résultat contient les champs suivants:
consolidatedPolicy
: conteneur auquel la règle d'administration est associée et application effective de la stratégie sur ce conteneur par rapport aux règles d'évaluation de la hiérarchie.fullResourceName
: nom complet du conteneurparent
: nom complet de la ressource du parent de ce conteneur.policyBundle
: règle d'administration configurée directement sur le conteneur, le cas échéant, et règles d'administration définies sur les ancêtres du conteneur dans la hiérarchie des ressources.
Console
Dans la console Google Cloud, accédez à la page Policy Analyzer.
Dans la section Analyser la règle d'administration, recherchez le volet intitulé Quels conteneurs sont soumis à une contrainte de règle d'administration ?, puis cliquez sur Créer une requête dans ce volet.
Dans la zone Sélectionner l'organisation de la requête, sélectionnez l'organisation pour laquelle vous souhaitez analyser les règles d'administration.
Sélectionnez le type de contrainte que vous souhaitez analyser. Pour une contrainte prédéfinie, sélectionnez Contrainte intégrée. Pour une contrainte personnalisée, sélectionnez Contrainte personnalisée.
Saisissez le nom de la contrainte que vous souhaitez analyser. Le préfixe du type de contrainte que vous analysez est déjà inclus. Par exemple, saisissez
iam.allowedPolicyMemberDomains
pour la contrainte de restriction de domaine prédéfinie, et pour une contrainte personnalisée, saisissez son nom, par exempledisableGkeAutoUpgrade
.Cliquez sur Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis, ainsi qu'un tableau de résultats de tous les conteneurs auxquels cette contrainte est appliquée ou par laquelle elle en a hérité.
gcloud
Pour obtenir une analyse de la manière dont une contrainte de règle d'administration est appliquée aux conteneurs d'une organisation, utilisez la commande gcloud beta asset analyze-org-policy-governed-containers
:
gcloud beta asset analyze-org-policy-governed-containers \
--constraint=CONSTRAINT_NAME \
--scope=organizations/ORGANIZATION_ID \
--limit=LIMIT_CONTAINERS \
--filter=FILTER_QUERY
Remplacez les éléments suivants :
CONSTRAINT_NAME: nom de la contrainte de règle d'administration que vous souhaitez analyser. Pour obtenir la liste des contraintes, consultez la page Contraintes en matière de règles d'administration.
ORGANIZATION_ID: ID de la ressource d'organisation. Pour savoir comment trouver votre ID d'organisation, consultez la page Créer et gérer des organisations.
LIMIT_CONTAINERS: nombre d'entrées de résultats que vous souhaitez afficher. Pour afficher un nombre illimité d'entrées, saisissez
unlimited
.FILTER_QUERY: requête de filtre permettant d'afficher uniquement les conteneurs correspondant à votre expression de filtrage. Le seul champ disponible pour le filtrage est
parent
. Par exemple,parent="//cloudresourcemanager.googleapis.com/organizations/012345678901"
ne renvoie que les conteneurs qui sont des enfants de l'organisation ayant l'ID d'organisation012345678901
.
La réponse YAML se présente comme suit:
Exemple de réponse YAML
--- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1 attachedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1 rules: - values: allowedValues: - projects/donghe-project1/zones/us-central1-a/instances/instance-1 fullResourceName: //cloudresourcemanager.googleapis.com/projects/donghe-project1 parent: //cloudresourcemanager.googleapis.com/folders/86513245445 policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1 attachedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1 inheritFromParent: true rules: - values: allowedValues: - projects/donghe-project1/zones/us-central1-a/instances/instance-1 --- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1 attachedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1 rules: - denyAll: true fullResourceName: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1 parent: //cloudresourcemanager.googleapis.com/organizations/474566717491 policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1 attachedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1 inheritFromParent: true rules: - denyAll: true --- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 rules: - values: allowedValues: - projects/opa-test-project-1-364621/zones/us-central1-a/instances/instance-1 fullResourceName: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 parent: //cloudresourcemanager.googleapis.com/folders/666681422980 policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621 rules: - values: allowedValues: - projects/opa-test-project-1-364621/zones/us-central1-a/instances/instance-1
REST
Pour obtenir une analyse de la manière dont une contrainte de règle d'administration est appliquée aux conteneurs d'une organisation, utilisez la méthode analyzeOrgPolicyGovernedContainers
de l'API Cloud Asset.
Méthode HTTP et URL :
GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedContainers
Corps JSON de la requête :
JSON_REQUEST="{ 'constraint': 'CONSTRAINT_NAME', 'filter': '"FILTER_QUERY"', 'page_size': PAGE_SIZE, 'page_token': PAGE_TOKEN }"
Remplacez les éléments suivants :
ORGANIZATION_ID: ID de la ressource d'organisation. Pour savoir comment trouver votre ID d'organisation, consultez la page Créer et gérer des organisations.
CONSTRAINT_NAME: nom de la contrainte de règle d'administration que vous souhaitez analyser. Pour obtenir la liste des contraintes, consultez la page Contraintes en matière de règles d'administration.
FILTER_QUERY: requête de filtre permettant d'afficher uniquement les conteneurs correspondant à votre expression de filtrage. Le seul champ disponible pour le filtrage est
parent
. Par exemple,parent="//cloudresourcemanager.googleapis.com/organizations/012345678901"
ne renvoie que les conteneurs qui sont des enfants de l'organisation ayant l'ID d'organisation012345678901
.PAGE_SIZE: nombre de pages d'entrées de résultats à afficher Pour afficher un nombre illimité d'entrées, saisissez
unlimited
. Une requête effectuée avec cet ensemble d'indicateurs renvoie une valeurnextPageToken
si le nombre total d'entrées de résultats est supérieur à PAGE_SIZE.PAGE_TOKEN: à définir uniquement pour les requêtes après la première requête incluant l'option
page_size
. Vous pouvez utiliser les valeursnextPageToken
reçues des réponses précédentes pour renvoyer une page de résultats particulière.
La réponse JSON se présente comme suit:
Exemple de réponse JSON
{ "governedContainers": [ { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2", "parent": "//cloudresourcemanager.googleapis.com/folders/513502730678", "consolidatedPolicy": { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678" }, "policyBundle": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678" }, { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980", "rules": [ { "enforce": true } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980" } ] }, { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-1", "parent": "//cloudresourcemanager.googleapis.com/folders/513502730678", "consolidatedPolicy": { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678" }, "policyBundle": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678" }, { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980", "rules": [ { "enforce": true } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980" } ] } ] "constraint": { "googleDefinedConstraint": { "name": "constraints/compute.requireOsLogin", "displayName": "Require OS Login", "description": "This boolean constraint, when set to \u003ccode\u003etrue\u003c/code\u003e, enables OS Login on all newly created Projects. All VM instances created in new projects will have OS Login enabled. On new and existing projects, this constraint prevents metadata updates that disable OS Login at the project or instance level. \u003cbr\u003eBy default, the OS Login feature is disabled on Compute Engine projects.\u003cbr\u003eGKE instances in private clusters running node pool versions 1.20.5-gke.2000 and later support OS Login. GKE instances in public clusters do not currently support OS Login. If this constraint is applied to a Project running public clusters, GKE instances running in that Project may not function properly.", "constraintDefault": "ALLOW", "booleanConstraint": {} } } }
Analyser les éléments
Dans ce contexte, un élément est une ressource Google Cloud ou une stratégie d'autorisation Identity and Access Management (IAM). Policy Analyzer permet de renvoyer une liste de tous les éléments auxquels des règles d'administration sont appliquées et auquel une contrainte particulière est appliquée. Les contraintes personnalisées et les contraintes prédéfinies suivantes sont acceptées:
storage.uniformBucketLevelAccess
iam.disableServiceAccountKeyCreation
iam.allowedPolicyMemberDomains
compute.vmExternalIpAccess
appengine.enforceServiceAccountActAsCheck
gcp.resourceLocations
compute.trustedImageProjects
compute.skipDefaultNetworkCreation
compute.requireOsLogin
compute.disableNestedVirtualization
Policy Analyzer renvoie le nom complet de chaque élément, le parent de l'élément dans la hiérarchie, ainsi que toutes les ressources de projet, de dossier et d'organisation ancêtres situées au-dessus de l'élément dans la hiérarchie.
Pour chaque élément détecté dans le champ d'application de la requête, Policy Analyzer renvoie une entrée de résultat.
Une entrée de résultat pour une ressource contient les champs suivants:
consolidatedPolicy
: ressource à laquelle la règle d'administration est associée et application effective de la stratégie sur cette ressource par rapport aux règles d'évaluation de la hiérarchie.folders
: ID de tous les dossiers contenant la ressource à laquelle la règle d'administration est associée.fullResourceName
: nom complet de la ressource.organization
: nom de ressource relatif de l'organisation contenant la ressource.parent
: nom complet de la ressource parente.project
: ID du projet contenant la ressource.policyBundle
: règle d'administration complète configurée associée à la ressource ci-dessus, et règles d'administration définies sur ses ancêtres dans la hiérarchie des ressources.
L'entrée de résultat d'une règle d'autorisation contient les champs suivants:
consolidatedPolicy
: ressource à laquelle la règle d'administration est associée et application effective de la stratégie sur cette ressource par rapport aux règles d'évaluation de la hiérarchie.attachedResource
: nom complet de la ressource à laquelle la règle d'autorisation est associée.folders
: nom de ressource relatif de tous les dossiers contenant la règle d'autorisation.organization
: nom de ressource relatif de l'organisation contenant la règle d'autorisation.policy
: règle d'autorisation.project
: nom de ressource relatif du projet contenant la règle d'autorisation.policyBundle
: règle d'administration complète configurée associée à la ressource ci-dessus, et règles d'administration définies sur ses ancêtres dans la hiérarchie des ressources.
Console
Dans la console Google Cloud, accédez à la page Policy Analyzer.
Dans la section Analyser la règle d'administration, recherchez le volet intitulé Quels éléments sont soumis à une contrainte de règle d'administration ?, puis cliquez sur Créer une requête dans ce volet.
Dans la zone Sélectionner l'organisation de la requête, sélectionnez l'organisation pour laquelle vous souhaitez analyser les règles d'administration.
Sélectionnez le type de contrainte que vous souhaitez analyser. Pour une contrainte prédéfinie, sélectionnez Contrainte intégrée. Pour une contrainte personnalisée, sélectionnez Contrainte personnalisée.
Saisissez le nom de la contrainte que vous souhaitez analyser. Le préfixe du type de contrainte que vous analysez est déjà inclus. Par exemple, pour la contrainte d'accès prédéfinie au niveau du bucket, saisissez
storage.uniformBucketLevelAccess
. Pour une contrainte personnalisée, indiquez son nom, par exempledisableGkeAccess
.Cliquez sur Exécuter la requête. La page du rapport affiche les paramètres de requête que vous avez saisis, ainsi qu'un tableau de résultats de tous les éléments auxquels cette contrainte est appliquée ou dont elle a hérité.
gcloud
Pour analyser l'application d'une contrainte de règle d'administration aux éléments d'une organisation, utilisez la commande gcloud beta asset analyze-org-policy-governed-assets
:
gcloud beta asset analyze-org-policy-governed-assets \
--constraint=CONSTRAINT_NAME \
--scope=organizations/ORGANIZATION_ID \
--limit=LIMIT_ASSETS \
--filter=FILTER_QUERY
Remplacez les éléments suivants :
CONSTRAINT_NAME: nom de la contrainte de règle d'administration que vous souhaitez analyser. Pour obtenir la liste des contraintes, consultez la page Contraintes en matière de règles d'administration.
ORGANIZATION_ID: ID de la ressource d'organisation. Pour savoir comment trouver votre ID d'organisation, consultez la page Créer et gérer des organisations.
LIMIT_ASSETS: nombre d'entrées de résultats à afficher Pour afficher un nombre illimité d'entrées, saisissez
unlimited
.FILTER_QUERY: requête de filtre permettant d'afficher uniquement les éléments correspondant à votre expression de filtrage. Les champs disponibles pour le filtrage sont
governed_resource.folders
,governed_resource.project
,governed_iam_policy.folders
etgoverned_iam_policy.project
. Par exemple,governed_resource.project="projects/1234567890"
ne renvoie que les éléments associés au projet dont l'ID est1234567890
.
La réponse YAML se présente comme suit:
Exemple de réponse YAML
--- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2 attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2 rules: - enforce: false governedResource: folders: - folders/513502730678 - folders/666681422980 fullResourceName: //container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1/nodePools/default-pool organization: organizations/474566717491 parent: //container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1 project: projects/892625391619 policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2 attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2 reset: true - appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true --- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918 attachedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918 rules: - enforce: false governedResource: folders: - folders/800636178739 - folders/408342778736 fullResourceName: //container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1/nodePools/default-pool organization: organizations/474566717491 parent: //container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1 project: projects/761097189269 policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918 attachedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918 rules: - enforce: false - appliedResource: //cloudresourcemanager.googleapis.com/folders/408342778736 attachedResource: //cloudresourcemanager.googleapis.com/folders/408342778736 rules: - condition: description: cond-desc1 expression: resource.matchTag("474566717491/env", "prod") title: cond-title1 enforce: false - enforce: true - appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true --- consolidatedPolicy: appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true governedResource: fullResourceName: //container.googleapis.com/projects/probe-per-rt-project/zones/us-west1-a/clusters/test-cluster-for-backup/nodePools/default-pool organization: organizations/474566717491 parent: //container.googleapis.com/projects/probe-per-rt-project/zones/us-west1-a/clusters/test-cluster-for-backup project: projects/896190383908 policyBundle: - appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491 rules: - enforce: true
REST
Pour obtenir une analyse de l'application d'une contrainte de règle d'administration aux éléments d'une organisation, utilisez la méthode analyzeOrgPolicyGovernedAssets
de l'API Cloud Asset.
Méthode HTTP et URL :
GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedAssets
Corps JSON de la requête :
JSON_REQUEST="{ 'constraint': 'CONSTRAINT_NAME', 'filter': 'FILTER_QUERY', 'page_size': PAGE_SIZE, 'page_token': PAGE_TOKEN }"
Remplacez les éléments suivants :
ORGANIZATION_ID: ID de la ressource d'organisation. Pour savoir comment trouver votre ID d'organisation, consultez la page Créer et gérer des organisations.
CONSTRAINT_NAME: nom de la contrainte de règle d'administration que vous souhaitez analyser. Pour obtenir la liste des contraintes, consultez la page Contraintes en matière de règles d'administration.
FILTER_QUERY: requête de filtre permettant d'afficher uniquement les éléments correspondant à votre expression de filtrage. Les champs disponibles pour le filtrage sont
governed_resource.folders
,governed_resource.project
,governed_iam_policy.folders
etgoverned_iam_policy.project
. Par exemple,governed_resource.project="projects/1234567890"
ne renvoie que les éléments associés au projet dont l'ID est1234567890
.PAGE_SIZE: nombre de pages d'entrées de résultats à afficher Pour afficher un nombre illimité d'entrées, saisissez
unlimited
. Une requête effectuée avec cet ensemble d'indicateurs renvoie une valeurnextPageToken
si le nombre total d'entrées de résultats est supérieur à PAGE_SIZE.PAGE_TOKEN: à définir uniquement pour les requêtes après la première requête incluant l'option
page_size
. Vous pouvez utiliser les valeursnextPageToken
reçues des réponses précédentes pour renvoyer une page de résultats particulière.
La réponse JSON se présente comme suit:
Exemple de réponse JSON
{ "governedAssets": [ { "governedResource": { "fullResourceName": "//container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1/nodePools/default-pool", "parent": "//container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1", "project": "projects/892625391619", "folders": [ "folders/513502730678", "folders/666681422980" ], "organization": "organizations/474566717491" }, "consolidatedPolicy": { "attachedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2" }, "policyBundle": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2", "reset": true, "appliedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2" }, { "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491", "rules": [ { "enforce": true } ], "appliedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491" } ] }, { "governedResource": { "fullResourceName": "//container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1/nodePools/default-pool", "parent": "//container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1", "project": "projects/761097189269", "folders": [ "folders/800636178739", "folders/408342778736" ], "organization": "organizations/474566717491" }, "consolidatedPolicy": { "attachedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918" }, "policyBundle": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918", "rules": [ { "enforce": false } ], "appliedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918" }, { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/408342778736", "rules": [ { "enforce": false, "condition": { "expression": "resource.matchTag(\"474566717491/env\", \"prod\")", "title": "cond-title1", "description": "cond-desc1" } }, { "enforce": true } ], "appliedResource": "//cloudresourcemanager.googleapis.com/folders/408342778736" }, { "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491", "rules": [ { "enforce": true } ], "appliedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491" } ] } ] "constraint": { "customConstraint": { "name": "organizations/474566717491/customConstraints/custom.disableGkeAutoUpgrade", "resourceTypes": [ "container.googleapis.com/NodePool" ], "methodTypes": [ "CREATE", "UPDATE" ], "condition": "resource.management.autoUpgrade == false", "actionType": "ALLOW", "displayName": "Disable GKE auto upgrade", "description": "Only allow GKE NodePool resource create or updates if AutoUpgrade is not enabled" } } }
Étapes suivantes
- En savoir plus sur l'utilisation de contraintes.
- Découvrez comment créer et gérer des contraintes personnalisées.