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 le gestionnaire de charges de travail.
Avant de commencer
- Familiarisez-vous avec le langage des 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 se compose des 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 compatibles. Consultez la page 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 de règles : ensemble d'instructions qui définit 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: garantit 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 par défaut de Compute Engine.
- 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
Vérifie qu'il existe au moins une balise pour les ressources Compute Engine.
Exemple 2
Assurez-vous que votre charge de travail n'utilise pas le compte de service Compute Engine par défaut.
Exemple 3
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
Après avoir créé le fichier .rego
, 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
Étape suivante
- En savoir plus sur les évaluations des charges de travail
- Découvrez comment créer et exécuter une évaluation.