En este documento se describe cómo escribir reglas personalizadas con el lenguaje de políticas Rego. Puedes usar estas reglas en Gestor de cargas de trabajo para evaluar tus cargas de trabajo en comparación con las prácticas recomendadas definidas para tu organización.
Para obtener más información, consulta Acerca de las reglas personalizadas en Gestor de cargas de trabajo.
Antes de empezar
- Familiarícese con el lenguaje de las políticas de Rego.
Escribir reglas personalizadas con Rego
Google proporciona un repositorio de ejemplo de GitHub con un conjunto de reglas predefinidas que puedes usar para evaluar tus cargas de trabajo. Estas muestras abarcan varios casos prácticos.
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
: una breve descripción de la regla.SEVERITY
: valor definido por el usuario que define la gravedad de la infracción de la regla. Por ejemplo,HIGH
,CRITICAL
,MEDIUM
oLOW
.ASSET_TYPE
: uno de los recursos admitidos. Consulta las fuentes de datos admitidas.TAGS
: una o varias etiquetas de la regla. Estas etiquetas ayudan a filtrar las reglas.
Declaración de paquete. Por ejemplo,
templates.google.compute.instance.label
.Importar extractos. Por ejemplo,
data.validator.google.lib as lib
.Definiciones de reglas: un conjunto de instrucciones que definen la regla.
Ejemplos de reglas
Las siguientes reglas de ejemplo están disponibles en el repositorio de GitHub GoogleCloudPlatform/workload-manager. Puedes subir estas reglas tal cual a tu segmento de Cloud Storage y usarlas para llevar a cabo tus evaluaciones. También puedes modificar las reglas según las políticas de tu organización y, a continuación, subir los archivos a un segmento de Cloud Storage.
- Ejemplo 1: asegura que haya al menos una etiqueta para tus VMs.
- Ejemplo 2: se asegura de que tu carga de trabajo no use la cuenta de servicio predeterminada de Compute Engine.
- Ejemplo 3: se asegura de que las VMs de tu carga de trabajo no usen una dirección IP externa.
Para ver una lista completa de reglas de ejemplo que puedes usar en Workload Manager, consulta el repositorio de GitHub GoogleCloudPlatform/workload-manager.
Ejemplo 1
Asegura que haya al menos una etiqueta para los recursos de Compute Engine.
Ejemplo 2
Asegura que tu carga de trabajo no use la cuenta de servicio predeterminada de Compute Engine
Ejemplo 3
Asegura que las VMs de tu carga de trabajo no usen una dirección IP externa.
Subir la regla a un segmento de Cloud Storage
Una vez que hayas creado el archivo .rego
, súbelo a un segmento de Cloud Storage. El nivel superior de tu segmento de Cloud Storage debe incluir las carpetas /lib
y /rules
:
lib
parameters.rego
utils.rego
/rules
rule_name1.rego
rule_name2.rego
Siguientes pasos
- Más información sobre las evaluaciones de la carga de trabajo
- Consulta cómo crear y realizar una evaluación.