Este documento descreve como escrever regras personalizadas usando a linguagem de políticas Rego. Pode usar estas regras no Workload Manager para avaliar as suas cargas de trabalho em função das práticas recomendadas definidas para a sua organização.
Para mais informações, consulte o artigo Acerca das regras personalizadas no Workload Manager.
Antes de começar
- Familiarize-se com a linguagem da política do Rego.
Escreva regras personalizadas com o Rego
A Google fornece um repositório do GitHub de exemplo com um conjunto de regras predefinidas que pode usar para avaliar as suas cargas de trabalho. Estas amostras abrangem vários exemplos de utilização.
Selecione regras do repositório ou crie um ficheiro (.rego
) que descreva os seus requisitos de avaliação.
Uma regra personalizada tem as seguintes secções:
Metadados. Os campos seguintes definem os metadados da regra:
DETAILS
: uma breve descrição da regra.SEVERITY
: um valor definido pelo utilizador que define a gravidade da violação da regra. Por exemplo,HIGH
,CRITICAL
,MEDIUM
ouLOW
.ASSET_TYPE
: um dos recursos suportados. Consulte a secção Origens de dados compatíveis.TAGS
: uma ou mais etiquetas para a regra. Estas etiquetas ajudam a filtrar as regras.
Declaração de pacotes. Por exemplo,
templates.google.compute.instance.label
.Importe extratos. 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 seguintes regras de exemplo estão disponíveis no repositório do GitHub GoogleCloudPlatform/workload-manager. Pode carregar estas regras tal como estão para o seu contentor do Cloud Storage e usá-lo para executar as suas avaliações. Em alternativa, modifique as regras de acordo com as políticas da sua organização e, em seguida, carregue os ficheiros para um contentor do Cloud Storage.
- Exemplo 1: garante que existe, pelo menos, uma etiqueta para as suas VMs.
- Exemplo 2: garante que a sua carga de trabalho não usa a conta de serviço predefinida do Compute Engine.
- Exemplo 3: garante que as VMs na sua carga de trabalho não usam um endereço IP externo.
Para ver uma lista completa de regras de exemplo que pode usar no Workload Manager, consulte o repositório do GitHub GoogleCloudPlatform/workload-manager.
Exemplo 1
Garante que existe, pelo menos, uma etiqueta para os recursos do Compute Engine.
Exemplo 2
Garante que a sua carga de trabalho não usa a conta de serviço predefinida do Compute Engine
Exemplo 3
Garante que as VMs na sua carga de trabalho não usam um endereço IP externo.
Carregue a regra para um contentor do Cloud Storage
Depois de criar o ficheiro .rego
, carregue-o para um contentor do Cloud Storage. O nível superior do seu contentor do Cloud Storage tem de incluir as pastas /lib
e /rules
:
lib
parameters.rego
utils.rego
/rules
rule_name1.rego
rule_name2.rego
O que se segue?
- Saiba mais sobre as avaliações da carga de trabalho.
- Saiba como criar e executar uma avaliação.