Questo documento descrive come scrivere regole personalizzate utilizzando il linguaggio delle policy Rego. Puoi utilizzare queste regole in Workload Manager per valutare i tuoi carichi di lavoro in base alle best practice definite per la tua organizzazione.
Per ulteriori informazioni, consulta Informazioni sulle regole personalizzate in Workload Manager.
Prima di iniziare
- Acquisisci familiarità con il linguaggio delle policy Rego.
Scrivere regole personalizzate utilizzando Rego
Google fornisce un repository GitHub di esempio con un insieme di regole predefinite che puoi utilizzare per valutare i tuoi carichi di lavoro. Questi esempi coprono più casi d'uso.
Seleziona le regole dal repository o crea un file di regole (.rego) che descriva i requisiti di valutazione.
Una regola personalizzata ha le seguenti sezioni:
Metadati. I seguenti campi definiscono i metadati della regola:
DETAILS: una breve descrizione della regola.SEVERITY: un valore definito dall'utente che definisce la gravità della violazione della regola. Ad esempio,HIGH,CRITICAL,MEDIUMoLOW.ASSET_TYPE: una delle risorse supportate. Consulta Origini dati supportate.TAGS: uno o più tag per la regola. Questi tag aiutano a filtrare le regole.
Dichiarazione del pacchetto. Ad esempio,
templates.google.compute.instance.label.Istruzioni di importazione. Ad esempio,
data.validator.google.lib as lib.Definizioni delle regole. Un insieme di istruzioni che definisce la regola.
Regole di esempio
Le seguenti regole di esempio sono disponibili nel repository GitHub GoogleCloudPlatform/workload-manager. Puoi caricare queste regole così come sono nel bucket Cloud Storage e utilizzarle per eseguire le valutazioni. In alternativa, modifica le regole in base alle norme della tua organizzazione e poi carica i file in un bucket Cloud Storage.
- Esempio 1: garantisce che sia presente almeno un'etichetta per le VM.
- Esempio 2: garantisce che il carico di lavoro non utilizzi il account di servizio predefinito di Compute Engine.
- Esempio 3: garantisce che le VM nel carico di lavoro non utilizzino un indirizzo IP esterno.
Per un elenco completo delle regole di esempio che puoi utilizzare in Workload Manager, consulta il repository GitHub GoogleCloudPlatform/workload-manager.
Esempio 1
Garantisce che sia presente almeno un tag per le risorse Compute Engine.
Esempio 2
Garantisce che il carico di lavoro non utilizzi il account di servizio predefinito di Compute Engine
Esempio 3
Garantisce che le VM nel carico di lavoro non utilizzino un indirizzo IP esterno.
Caricare la regola in un bucket Cloud Storage
Dopo aver creato il file .rego, caricalo in un bucket Cloud Storage. Il livello superiore del bucket Cloud Storage deve includere le cartelle /lib e /rules:
libparameters.regoutils.rego
/rulesrule_name1.regorule_name2.rego
Passaggi successivi
- Scopri di più sulle valutazioni dei carichi di lavoro.
- Scopri come creare ed eseguire una valutazione.