|
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. |
Distribuindo políticas
As políticas SUSE Security Admission Controller são binários WebAssembly (Wasm) avaliados pelo servidor de políticas Admission Controller.
O servidor de políticas Admission Controller carrega políticas dessas fontes:
-
Sistema de arquivos local
-
Servidor HTTP(s)
-
Registros compatíveis com OCI:
Admission Controller recomenda distribuir políticas Admission Controller por meio de um registro regular compatível com OCI. Registros de contêiner são um requisito obrigatório para qualquer cluster Kubernetes. Ter um único lugar para armazenar e proteger todos os artefatos necessários para um cluster é benéfico.
Enviando políticas para um registro compatível com OCI
A especificação do formato de imagem OCI image format permite armazenar qualquer blob binário dentro de um registro de contêiner compatível com OCI.
O registro compatível com OCI de destino deve suportar artefatos para enviar com sucesso uma Admission Controller política para ele.
Você pode usar o CLI kwctl para enviar uma Admission Controller política para um registro compatível com OCI.
Anotando a política
Você também anota uma política com kwctl. Anotar uma Admission Controllerpolítica é feito adicionando seções personalizadas Wasm ao binário da política. Isso significa que a política empacota seus próprios metadados.
O comando kwctl annotate requer duas entradas:
-
a Admission Controllerpolítica a ser anotada, um arquivo local no sistema de arquivos.
-
o arquivo de anotações, um arquivo contendo uma descrição YAML dos metadados da política. Este arquivo geralmente está localizado na pasta raiz do projeto da sua política.
Por exemplo, você pode salvar este arquivo como metadata.yml no diretório atual:
rules:
- apiGroups: ["*"]
apiVersions: ["*"]
resources: ["*"]
operations: ["*"]
mutating: false
annotations:
io.kubewarden.policy.title: palindromify
io.kubewarden.policy.version: 0.1.0
io.kubewarden.policy.description: Allows you to reject palindrome names in resources and namespace names, or to only accept palindrome names
io.kubewarden.policy.author: Name Surname <name.surname@example.com>
io.kubewarden.policy.url: https://github.com/<org>/palindromify
io.kubewarden.policy.source: https://github.com/<org>/palindromify
io.kubewarden.policy.license: Apache-2.0
io.kubewarden.policy.usage: |
This is markdown text and as such allows you to define a free form usage text.
This policy allows you to reject requests if:
- The name of the resource is a palindrome name.
- The namespace name where this resource is created has a palindrome name.
This policy accepts the following settings:
- `+invert_behavior+`: bool that inverts the policy behavior. If enabled, only palindrome names will be accepted.
Agora, vamos anotar a política:
$ kwctl annotate policy.wasm \
--metadata-path metadata.yml \
--output-path annotated-policy.wasm
O processo de anotação realiza certas otimizações na política, então muitas vezes a política anotada é menor que a original. Isso depende consideravelmente da cadeia de ferramentas usada para produzir o objeto Wasm original.
Use kwctl inspect para verificar sua política
|
Enviando a política
Você pode enviar uma política anotada assim:
$ kwctl push annotated-policy.wasm \
<oci-registry>/kubewarden-policies/palindromify-policy:v0.0.1
É desaconselhável enviar políticas não anotadas. O servidor de políticas usa os metadados fornecidos pelas anotações para executar corretamente uma política. Por padrão,
kwctl push se recusa a enviar tal política para um registro compatível com OCI. Se você precisar de uma política não anotada, use a flag --force de kwctl push.
Você pode referenciar uma política a partir do Admission Controllerservidor de políticas ou de kwctl como
registry://<oci-registry>/kubewarden-policies/palindromify-policy:v0.0.1.