Este documento descreve como escrever regras personalizadas usando a linguagem de política Rego. É possível usar essas regras no Workload Manager para avaliar as cargas de trabalho de acordo com as práticas recomendadas definidas para sua organização.
Para mais informações, consulte Sobre as regras personalizadas no Gerenciador de cargas de trabalho.
Antes de começar
- Conheça a linguagem da política do Rego.
Programar regras personalizadas usando o Rego
O Google oferece um repositório de exemplo do GitHub com um conjunto de regras predefinidas que
podem ser usadas para avaliar seus workloads. Esses exemplos abrangem vários casos de uso.
Selecione regras do repositório ou crie um arquivo de regra (.rego
) que descreva
seus requisitos de avaliação.
Uma regra personalizada tem as seguintes seções:
Metadados. Os campos a seguir definem os metadados da regra:
DETAILS
: uma breve descrição da regra.SEVERITY
: um valor definido pelo usuário que define a gravidade da violação da regra. Por exemplo,HIGH
,CRITICAL
,MEDIUM
ouLOW
.ASSET_TYPE
: um dos recursos compatíveis. Consulte Fontes de dados compatíveis.TAGS
: uma ou mais tags para a regra. Essas tags ajudam a filtrar as regras.
Declaração de pacote. Por exemplo,
templates.google.compute.instance.label
.Declarações de importação. Por exemplo,
data.validator.google.lib as lib
.Definições de regras: um conjunto de instruções que define a regra.
Exemplos de regras
As regras de exemplo a seguir estão disponíveis no repositório do GitHub GoogleCloudPlatform/workload-manager. Você pode fazer upload dessas regras no seu bucket do Cloud Storage e usá-las para executar as avaliações. Como alternativa, modifique as regras de acordo com as políticas da sua organização e faça upload dos arquivos em um bucket do Cloud Storage.
- Exemplo 1: garante que haja pelo menos um rótulo para suas VMs.
- Exemplo 2: garante que a carga de trabalho não use a conta de serviço padrão do Compute Engine.
- Exemplo 3: garante que as VMs na carga de trabalho não usem um endereço IP externo.
Para conferir uma lista completa de regras de amostra que podem ser usadas no Workload Manager, consulte o repositório GoogleCloudPlatform/workload-manager do GitHub.
Exemplo 1
Garante que haja pelo menos uma tag para os recursos do Compute Engine.
Exemplo 2
Garante que a carga de trabalho não use a conta de serviço padrão do Compute Engine
Exemplo 3
Garante que as VMs na carga de trabalho não usem um endereço IP externo.
Fazer upload da regra para um bucket do Cloud Storage
Depois de criar o arquivo .rego
, faça o upload dele para um bucket do Cloud Storage. O
nível superior do bucket do Cloud Storage precisa incluir as pastas /lib
e /rules
:
lib
parameters.rego
utils.rego
/rules
rule_name1.rego
rule_name2.rego
A seguir
- Saiba mais sobre as avaliações de carga de trabalho.
- Saiba como criar e executar uma avaliação.