Cette page explique comment utiliser une règle d'administration en mode dry run pour surveiller l'impact d'une modification de règle sur vos flux de travail avant qu'elle ne soit appliquée.
Une règle d'administration en mode de simulation est créée et appliquée de la même manière que d'autres règles d'administration et les cas de non-respect des règles sont consignés dans des journaux d'audit, les actions non conformes ne sont pas refusées.
Avant de commencer
Pour utiliser une règle d'administration en mode de simulation, vous devez activer la facturation pour votre projet Google Cloud. Pour savoir comment vérifier si la facturation est activée d'un projet, consultez Vérifier l'état de facturation de vos projets.
Pour en savoir plus sur les règles et les contraintes d'administration, leur fonctionnement, consultez la page Présentation du service de règles d'administration.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer des règles d'administration, demandez à votre administrateur de vous accorder le rôle IAM Administrateur des règles d'administration (roles/orgpolicy.policyAdmin
) dans l'organisation.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient les autorisations requises pour gérer les 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 gérer les règles d'administration:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Limites
Les seules contraintes de règles d'administration disponibles pour la simulation règles d'administration:
- Restreindre l'utilisation du service de ressources
- Limiter les versions TLS
- Contraintes personnalisées
Toute tentative de création d'une règle d'administration en mode dry run à l'aide d'une autre entraîne une erreur.
Créer une règle d'administration en mode dry run
Contraintes de liste
Vous pouvez créer une règle d'administration en mode dry run pour une contrainte de liste
à l'aide de la console Google Cloud ou de la Google Cloud CLI. Les exemples suivants
montrer comment créer une règle d'administration en mode de simulation qui audite
de la contrainte de liste gcp.restrictServiceUsage
.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Dans le sélecteur de projet, choisissez la ressource pour laquelle vous souhaitez définir la règle d'administration.
Sélectionnez la contrainte Restreindre l'utilisation du service de ressources dans la liste. sur la page Règles d'administration.
Sélectionnez l'onglet Simulation.
Cliquez sur Gérer la règle de dry run.
Sur la page Modifier la règle de dry run, sélectionnez Remplacer la règle parente.
Sous Application des règles, cliquez sur Remplacer.
Cliquez sur Ajouter une règle.
Dans Valeurs de règles, sélectionnez Personnalisé.
Dans Type de règle, sélectionnez Refuser.
Dans le champ Valeurs personnalisées, saisissez
compute.googleapis.com
, puis cliquez sur OK.S'il s'agit d'une contrainte personnalisée, vous pouvez cliquer sur Tester les modifications pour pour simuler l'effet de cette règle d'administration. Pour plus d'informations, consultez Tester les modifications apportées aux règles d'administration avec Policy Simulator.
Pour appliquer la règle d'administration en mode dry run, cliquez sur Définir une règle de dry run Vous pouvez également définir la règle en ligne en cliquant sur Définir des règles
Vous pouvez vérifier l'état de votre règle d'administration en mode dry run en procédant comme suit : en accédant à l'onglet Dry run (Simulation) d'une contrainte de règle d'administration.
Pour les projets auxquels une règle d'administration en mode dry run est appliquée
vous pouvez consulter les journaux d'audit en cliquant sur Afficher les journaux de refus. Pour
cette règle d'administration, les journaux d'audit affichent les violations comme si
La contrainte Restreindre l'utilisation des services de ressources est appliquée pour refuser
compute.googleapis.com
gcloud
Pour créer une règle d'administration en mode dry run, créez un fichier YAML
Elle définit la contrainte avec dryRunSpec
. Exemple :
name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage dryRunSpec: rules: - values: deniedValues: - compute.googleapis.com
Remplacez les éléments suivants :
RESOURCE_TYPE
avecorganizations
,folders
, ouprojects
.RESOURCE_ID
par l'ID de votre organisation et le dossier ID, ID ou numéro de projet, selon le type de ressource spécifié dansRESOURCE_TYPE
.
Cette règle d'administration n'appliquera pas le gcp.restrictServiceUsage
mais les journaux d'audit affichent les violations comme si c'était le cas.
Vous pouvez définir une règle d'administration active et une règle d'administration de simulation
dans le même fichier YAML, si vous définissez à la fois spec
et dryRunSpec
. Exemple :
name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage spec: rules: - values: allowedValues: - container.googleapis.com dryRunSpec: rules: - values: allowedValues: - compute.googleapis.com - appengine.googleapis.com
Pour appliquer une règle d'administration en mode de simulation, utilisez la
org-policies set policy
. Mettre à jour une règle d'administration existante
en mode de simulation avec de nouvelles contraintes, utilisez l'option --update-mask
. Exemple :
gcloud org-policies set-policy POLICY_PATH \ --update-mask=UPDATE_MASK
Remplacez les éléments suivants :
POLICY_PATH
par le chemin d'accès complet à votre fichier YAML de règle d'administration.UPDATE_MASK
parspec
pour ne mettre à jour que la règle active, oudryRunSpec
pour mettre à jour uniquement la règle d'administration dans de simulation. Vous pouvez également utiliser*
pour mettre à jour à la foisspec
etdryRunSpec
. Si ce champ n'est pas défini lors de la mise à jour d'une règle d'administration, cette commande génère une erreur et la règle d'administration ne sera pas mise à jour.
Vous pouvez vérifier que la règle d'administration en mode de simulation est définie en utilisant
la commande org-policies describe
. Le champ dryRunSpec
ne s'affiche que si
dans la règle d'administration.
Cette règle d'administration applique le gcp.restrictServiceUsage
de sorte que seul container.googleapis.com
est autorisé. Toutefois,
les journaux d'audit affichent les cas de non-respect des règles compute.googleapis.com
et
appengine.googleapis.com
.
Contraintes booléennes
Vous pouvez créer une règle d'administration en mode de simulation pour une contrainte booléenne à l'aide de la console Google Cloud ou de la Google Cloud CLI. Les exemples suivants montrer comment créer une règle d'administration en mode de simulation qui audite effet d'une règle d'administration personnalisée booléenne.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Dans le sélecteur de projet, choisissez la ressource pour laquelle vous souhaitez définir la règle d'administration.
Dans la liste, sélectionnez la règle d'administration personnalisée que vous souhaitez appliquer. sur la page Règles d'administration.
Sélectionnez l'onglet Simulation.
Cliquez sur Gérer la règle de dry run.
Sur la page Modifier la règle de dry run, sélectionnez Remplacer la règle parente.
Cliquez sur Ajouter une règle.
Sous Application, sélectionnez Activé, puis cliquez sur OK.
Pour appliquer la règle d'administration en mode dry run, cliquez sur Définir une règle de dry run Une fois que vous avez vérifié que la règle d'administration le mode de simulation fonctionne comme prévu, vous pouvez définir la règle active en cliquant Définir des règles
Vous pouvez vérifier l'état de votre règle d'administration en mode dry run en procédant comme suit : en accédant à l'onglet Dry run (Simulation) d'une contrainte de règle d'administration.
Pour les projets auxquels une règle d'administration en mode dry run est appliquée vous pouvez consulter les journaux d'audit en cliquant sur Afficher les journaux de refus. Pour cette règle d'administration, les journaux d'audit affichent les violations comme si une règle d'administration personnalisée est appliquée.
gcloud
Pour créer une règle d'administration en mode dry run, créez un fichier YAML
Elle définit la contrainte avec dryRunSpec
. Exemple :
name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME dryRunSpec: rules: - enforce: true
Remplacez les éléments suivants :
RESOURCE_TYPE
avecorganizations
,folders
, ouprojects
.RESOURCE_ID
par l'ID de votre organisation et le dossier ID, ID ou numéro de projet, selon le type de ressource spécifié dansRESOURCE_TYPE
.CONSTRAINT_NAME
par le nom de votre d'une contrainte. Exemple :custom.disableGkeAutoUpgrade
Cette règle d'administration n'applique pas la contrainte personnalisée, mais les journaux d'audit affichent les infractions comme si c'était le cas.
Vous pouvez définir une règle d'administration active et une règle d'administration dans
mode de simulation dans le même fichier YAML, si vous définissez à la fois spec
et
dryRunSpec
Exemple :
name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: false dryRunSpec: rules: - enforce: true
Pour appliquer une règle d'administration en mode de simulation, utilisez la
org-policies set policy
. Mettre à jour une règle d'administration existante
en mode de simulation avec de nouvelles contraintes, utilisez l'option --update-mask
. Exemple :
gcloud org-policies set-policy POLICY_PATH \ --update-mask=UPDATE_MASK
Remplacez les éléments suivants :
POLICY_PATH
par le chemin d'accès complet à votre fichier YAML de règle d'administration.UPDATE_MASK
parspec
pour ne mettre à jour que la règle active, oudryRunSpec
pour mettre à jour uniquement la règle d'administration dans de simulation. Vous pouvez également utiliser*
pour mettre à jour à la foisspec
etdryRunSpec
. Si ce champ n'est pas défini lors de la mise à jour d'une règle d'administration, cette commande génère une erreur et la règle d'administration ne sera pas mise à jour.
Vous pouvez vérifier qu'une règle d'administration en mode de simulation est définie en utilisant
la commande org-policies describe
. Le champ dryRunSpec
ne s'affiche que si
dans la règle d'administration.
Cette règle d'administration n'applique pas la contrainte personnalisée. Toutefois, les journaux d'audit indiquent les cas de non-respect de la contrainte personnalisée.
Créer une règle d'administration en mode dry run à partir d'une règle active
Vous pouvez utiliser une règle d'administration existante comme point de départ des règles d'administration en mode de simulation. Vous pouvez le faire pour voir ce que sur votre environnement toute modification de la stratégie existante.
Vous pouvez créer une règle d'administration en mode de simulation basée sur un à l'aide de la console Google Cloud ou de la Google Cloud CLI.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Dans le sélecteur de projet, choisissez une ressource disposant déjà du Une contrainte de restriction d'utilisation du service de ressources configurée dessus.
Sélectionnez la contrainte Restreindre l'utilisation du service de ressources dans la liste. sur la page Règles d'administration.
Sélectionnez l'onglet Diffusions en direct.
Cliquez sur Gérer la règle.
Cliquez sur Ajouter une règle.
Dans Valeurs de règles, sélectionnez Personnalisé.
Dans Type de règle, sélectionnez Refuser.
Dans le champ Valeurs personnalisées, saisissez
appengine.googleapis.com
.Cliquez sur OK, puis sur Définir une règle de dry run.
gcloud
Créer une règle d'administration en mode de simulation basée sur une règle active
la règle d'administration actuelle, obtenez la stratégie actuelle de la ressource à l'aide de la
org-policies describe
. Exemple :
gcloud org-policies describe gcp.restrictServiceUsage \ --project=PROJECT_ID
Remplacez PROJECT_ID
par l'ID ou le projet du projet.
numéro du projet dans lequel cette règle d'administration est configurée.
Le résultat doit ressembler à ce qui suit :
name: projects/123456789012/policies/gcp.restrictServiceUsage spec: etag: CJy93KEGEKCJw/QB rules: - values: allowedValues: - compute.googleapis.com updateTime: '2023-04-12T21:11:56.512804Z'
Copiez le résultat de cette commande dans un fichier temporaire. Modifier ce fichier en
Supprimez les champs etag
et updateTime
, puis remplacez le champ spec
par
dryRunSpec
Apportez les modifications souhaitées à la configuration de la contrainte que vous
que vous voulez tester dans votre règle
d'administration en mode de simulation.
Une fois terminé, le fichier YAML doit se présenter comme suit:
name: projects/123456789012/policies/gcp.restrictServiceUsage dryRunSpec: rules: - values: allowedValues: - compute.googleapis.com - appengine.googleapis.com
Pour appliquer la règle d'administration en mode de simulation, utilisez la
org-policies set policy
avec l'indicateur --update-mask
. Exemple :
gcloud org-policies set-policy POLICY_PATH \ --update-mask=dryRunSpec
Remplacez POLICY_PATH
par le chemin d'accès complet à votre
fichier YAML de règle d'administration temporaire.
Supprimer une règle d'administration en mode dry run
Vous pouvez supprimer une règle d'administration en mode dry run à l'aide de la la console Google Cloud ou la Google Cloud CLI.
Console
Dans la console Google Cloud, accédez à la page Règles d'administration.
Dans le sélecteur de projet, choisissez la ressource pour laquelle vous souhaitez définir la règle d'administration.
Sélectionnez la contrainte Restreindre l'utilisation du service de ressources dans la liste. sur la page Règles d'administration.
Sélectionnez l'onglet Simulation.
Cliquez sur Supprimer la règle de dry run.
gcloud
Pour supprimer une règle d'administration en mode de simulation, créez un fichier YAML Définit la règle d'administration sans spécification de dry run. Exemple :
name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage spec: rules: - values: allowedValues: - container.googleapis.com
Remplacez les éléments suivants :
RESOURCE_TYPE
avecorganizations
,folders
ouprojects
RESOURCE_ID
par l'ID de votre organisation et le dossier ID, ID ou numéro de projet, selon le type de ressource spécifié dansRESOURCE_TYPE
.
Exécutez ensuite la commande org-policies set policy
avec la commande --update-mask
.
défini sur dryRunSpec
. Exemple :
gcloud org-policies set-policy POLICY_PATH \ --update-mask=dryRunSpec
La règle d'administration existante est alors mise à jour pour supprimer la simulation et ignore la partie active de la spécification.
Pour supprimer à la fois les règles d'administration actives et les règles d'administration dans
en mode dry run en même temps, utilisez la commande org-policies delete
. Exemple :
gcloud org-policies delete CONSTRAINT_NAME \ --RESOURCE_TYPE=RESOURCE_ID
Remplacez les éléments suivants :
CONSTRAINT_NAME
par le nom de la contrainte ; que vous souhaitez supprimer. Exemple :gcp.restrictServiceUsage
RESOURCE_TYPE
avecorganizations
,folders
ouprojects
RESOURCE_ID
par l'ID de votre organisation et le dossier ID, ID ou numéro de projet, selon le type de ressource spécifié dansRESOURCE_TYPE
.
Évaluation efficace des règles d'administration en mode de simulation
Les règles d'administration en mode de simulation sont héritées de la même manière que règles d'administration. Si une règle d'administration en mode dry run est définie sur un organisation, toutes les ressources descendantes en héritent, à moins qu'elle ne soit et sont remplacées à un niveau inférieur dans la hiérarchie.
Une évaluation efficace des stratégies montre le résultat des règles d'administration qui sont fusionnées sur cette ressource. Par conséquent, les ajustements les règles d'administration sont reflétées dans la règle d'administration en vigueur mode de simulation, si la règle du mode de simulation est héritée plutôt que définie localement.
Prenons l'exemple d'une ressource d'organisation, Organization A
, avec une ressource active
une règle d'administration définie sur enforced: false
, et une règle d'administration dans
mode de simulation défini sur enforced: true
. Une ressource enfant, Folder B
, définit également
la règle d'administration active sur enforced: false
et hérite du
des règles d'administration en mode de simulation. Sous Folder B
, la règle "Set live" signifie
l'évaluation effective de la règle d'administration
en mode de simulation
enforce: false
également, remplaçant la règle d'administration en mode de simulation définie dans
son organisation parente.
Une ressource enfant de Folder B
, Project X
, définit la règle active sur
enforced: true
À l'instar du comportement sur Folder B
, les valeurs effectives
l'évaluation de la règle d'administration en mode de simulation pour Project X
est
enforced: true
, car la règle active est définie.
Une autre ressource enfant de Folder B
, Project Y
, définit la règle d'administration.
en mode de simulation sur enforced: true
. Il hérite de la règle d'administration
sa ressource parente. L'évaluation effective est donc enforced: false
pour
la règle active et enforced: true
pour la règle d'administration dans le dry run (test à blanc)
.
Ressource | Définir une règle d'administration active | Règle d'administration en direct effective | Définir une règle d'administration en mode dry run | Règle d'administration efficace en mode de simulation |
---|---|---|---|---|
Organisation A | enforced: false |
enforced: false |
enforced: true |
enforced: true |
Dossier B | enforced: false |
enforced: false |
Aucun | enforced: false |
Dossier C | Aucun | enforced: false |
Aucun | enforced: true |
Projet X | enforced: true |
enforced: true |
Aucun | enforced: true |
Projet Y | Aucun | enforced: false |
enforced: true |
enforced: true |
Analyser les effets d'une règle d'administration en mode dry run
Une règle d'administration en mode de simulation ne bloque aucune opération lorsque application. Pour voir l'effet qu'aura votre règle d'administration, vous pouvez vérifier les journaux d'audit des règles d'administration.
Journaux d'audit des règles d'administration pour les règles d'administration et l'organisation actives les règles en mode de simulation sont générées selon que l'opération est autorisée ou non ou refusé par les stratégies appliquées à une ressource donnée. Le tableau suivant décrit les situations dans lesquelles un journal d'audit de règle d'administration est généré:
Règles d'administration actives | Règle d'administration en mode de simulation | Journal d'audit généré |
---|---|---|
Autoriser | Autoriser | Non |
Autoriser | Refuser | Journal d'audit en mode de simulation uniquement |
Refuser | Autoriser | Journal d'audit en mode "Live" et "Dry run" |
Refuser | Refuser | Journal d'audit en mode "Live" et "Dry run" |
Les cas de non-respect des règles d'administration en mode de simulation apparaissent à côté des cas de non-respect dans en temps réel dans les journaux d'audit. Exemple :
{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 7,
"message": "PERMISSION_DENIED"
},
"authenticationInfo": {},
"requestMetadata": {
"callerIp": "1.2.3.4",
"requestAttributes": {},
"destinationAttributes": {}
},
"serviceName": "appengine.googleapis.com",
"methodName": "google.api.appengine.v1.appengine.apps.services.get",
"resourceName": "projects/sur-project-test-3",
"metadata": {
"constraint": "constraints/gcp.restrictServiceUsage",
"checkedValue": "appengine.googleapis.com",
"liveResult": "ALLOWED",
"@type": "type.googleapis.com/google.cloud.audit.OrgPolicyDryRunAuditMetadata",
"dryRunResult": "DENIED"
}
},
"insertId": "1f2bvoxcmg1",
"resource": {
"type": "audited_resource",
"labels": {
"project_id": "sur-project-test-3",
"service": "appengine.googleapis.com",
"method": "google.api.appengine.v1.appengine.apps.services.get"
}
},
"timestamp": "2022-06-16T19:42:58.244990928Z",
"severity": "WARNING",
"logName": "projects/sur-project-test-3/logs/cloudaudit.googleapis.com%2Fpolicy",
"receiveTimestamp": "2022-06-16T19:42:59.572025716Z"
}
Vous pouvez utiliser l'explorateur de journaux pour n'interroger que la règle d'administration en mode dry run de non-respect des règles.
Console
Vous pouvez utiliser l'explorateur de journaux de la console Google Cloud pour récupérer les entrées du journal d'audit de votre projet, dossier ou organisation Google Cloud :
Dans la console Google Cloud, accédez à la page Journalisation > Explorateur de journaux.
Sélectionnez un projet, une organisation ou un dossier Google Cloud existant.
Dans le volet Générateur de requêtes, procédez comme suit :
Dans Type de ressource, sélectionnez la ressource Google Cloud dont vous souhaitez afficher les journaux d'audit.
Dans Nom du journal, sélectionnez le type de journal d'audit policy.
Dans le volet Requête, saisissez la commande suivante:
protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED"
Si vous rencontrez des problèmes lorsque vous essayez d'afficher des journaux dans dans l'explorateur de journaux, consultez les informations de dépannage.
Pour en savoir plus sur l'utilisation de l'explorateur de journaux pour effectuer des requêtes, consultez la page Créer des requêtes dans l'explorateur de journaux.
gcloud
Google Cloud CLI fournit une interface de ligne de commande à l'API Logging. Fournissez un identifiant de ressource valide dans chacun des noms de journaux. Par exemple, si votre requête inclut un ID de projet, le L'identifiant de projet que vous fournissez doit faire référence à l'identifiant actuellement sélectionné nom du projet.
Lire les entrées de journal d'audit pour la règle d'administration en mode de simulation les violations, exécutez la commande suivante:
gcloud logging read protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED" \ --RESOURCE_TYPE=RESOURCE_ID \
Remplacez les éléments suivants :
RESOURCE_TYPE
avecorganization
,folder
ouproject
RESOURCE_ID
par l'ID de votre organisation et le dossier ID, ID ou numéro de projet, selon le type de ressource spécifié dansRESOURCE_TYPE
.
Ajoutez l'option --freshness
à votre commande pour lire les journaux
il y a plus de 1 jour.
Pour en savoir plus sur l'utilisation de gcloud CLI, consultez la page gcloud logging read
.
Si votre organisation comporte de nombreux projets, vous pouvez utiliser des récepteurs agrégés pour agréger et acheminer les entrées des journaux d'audit de tous les projets de votre organisation à une table BigQuery. Pour en savoir plus sur la création des récepteurs agrégés, consultez Rassemblez et acheminez les journaux au niveau de l'organisation vers des destinations compatibles.
Étape suivante
Pour en savoir plus sur la création et la gestion des contraintes de règles d'administration, consultez la section Utiliser des contraintes.