Este documento descreve como escrever regras personalizadas usando a linguagem de política Rego. É possível usar essas regras no Gerenciador de cargas de trabalho para avaliar suas cargas de trabalho em relação às práticas recomendadas definidas para sua organização.
Para mais informações, consulte Sobre regras personalizadas no Gerenciador de cargas de trabalho.
Antes de começar
- Conheça a linguagem de política do Rego.
Escrever regras personalizadas usando Rego
O Google oferece um repositório de amostra do GitHub com um conjunto de regras predefinidas que
você pode usar para avaliar suas cargas de trabalho. Esses exemplos abrangem vários casos de uso.
Selecione regras no 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 regra: um conjunto de instruções que define a regra.
Exemplo de regras
As regras de exemplo a seguir estão disponíveis no repositório do GitHub GoogleCloudPlatform/workload-manager. É possível fazer upload dessas regras como estão para seu bucket do Cloud Storage e usá-lo para executar as avaliações. Ou modifique as regras de acordo com as políticas da sua organização e faça upload dos arquivos para um bucket do Cloud Storage.
- Exemplo 1: garante que haja pelo menos um rótulo para suas VMs.
- Exemplo 2: garante que sua carga de trabalho não use a conta de serviço padrão do Compute Engine.
- Exemplo 3: garante que as VMs na sua carga de trabalho não usem um endereço IP externo.
Para 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
Garantir que sua carga de trabalho não use a conta de serviço padrão do Compute Engine
Exemplo 3
Garante que as VMs na sua carga de trabalho não usem um endereço IP externo.
Faça upload da regra para um bucket do Cloud Storage
Depois de criar o arquivo .rego
, faça 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.