Policy Simulator pour les règles d'administration vous permet de prévisualiser l'impact d'une nouvelle contrainte personnalisée ou d'une règle d'administration qui applique une contrainte personnalisée avant qu'elle ne soit appliquée dans votre environnement de production. Policy Simulator fournit une liste de ressources qui ne respectent pas la règle proposée avant qu'elle ne soit ce qui vous permet de reconfigurer ces ressources, de demander des exceptions modifier le champ d'application de votre règle d'administration, sans perturber développeurs ou faire perdre votre environnement.
Cette page explique comment tester une modification apportée à une règle d'administration à l'aide de Policy Simulator. Elle explique également comment interpréter les résultats de la simulation et comment appliquer la stratégie d'administration testée si vous le souhaitez.
Avant de commencer
-
Si vous utilisez Google Cloud CLI, définissez le projet que vous souhaitez utiliser pour effectuer des appels d'API :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_ID
par le nom ou l'ID projet. -
Enable the Policy Simulator and Resource Manager APIs.
- Facultatif : Découvrez la présentation du service de règles d'administration.
Rôles requis
Pour obtenir les autorisations nécessaires pour exécuter et accéder aux simulations, demandez à votre administrateur de vous accorder le rôle IAM Administrateur du simulateur OrgPolicy (roles/policysimulator.orgPolicyAdmin
) dans l'organisation.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour exécuter et accéder aux simulations. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour exécuter et accéder aux simulations :
-
orgpolicy.constraints.list
-
orgpolicy.customConstraints.get
-
orgpolicy.policies.list
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.listResource
-
cloudasset.assets.listOrgPolicy
-
policysimulator.orgPolicyViolationsPreviews.list
-
policysimulator.orgPolicyViolationsPreviews.get
-
policysimulator.orgPolicyViolationsPreviews.create
-
policysimulator.orgPolicyViolations.list
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Tester une modification de stratégie
Vous pouvez tester une modification apportée à une contrainte personnalisée, une règle d'administration qui applique une contrainte personnalisée, ou les deux à la fois.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Cliquez sur le sélecteur de projets en haut de la page.
Dans le sélecteur de projets, sélectionnez la ressource pour laquelle vous souhaitez tester les modifications apportées à une règle d'administration. Pour tester les modifications apportées à une contrainte personnalisée, vous devez sélectionner une ressource de l'organisation.
Si vous souhaitez tester une nouvelle contrainte personnalisée, cliquez sur
Contrainte personnalisée. Si vous voulez pour modifier une contrainte personnalisée existante, sélectionnez-la dans la liste sur la page Règles d'administration, puis cliquez sur Modifier la contrainte.Créez ou mettez à jour la contrainte personnalisée que vous souhaitez tester.
Par exemple, pour définir une contrainte personnalisée qui limite la création de ressources de cluster Google Kubernetes Engine lorsque l'autorisation binaire n'est pas activée, procédez comme suit :
Dans la zone Type de ressource, sélectionnez
container.googleapis.com/Cluster
Sous Méthode d'application, sélectionnez Appliquer lors de la création.
Cliquez sur
Modifier la condition.Dans le panneau Ajouter une condition, saisissez
resource.binaryAuthorization.enabled == true
Cliquez sur Enregistrer.
Sous Action, sélectionnez Autoriser.
Pour en savoir plus, consultez Créer et gérer des contraintes personnalisées
Cliquez sur Tester la contrainte.
S'il s'agit d'une nouvelle contrainte ou d'une contrainte non appliquée par une règle d'administration, vous devez définir la règle d'administration.
Dans le champ Sélectionner le champ d'application, sélectionnez la ressource pour laquelle vous souhaitez tester cette contrainte personnalisée.
Cliquez sur Personnaliser.
Cliquez sur Ajouter une règle.
Sous Application, sélectionnez Activé, puis cliquez sur OK.
Cliquez sur Continuer.
La page Historique des simulations s'affiche, avec une liste des simulations que vous avez effectuées au cours des 14 derniers jours. Pour en savoir plus, consultez la section Résultats de Policy Simulator sur cette page.
gcloud
Pour tester une contrainte personnalisée, créez un fichier JSON ou YAML qui définit la la contrainte personnalisée à tester.
Par exemple, une contrainte personnalisée qui limite la création ressources de cluster où l'autorisation binaire n'est pas activée est semblable suivantes:
name: "organizations/ORGANIZATION_ID/customConstraints/custom.EnforceGKEBinaryAuthz" resource_types: "container.googleapis.com/Cluster" method_types: CREATE condition: "resource.binaryAuthorization.enabled == true" action_type: ALLOW
Remplacez
ORGANIZATION_ID
par l'ID de votre organisation. comme1234567890123
.Pour en savoir plus sur la création de contraintes personnalisées, consultez la page Créer et gérer des contraintes personnalisées.
Pour tester une règle d'administration qui applique de manière conditionnelle une contrainte personnalisée en fonction de l'existence d'une balise particulière, créez un fichier JSON ou YAML qui définit la règle d'administration que vous souhaitez tester.
Par exemple, la règle d'administration suivante limite la création Les ressources de cluster Google Kubernetes Engine pour lesquelles l'autorisation binaire n'est pas activée, à l'exception sur les ressources associées au tag
env=dev
.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - condition: expression: "resource.matchTag('env', 'dev')" enforce: false - enforce: true
Remplacez
ORGANIZATION_ID
par l'ID de votre organisation, par exemple1234567890123
.Pour en savoir plus sur les règles d'administration conditionnelles, consultez la section Définir une règle d'administration avec des tags.
Pour tester une règle d'administration qui applique une contrainte personnalisée, créez un fichier JSON ou YAML qui définit la règle d'administration que vous souhaitez tester.
Par exemple, une règle d'administration qui restreint la création Les ressources de cluster Google Kubernetes Engine pour lesquelles l'autorisation binaire n'est pas activée sont semblable à ce qui suit:
name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - enforce: true
Remplacez
ORGANIZATION_ID
par l'ID de votre organisation, par exemple1234567890123
.Tester la suppression d'une règle d'administration qui applique une règle personnalisée créez un fichier JSON ou YAML définissant la règle d'administration mais ne définit aucune règle et hérite de la stratégie de sa ressource parente.
Par exemple, la règle d'administration suivante simulerait la suppression d'une contrainte personnalisée
custom.EnforceGKEBinaryAuthz
existante.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: inheritFromParent: true
Exécutez la commande suivante pour simuler la modification de la contrainte personnalisée, de la règle d'administration ou des deux :
gcloud beta policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --custom-constraints=CONSTRAINT_PATH \ --policies=POLICY_PATH
Remplacez les éléments suivants :
ORGANIZATION_ID
: ID de votre organisation (par exemple,1234567890123
). Simuler les changements dans plusieurs organisations n'est pas compatibles.CONSTRAINT_PATH
: chemin d'accès complet à la contrainte personnalisée que vous avez créée ou mise à jour. Exemple :tmp/constraint.yaml
Si vous définissez l'indicateur--policies
, vous n'avez pas besoin de définir--custom-constraints
.POLICY_PATH
: chemin d'accès complet à l'organisation que vous avez créée ou mise à jour. Par exemple,tmp/policy.yaml
Si vous définissez l'indicateur--custom-constraints
, vous n'avez pas besoin de définir l'indicateur--policies
.
Après quelques minutes, la commande affiche une liste de ressources enfreindre les modifications apportées à la contrainte personnalisée, à la règle d'administration ou les deux.
Les résultats sont également visibles dans la console Google Cloud. Pour savoir comment lire les résultats, consultez la section Résultats de Policy Simulator sur cette page.
Voici un exemple de réponse pour une simulation de règle d'administration.
Cette simulation implique une contrainte personnalisée qui limite la création
Ressources de cluster Google Kubernetes Engine pour lesquelles l'autorisation binaire n'est pas activée. Dans ce
Si la modification proposée était appliquée, deux ressources de cluster
ne respecte pas la règle orgpolicy-test-cluster
dans le projet
simulator-test-project
et autopilot-cluster-1
sous le projet
orgpolicy-test-0
Waiting for operation [organizations/012345678901/locations/global/orgPolic
yViolationsPreviews/85be9a2d-8c49-470d-a65a-d0cb9ffa8f83/operations/1883a83
c-c448-42e5-a7c5-10a850928f06] to complete...done.
---
customConstraint:
actionType: ALLOW
condition: resource.binaryAuthorization.enabled == true
methodTypes:
- CREATE
name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
resourceTypes:
- container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/b9fd23a5-7163-46de-9fec-7b9aa6af1113
resource:
ancestors:
- organizations/012345678901
- projects/456789012345
assetType: container.googleapis.com/Cluster
resource: //container.googleapis.com/projects/simulator-test-project/locations/us-central1/clusters/orgpolicy-test-cluster
---
customConstraint:
actionType: ALLOW
condition: resource.binaryAuthorization.enabled == true
methodTypes:
- CREATE
name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
resourceTypes:
- container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/e73896e6-7613-4a8d-8436-5df7a6455121
resource:
ancestors:
- organizations/012345678901
- folders/789012345678
- projects/456789012345
assetType: container.googleapis.com/Cluster
resource: //container.googleapis.com/projects/orgpolicy-test-0/locations/us-central1/clusters/autopilot-cluster-1
Résultats de Policy Simulator
Policy Simulator signale les résultats d'une modification d'une contrainte personnalisée ou une règle d'administration comme une liste de cas de non-respect de la règle simulée. La La console Google Cloud stocke les résultats des simulations que vous avez générées au cours des 14 dernières jours.
Pour afficher les résultats de simulation, accédez à la page Historique des simulations.
Accéder à l'historique des simulations
Sélectionnez une simulation pour afficher les détails. Sur la page Rapport de simulation, vous pouvez consulter l'aperçu des cas de non-respect, qui indique le nombre total de cas de non-respect causés par la nouvelle contrainte personnalisée ou la nouvelle règle d'administration, le nombre de ressources vérifiées dans le champ d'application de la simulation et l'heure à laquelle la simulation s'est terminée.
Si vous avez simulé une contrainte personnalisée, vous pouvez cliquer sur Détails de la contrainte pour voir la configuration spécifique qui a été simulée. Si vous avez simulé une règle d'administration, l'onglet Policy details (Détails de la règle) affiche la configuration simulée.
Toutes les infractions sont listées dans le tableau des ressources. Chaque ressource qui enfreint la nouvelle contrainte personnalisée ou règle d'administration est répertoriée avec un lien vers une entrée de ressource dans l'inventaire des éléments cloud. Les ressources "Projet", "Dossier" et "Organisation" avec la somme totale des ressources situées en dessous d'elles dans la hiérarchie ne respectent pas la nouvelle contrainte personnalisée ou la nouvelle règle d'administration.
Appliquer une modification de règle testée
Après avoir testé votre contrainte personnalisée, votre règle d'administration ou les deux, vous configurer la contrainte personnalisée et appliquer la règle d'administration. Vous pouvez voir tous les résultats de Policy Simulator dans la console Google Cloud, indépendamment de la façon dont elles ont été générées. Si votre rapport de simulation n'inclut pas plus d'une modification de règle d'administration, vous pouvez appliquer la règle d'administration directement via les résultats de la simulation. Pour appliquer les modifications de test à plusieurs règles d'organisation, utilisez Google Cloud CLI.
Console
Pour appliquer une contrainte personnalisée aux résultats de Policy Simulator, accédez à la page Historique des simulations.
Sélectionnez le rapport de simulation pour la contrainte ou l'organisation personnalisée que vous souhaitez appliquer.
Si ce rapport de simulation inclut une contrainte personnalisée, cliquez sur Enregistrer la contrainte.
Si ce rapport de simulation inclut les modifications apportées à plus d'une organisation vous pouvez l'appliquer en tant que règle de simulation de surveiller le comportement en production sans introduire de risque en sélectionnant Définir une règle de dry run La page Détails de la règle de la nouvelle règle d'administration s'affiche.
Vous pouvez appliquer la règle d'administration immédiatement en cliquant sur
, puis en sélectionnant Définir des règles
gcloud
Pour appliquer une contrainte personnalisée, vous devez la configurer de sorte qu'elle soit disponible règles d'administration de votre organisation. Pour configurer une contrainte personnalisée, utilisez la gcloud org-policies set-custom-constraint commande:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Remplacez
CONSTRAINT_PATH
par le chemin d'accès complet à votre fichier de contrainte personnalisée. Exemple :/home/user/customconstraint.yaml
Une fois l'opération terminée, votre contrainte personnalisée est disponible dans votre liste des règles d'administration Google Cloud.
Pour appliquer une règle d'administration contenant une contrainte personnalisée, utilisez la commande gcloud org-policies set-policy :
gcloud org-policies set-policy POLICY_PATH
Remplacez
POLICY_PATH
par le chemin d'accès complet au fichier YAML de votre règle d'administration.La prise en compte de la règle peut prendre jusqu'à 15 minutes.
Enregistrer les résultats de simulation
Console
Si vous utilisez la console Google Cloud, vous pouvez enregistrer Policy Simulator les résultats sous forme de fichier CSV.
Pour enregistrer les résultats de Policy Simulator, accédez à la page Historique des simulations.
Sélectionnez le rapport de simulation que vous souhaitez enregistrer.
Cliquez sur
Exporter les résultats complets.
gcloud
Si vous utilisez la gcloud CLI, vous pouvez enregistrer Résultats de Policy Simulator sous forme de fichiers JSON ou YAML.
Par défaut, les résultats des tests dans la Google Cloud CLI sont générés au format YAML. À
enregistrez le résultat du test dans un fichier YAML, redirigez la sortie du
simulate orgpolicy
lors de l'exécution de la simulation:
> FILENAME
Remplacez FILENAME
par le nom du fichier de sortie.
Pour enregistrer un résultat de test sous forme de fichier JSON, ajoutez l'option suivante à la commande simulate orgpolicy
lors de l'exécution de la simulation :
--format=json > FILENAME
Remplacez FILENAME
par le nom du fichier de sortie.
Étape suivante
- En savoir plus sur les contraintes.
- Découvrez les options supplémentaires que vous pouvez utiliser pour personnaliser vos règles.
- Découvrez comment définir des règles d'administration basées sur des tags.