website/content/pt-br/docs/tasks/configure-pod-container/enforce-standards-namespace...

3.9 KiB

title reviewers content_type min-kubernetes-server-version
Aplicando Padrões de Segurança de Pod com `Labels` em Namespace
tallclair
liggitt
task v1.22

Os namespaces podem ser rotulados para aplicar os Padrões de segurança de pod. As três políticas privilegiado, linha de base e restrito cobrem amplamente o espectro de segurança e são implementados pela segurança de Pod {{< glossary_tooltip text="controlador de admissão" term_id="admission-controller" >}}.

{{% heading "prerequisites" %}}

{{% version-check %}}

Exigindo o padrão de segurança baseline de pod com rótulos em namespace

Este manifesto define um Namespace my-baseline-namespace que:

  • Bloqueia quaisquer Pods que não satisfazem os requisitos da política baseline.
  • Gera um aviso para o usuário e adiciona uma anotação de auditoria, a qualquer pod criado que não satisfaça os requisitos da política restricted.
  • Fixa as versões das políticas baseline e restricted à v{{< skew currentVersion >}}.
apiVersion: v1
kind: Namespace
metadata:
  name: my-baseline-namespace
  labels:
    pod-security.kubernetes.io/enforce: baseline
    pod-security.kubernetes.io/enforce-version: v{{< skew currentVersion >}}

    # Estamos definindo-os para o nosso nível _desejado_  `enforce`.
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/audit-version: v{{< skew currentVersion >}}
    pod-security.kubernetes.io/warn: restricted
    pod-security.kubernetes.io/warn-version: v{{< skew currentVersion >}}

Adicionar Rótulos aos Namespaces Existentes com kubectl label

{{< note >}} Quando um rótulo de política enforce (ou version) é adicionada ou modificada, O plugin de admissão testará cada Pod no namespace contra a nova política. Violações são devolvidas ao usuário como avisos. {{< /note >}}

É útil aplicar a flag --dry-run ao avaliar inicialmente as alterações do perfil de segurança para namespaces. As verificações padrão de segurança do pod ainda serão executadas em modo dry run, dando-lhe informações sobre como a nova política trataria os pods existentes, sem realmente atualizar a política.

kubectl label --dry-run=server --overwrite ns --all \
    pod-security.kubernetes.io/enforce=baseline

Aplicando a todos os namespaces

Se você está apenas começando com os padrões de segurança de pod, um primeiro passo adequado seria configurar todos namespaces com anotações de auditoria para um nível mais rigoroso, como baseline:

kubectl label --overwrite ns --all \
  pod-security.kubernetes.io/audit=baseline \
  pod-security.kubernetes.io/warn=baseline

Observe que isso não está aplicando as definições de nível, para que os namespaces que não foram explicitamente avaliados possam ser distinguidos. Você pode listar os namespaces sem um nível aplicado, explicitamente definido, usando este comando:

kubectl get namespaces --selector='!pod-security.kubernetes.io/enforce'

Aplicando a um único namespace

Você pode atualizar um namespace específico também. Este comando adiciona a política enforce=restricted ao my-existing-namespace, fixando a política que restringe à versão v{{< skew currentVersion >}}.

kubectl label --overwrite ns my-existing-namespace \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/enforce-version=v{{< skew currentVersion >}}