Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A (PSA) Admissão de Segurança do Pod usa rótulos para impor políticas de Padrões de Segurança do Pod em pods em execução em um namespace. No AKS, o Admissão de Segurança de Pod é habilitado por padrão. Para obter mais informações sobre os Padrões de Segurança do Pod e Admissão de Segurança do Pod, consulte Impor Padrões de Segurança do Pod com rótulos de namespace e Padrões de Segurança do Pod.
A Admissão de Segurança do Pod é uma solução de política interna para implementações de cluster único. Se você quiser usar uma política de nível empresarial, recomendamos usar o Azure Policy.
Antes de começar
- Uma assinatura do Azure. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.
- A CLI do Azure instalada.
- Um cluster AKS existente executando o Kubernetes versão 1.23 ou superior.
Habilitar a Admissão de Segurança do Pod para um namespace em seu cluster
Habilitar o PSA para um único namespace
Habilite o PSA para um único namespace em seu cluster usando o comando
kubectl labele defina o rótulopod-security.kubernetes.io/enforcecom o valor da política que você deseja impor. O exemplo a seguir habilita a políticarestrictedpara o namespace NAMESPACE.kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=restricted
Habilitar o PSA para todos os namespaces
Habilite o PSA para todos os namespaces em seu cluster usando o comando
kubectl labele defina o rótulopod-security.kubernetes.io/warncom o valor da política que você deseja impor. O exemplo a seguir habilita a política debaselinepara todos os namespaces no cluster. Essa política gera um aviso voltado para o usuário se algum pod for implantado em um namespace que não atenda à política de linha de base.kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Impor uma política de Admissão de Segurança do Pod com uma implantação
Crie dois namespaces usando o comando
kubectl create namespace.kubectl create namespace test-restricted kubectl create namespace test-privilegedHabilite uma política de PSA para cada namespace, uma com a política
restrictede outra com a políticabaseline, usando o comandokubectl label.kubectl label --overwrite ns test-restricted pod-security.kubernetes.io/enforce=restricted pod-security.kubernetes.io/warn=restricted kubectl label --overwrite ns test-privileged pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/warn=privilegedIsso configura os namespaces
test-restrictedetest-privilegedpara bloquear os pods em execução e gerar um aviso voltado para o usuário se algum pod que não atender à política configurada tentar executar.Tente implantar pods no namespace
test-restrictedusando o comandokubectl apply. Esse comando resulta em um erro porque o namespacetest-restrictedestá configurado para bloquear pods que não atendem à políticarestricted.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlA saída do exemplo a seguir mostra um aviso informando que os pods violam a política configurada:
... Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "azure-vote-back" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "azure-vote-back" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "azure-vote-back" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "azure-vote-back" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost") deployment.apps/azure-vote-back created service/azure-vote-back created Warning: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "azure-vote-front" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "azure-vote-front" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "azure-vote-front" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "azure-vote-front" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost") deployment.apps/azure-vote-front created service/azure-vote-front createdConfirme se não há pods em execução no namespace
test-restrictedusando o comandokubectl get pods.kubectl get pods --namespace test-restrictedA saída de exemplo a seguir não mostra nenhum pod em execução no namespace
test-restricted:No resources found in test-restricted namespace.Tente implantar pods no namespace
test-privilegedusando o comandokubectl apply. Dessa vez, os pods devem ser implantados com êxito porque o namespacetest-privilegedestá configurado para permitir pods que violam a políticaprivileged.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlA saída do exemplo a seguir mostra os pods implantados com sucesso:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front createdConfirme se você tem pods em execução no namespace
test-privilegedusando o comandokubectl get pods.kubectl get pods --namespace test-privilegedA saída de exemplo a seguir mostra dois pods em execução no namespace
test-privileged:NAME READY STATUS RESTARTS AGE azure-vote-back-6fcdc5cbd5-svbdf 1/1 Running 0 2m29s azure-vote-front-5f4b8d498-tqzwv 1/1 Running 0 2m28sRemova os namespaces
test-restrictedetest-privilegedusando o comandokubectl delete.kubectl delete namespace test-restricted test-privileged
Próximas etapas
Neste artigo, você aprendeu a habilitar a Admissão de Segurança do Pod em um cluster AKS. Para obter mais informações sobre a Admissão de Segurança do Pod, consulte Impor padrões de segurança do pod com rótulos de namespace. Para obter mais informações sobre os Padrões de Segurança do Pod usados pela Admissão de Segurança do Pod, consulte Os Padrões de Segurança do Pod.