Gerenciando Políticas
Aprenda como descobrir, gerenciar e atualizar políticas no InfraGuard.
Listando Políticas
Listar Todas as Políticas
Ver todas as regras e pacotes disponíveis:
infraguard policy list
Isso exibe:
- Todas as regras integradas
- Todos os pacotes de conformidade
- Políticas personalizadas (se houver)
Filtrar por Provedor
Atualmente, o InfraGuard suporta políticas Aliyun. Versões futuras suportarão provedores adicionais.
Detalhes das Políticas
Obter Informações da Regra
Ver informações detalhadas sobre uma regra específica:
infraguard policy get rule:aliyun:ecs-instance-no-public-ip
A saída inclui:
- ID e nome da regra
- Nível de severidade
- Descrição
- Razão da falha
- Recomendação
- Tipos de recursos afetados
Obter Informações do Pacote
Ver detalhes do pacote de conformidade:
infraguard policy get pack:aliyun:mlps-level-3-pre-check-compliance-pack
A saída inclui:
- ID e nome do pacote
- Descrição
- Lista de regras incluídas
Atualizando Políticas
O InfraGuard inclui políticas incorporadas, mas você também pode baixar a biblioteca de políticas mais recente:
infraguard policy update
Isso baixa políticas para ~/.infraguard/policies/, que tem prioridade sobre as políticas incorporadas.
Limpando Políticas
Para remover políticas baixadas do seu diretório de usuário:
infraguard policy clean
Este comando:
- Remove todas as políticas de
~/.infraguard/policies/ - Solicita confirmação por padrão
- Não afeta políticas incorporadas (elas permanecem disponíveis)
- Não afeta políticas do workspace em
.infraguard/policies/
Limpeza Forçada (Sem Confirmação)
Para scripts ou ambientes não interativos:
infraguard policy clean --force
# ou
infraguard policy clean -f
Prioridade de Carregamento de Políticas
O InfraGuard carrega políticas de três fontes com a seguinte prioridade (da mais alta para a mais baixa):
- Políticas locais do workspace:
.infraguard/policies/(relativo ao diretório de trabalho atual) - Políticas locais do usuário:
~/.infraguard/policies/ - Políticas incorporadas: Incorporadas no binário (fallback)
Políticas com o mesmo ID de fontes de maior prioridade substituem as de menor prioridade. Isso permite:
- Políticas específicas do projeto: Definir regras personalizadas em
.infraguard/policies/que são controladas por versão com seu projeto - Personalizações do usuário: Substituir políticas incorporadas globalmente via
~/.infraguard/policies/ - Fallback perfeito: Políticas incorporadas funcionam sem configuração
Validando Políticas Personalizadas
Antes de usar políticas personalizadas, valide-as:
infraguard policy validate ./my-custom-rule.rego
Isso verifica:
- Sintaxe Rego
- Metadados necessários (
rule_metaoupack_meta) - Estrutura adequada da regra deny
Opções de Validação
# Validar um único arquivo
infraguard policy validate rule.rego
# Validar um diretório
infraguard policy validate ./policies/
# Especificar idioma de saída
infraguard policy validate rule.rego --lang pt
Formatando Políticas
Formate seus arquivos de políticas usando o formatador OPA:
# Mostrar saída formatada
infraguard policy format rule.rego
# Escrever alterações de volta ao arquivo
infraguard policy format rule.rego --write
# Mostrar diff das alterações
infraguard policy format rule.rego --diff
Organização de Políticas
Políticas Incorporadas
Localizadas no binário sob:
policies/aliyun/rules/- Regras individuaispolicies/aliyun/packs/- Pacotes de conformidadepolicies/aliyun/lib/- Bibliotecas auxiliares
Políticas Personalizadas
Políticas Locais do Workspace (Específicas do Projeto)
Armazene políticas específicas do projeto em seu diretório do projeto:
.infraguard/policies/<provider>/rules/- Regras específicas do projeto.infraguard/policies/<provider>/packs/- Pacotes específicos do projeto.infraguard/policies/<provider>/lib/- Bibliotecas auxiliares específicas do projeto
Essas políticas são carregadas automaticamente ao executar comandos InfraGuard de dentro do diretório do projeto e podem ser controladas por versão junto com seus modelos IaC.
Políticas Locais do Usuário (Globais)
Armazene políticas personalizadas globais em seu diretório home:
~/.infraguard/policies/<provider>/rules/- Regras personalizadas globais~/.infraguard/policies/<provider>/packs/- Pacotes personalizados globais~/.infraguard/policies/<provider>/lib/- Bibliotecas auxiliares personalizadas globais
Essas políticas estão disponíveis para todos os projetos e podem substituir políticas incorporadas.