|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
|
Esta é uma documentação não divulgada para Admission Controller 1.34-dev. |
Metadados da política
O arquivo de metadados SUSE Security Admission Controller, metadata.yaml, é um arquivo de configuração que contém informações e configurações importantes relacionadas às políticas usadas dentro de Admission Controller.
Esta documentação é uma visão geral do propósito e uso do arquivo de metadados.
O arquivo da política metadata.yaml possui valores padrão para a política, bem como metadados como autor e descrição, definidos pelo autor da política.
O comando kwctl annotate usa o arquivo para anotar o arquivo .wasm que contém a política.
Portanto, todas as informações relevantes necessárias para executar a política estão disponíveis.
Mais informações sobre como anotar a política estão no guia Distribuindo Políticas.
Quando os usuários da política desejam usar uma política, eles geram um manifesto YAML usando kwctl scaffold.
Este comando lê os metadados da política incorporados no módulo Wasm enviado, realiza verificações e retorna um manifesto YAML que o autor pode usar como está ou modificar.
Como autor da política, você pode adaptar o arquivo metadata.yaml fornecido durante a estruturação da sua política.
Veja o seguinte exemplo de um metadata.yaml:
rules:
- apiGroups: [""]
apiVersions: ["v1"]
resources: ["pods"]
operations: ["CREATE"]
mutating: false
contextAwareResources: []
executionMode: kubewarden-wapc
policyType: kubernetes
backgroundAudit: true
annotations:
# kubewarden specific:
io.kubewarden.policy.title: My policy
io.kubewarden.policy.version: 0.1.0 # should match the OCI tag
io.kubewarden.policy.description: Short description
io.kubewarden.policy.author: myself
io.kubewarden.policy.url: https://github.com/yourorg/my-policy
io.kubewarden.policy.source: https://github.com/yourorg/my-policy
io.kubewarden.policy.license: Apache-2.0
# The next two annotations are used in the policy report generated by the
# Audit scanner. Severity indicates policy check result criticality and
# Category indicates policy category. See more here at docs.kubewarden.io
io.kubewarden.policy.severity: medium
io.kubewarden.policy.category: Resource validation
# artifacthub specific: (optional, to release in Artifact Hub)
io.kubewarden.policy.ociUrl: ghcr.io/myorg/my-policy
io.artifacthub.displayName: Policy Name
io.artifacthub.resources: Pod
io.artifacthub.keywords: pod, cool policy, kubewarden
Habilitando verificações de auditoria em segundo plano
O arquivo de metadados inclui uma flag, backgroundAudit, que habilita as verificações de auditoria em segundo plano para uma política específica.
Por padrão, essa flag é definida como true.
Existem políticas que, devido à forma como funcionam ou ao tipo de eventos com os quais estão preocupadas, devem ter este campo definido como false.
Você pode encontrar mais informações na documentação do scanner de auditoria, na seção de limitações.
Definindo recursos do Kubernetes que as políticas podem acessar
Dentro do arquivo de metadados, usando o campo contextAwareResources, os usuários podem definir quais recursos do Kubernetes a política pode acessar.
Por exemplo, se a política precisar de acesso ao recurso Namespace.
O autor da política pode definir o contextAwareResources como:
[...]
contextAwareResources:
- apiVersion: v1 kind: Namespace
[...]
Especificando políticas como mutantes ou não mutantes
O arquivo de metadados possui uma flag, mutating, que permite aos usuários configurar uma política como mutante ou não mutante.
Uma política mutante modifica as requisições recebidas ou os recursos que estão sendo gerenciados.
Uma política não mutante observa e impõe restrições sem fazer alterações.
Essa distinção é crucial para determinar como as políticas interagem com os recursos do Kubernetes e seu impacto no cluster.
Especifique o tipo de política como Kubernetes ou Raw
O arquivo de metadados possui uma flag, policyType, que permite aos usuários marcar uma política como kubernetes ou raw.
Uma política Kubernetes é uma política que valida recursos do Kubernetes.
Uma política Raw é uma política que valida documentos JSON arbitrários.
Por padrão, se não especificado pelo usuário, este campo é definido como kubernetes ao anotar uma política.
Consulte a seção Políticas Raw para mais informações.
Definindo alvos de tipo de recurso
O arquivo de metadados fornece aos usuários a capacidade de definir as regras dentro do campo rules, que determina os tipos de recursos aos quais a política se aplica.
Esse recurso capacita os usuários a exercer controle preciso sobre a aplicação da política, garantindo que as políticas sejam aplicadas apenas aos tipos de recursos pretendidos.
Com esse controle detalhado, os usuários podem garantir que as políticas sejam direcionadas com precisão, alinhando-se às suas necessidades específicas e evitando qualquer aplicação não intencional de políticas a tipos de recursos não relacionados.