Ce document explique comment écrire des règles personnalisées à l'aide du langage de règles Rego. Vous pouvez utiliser ces règles dans Workload Manager pour évaluer vos charges de travail par rapport aux bonnes pratiques définies pour votre organisation.
Pour en savoir plus, consultez À propos des règles personnalisées dans Workload Manager.
Avant de commencer
- Familiarisez-vous avec le langage de règles Rego.
Écrire des règles personnalisées à l'aide de Rego
Google fournit un exemple de dépôt GitHub avec un ensemble de règles prédéfinies que vous pouvez utiliser pour évaluer vos charges de travail. Ces exemples couvrent plusieurs cas d'utilisation.
Sélectionnez des règles dans le dépôt ou créez un fichier de règles (.rego) qui décrit vos exigences d'évaluation.
Une règle personnalisée comporte les sections suivantes :
Métadonnées. Les champs suivants définissent les métadonnées de la règle :
DETAILS: brève description de la règle.SEVERITY: valeur définie par l'utilisateur qui définit la gravité de la violation de la règle. Par exemple,HIGH,CRITICAL,MEDIUMouLOW.ASSET_TYPE: l'un des actifs compatibles. Consultez Sources de données compatibles.TAGS: un ou plusieurs tags pour la règle. Ces tags permettent de filtrer les règles.
Déclaration de package. Par exemple,
templates.google.compute.instance.label.Instructions d'importation. Par exemple,
data.validator.google.lib as lib.Définitions de règles : ensemble d'instructions qui définissent la règle.
Exemples de règles
Les exemples de règles suivants sont disponibles dans le dépôt GitHub GoogleCloudPlatform/workload-manager. Vous pouvez importer ces règles telles quelles dans votre bucket Cloud Storage et les utiliser pour exécuter vos évaluations. Vous pouvez également modifier les règles conformément aux règles de votre organisation, puis importer les fichiers dans un bucket Cloud Storage.
- Exemple 1 : s'assure qu'il existe au moins un libellé pour vos VM.
- Exemple 2 : s'assure que votre charge de travail n'utilise pas le compte de service Compute Engine par défaut.
- Exemple 3 : s'assure que les VM de votre charge de travail n'utilisent pas d'adresse IP externe.
Pour obtenir la liste complète des exemples de règles que vous pouvez utiliser dans Workload Manager, consultez le dépôt GitHub GoogleCloudPlatform/workload-manager.
Exemple 1
S'assure qu'il existe au moins un tag pour les ressources Compute Engine.
Exemple 2
S'assure que votre charge de travail n'utilise pas le compte de service Compute Engine par défaut
Exemple 3
S'assure que les VM de votre charge de travail n'utilisent pas d'adresse IP externe.
Importer la règle dans un bucket Cloud Storage
Une fois le fichier .rego créé, importez-le dans un bucket Cloud Storage. Le niveau supérieur de votre bucket Cloud Storage doit inclure les dossiers /lib et /rules :
libparameters.regoutils.rego
/rulesrule_name1.regorule_name2.rego
Étape suivante
- En savoir plus sur les évaluations de charges de travail.
- Découvrez comment créer et exécuter une évaluation.