En este documento, se describe cómo escribir reglas personalizadas con el lenguaje de políticas de Rego. Puedes usar estas reglas en Workload Manager para evaluar tus cargas de trabajo en función de las prácticas recomendadas definidas para tu organización.
Para obtener más información, consulta Acerca de las reglas personalizadas en Workload Manager.
Antes de comenzar
- Familiarízate con el lenguaje de la política de Rego.
Cómo escribir reglas personalizadas con Rego
Google proporciona un repositorio de GitHub de muestra con un conjunto de reglas predefinidas que puedes usar para evaluar tus cargas de trabajo. Estos ejemplos abarcan varios casos de uso.
Selecciona reglas del repositorio o crea un archivo de reglas (.rego
) que describa
tus requisitos de evaluación.
Una regla personalizada tiene las siguientes secciones:
Metadatos. Los siguientes campos definen los metadatos de la regla:
DETAILS
: Es una descripción breve de la regla.SEVERITY
: Es un valor definido por el usuario que define la gravedad del incumplimiento de la regla. Por ejemplo:HIGH
,CRITICAL
,MEDIUM
oLOW
.ASSET_TYPE
: Es uno de los recursos admitidos. Consulta Fuentes de datos compatibles.TAGS
: Una o más etiquetas para la regla. Estas etiquetas ayudan a filtrar las reglas.
Declaración del paquete: Por ejemplo,
templates.google.compute.instance.label
Declaraciones de importación. Por ejemplo,
data.validator.google.lib as lib
Definiciones de reglas: Es un conjunto de instrucciones que define la regla.
Ejemplos de reglas
Las siguientes reglas de muestra están disponibles en el repositorio de GitHub GoogleCloudPlatform/workload-manager. Puedes subir estas reglas tal como están a tu bucket de Cloud Storage y usarlas para ejecutar tus evaluaciones. Como alternativa, modifica las reglas según las políticas de tu organización y, luego, sube los archivos a un bucket de Cloud Storage.
- Ejemplo 1: Garantiza que haya al menos una etiqueta para tus VMs.
- Ejemplo 2: Garantiza que tu carga de trabajo no use la cuenta de servicio predeterminada de Compute Engine.
- Ejemplo 3: Garantiza que las VMs de tu carga de trabajo no usen una dirección IP externa.
Para obtener una lista completa de las reglas de muestra que puedes usar en Workload Manager, consulta el repositorio de GitHub GoogleCloudPlatform/workload-manager.
Ejemplo 1
Garantiza que haya al menos una etiqueta para los recursos de Compute Engine.
Ejemplo 2
Garantiza que tu carga de trabajo no use la cuenta de servicio predeterminada de Compute Engine.
Ejemplo 3
Garantiza que las VMs de tu carga de trabajo no usen una dirección IP externa.
Sube la regla a un bucket de Cloud Storage
Después de crear el archivo .rego
, súbelo a un bucket de Cloud Storage. El nivel superior de tu bucket de Cloud Storage debe incluir las carpetas /lib
y /rules
:
lib
parameters.rego
utils.rego
/rules
rule_name1.rego
rule_name2.rego
¿Qué sigue?
- Obtén más información sobre las evaluaciones de cargas de trabajo.
- Aprende a crear y ejecutar una evaluación.