Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Admissão de Segurança de Pod (PSA) usa rótulos para impor políticas de Padrões de Segurança de Pod em pods executados em um namespace. No AKS, a Admissão de Segurança do Pod está ativada por padrão. Para obter mais informações sobre Admissão de Segurança de Pods e Normas de Segurança de Pods, consulte Aplicar Normas de Segurança de Pods com rótulos de namespaces e Normas de Segurança de Pods.
O Pod Security Admission é uma solução de política integrada para implementações de cluster único. Se você quiser usar uma política de nível empresarial, recomendamos que você use a política do Azure.
Antes de começar
- Uma subscrição do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita.
- A CLI do Azure está 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
kubectl labelcomando e defina opod-security.kubernetes.io/enforcerótulo com o valor da política que você deseja impor. O exemplo a seguir habilita arestrictedpolítica para 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
kubectl labelcomando e defina opod-security.kubernetes.io/warnrótulo com o valor da política que você deseja impor. O exemplo a seguir habilita abaselinepolítica para todos os namespaces em seu cluster. Esta política gera um aviso destinado ao utilizador se algum pod for implantado num namespace que não cumpre a política baseline.kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Aplique uma política de Admissão de Segurança de Pod com uma implantação
Crie dois namespaces usando o
kubectl create namespacecomando.kubectl create namespace test-restricted kubectl create namespace test-privilegedHabilite uma política PSA para cada namespace, uma com a
restrictedpolítica e outra com abaselinepolítica, usando okubectl labelcomando.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 a execução de pods e gerar um aviso voltado para o usuário caso qualquer pod que não atenda à política configurada tentar executar-se.Tente implantar pods no namespace
test-restrictedusando o comandokubectl apply. Esse comando resulta em um erro porque otest-restrictednamespace está configurado para bloquear pods que não atendem àrestrictedpolítica.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 de 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
test-restrictednamespace usando okubectl get podscomando.kubectl get pods --namespace test-restrictedO seguinte exemplo de saída indica que não há pods em execução no namespace
test-restricted.No resources found in test-restricted namespace.Tente implantar pods no
test-privilegednamespace usando okubectl applycomando. Desta 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 de exemplo a seguir mostra os pods desplegados com êxito:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front createdConfirme que tem pods em execução no namespace
test-privilegedusando o comandokubectl get pods.kubectl get pods --namespace test-privilegedO exemplo de saída 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
test-restrictednamespaces etest-privilegedusando okubectl deletecomando.kubectl delete namespace test-restricted test-privileged
Próximos passos
Neste artigo, você aprendeu como 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 Padrões de Segurança do Pod.