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é du non-respect de la règle. Par exemple,HIGH
,CRITICAL
,MEDIUM
, ouLOW
.ASSET_TYPE
: l'un des composants acceptés. Consultez Sources de données compatibles.TAGS
: un ou plusieurs tags pour la règle. Ces balises permettent de filtrer les règles.
Déclaration de package Exemple :
templates.google.compute.instance.label
Instructions d'importation. Exemple :
data.validator.google.lib as lib
Définitions des 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 en fonction des règles de votre organisation, puis importer les fichiers dans un bucket Cloud Storage.
- Exemple 1 : s'assurer qu'il existe au moins un libellé pour vos VM.
- Exemple 2 : garantit que votre charge de travail n'utilise pas le compte de service Compute Engine par défaut.
- Exemple 3 : garantit 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
Garantit qu'il existe au moins un tag pour les ressources Compute Engine.
Exemple 2
Garantit que votre charge de travail n'utilise pas le compte de service Compute Engine par défaut
Exemple 3
Garantit 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
:
lib
parameters.rego
utils.rego
/rules
rule_name1.rego
rule_name2.rego
Étapes suivantes
- En savoir plus sur les évaluations des charges de travail
- Découvrez comment créer et exécuter une évaluation.