Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Pod Security Admission (PSA) använder etiketter för att framtvinga Pod Security Standards-principer på poddar som körs i ett namnområde. I AKS är Pod Security Admission aktiverad som standard. Mer information om poddsäkerhetsantagning och poddsäkerhetsstandarder finns i Framtvinga poddsäkerhetsstandarder med namnrymdsetiketter och poddsäkerhetsstandarder.
Pod Security Admission är en inbyggd principlösning för implementeringar av enskilda kluster. Om du vill använda en princip i företagsklass rekommenderar vi att du använder Azure-principen.
Innan du börjar
- En Azure-prenumeration Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Azure CLI installerat.
- Ett befintligt AKS-kluster som kör Kubernetes version 1.23 eller senare.
Aktivera poddsäkerhetskontroll för ett namnområde i ditt kluster
Aktivera PSA för ett enda namnområde
Aktivera PSA för ett enda namnområde i klustret med kommandot
kubectl label
och angepod-security.kubernetes.io/enforce
etiketten med det principvärde som du vill framtvinga. I följande exempel aktiverasrestricted
principen för namnområdet NAMESPACE .kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=restricted
Aktivera PSA för alla namnområden
Aktivera PSA för alla namnområden i klustret med kommandot
kubectl label
och angepod-security.kubernetes.io/warn
etiketten med det principvärde som du vill tillämpa. I följande exempel aktiverasbaseline
principen för alla namnområden i klustret. Den här principen genererar en användarriktad varning om några poddar distribueras till ett namnområde som inte uppfyller baslinjeprincipen.kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Framtvinga en antagningsprincip för poddsäkerhet med en distribution
Skapa två namnområden med kommandot
kubectl create namespace
.kubectl create namespace test-restricted kubectl create namespace test-privileged
Aktivera en PSA-princip för varje namnområde, en med
restricted
principen och en medbaseline
principen med kommandotkubectl 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=privileged
Detta konfigurerar namnrymderna
test-restricted
ochtest-privileged
för att blockera körning av poddar och generera en användarvarning om några poddar som inte uppfyller den konfigurerade policyn försöker köras.Försök att distribuera poddar till
test-restricted
namnområdet med hjälp avkubectl apply
kommandot . Det här kommandot resulterar i ett fel eftersomtest-restricted
namnområdet är konfigurerat för att blockera poddar som inte uppfyllerrestricted
principen.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yaml
Följande exempelutdata visar en varning om att poddarna bryter mot den konfigurerade principen:
... 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 created
Bekräfta att det inte finns några poddar som körs i
test-restricted
namnområdet med kommandotkubectl get pods
.kubectl get pods --namespace test-restricted
I följande exempelutdata visas inga poddar som körs i
test-restricted
namnområdet:No resources found in test-restricted namespace.
Försök att distribuera poddar till
test-privileged
namnområdet med hjälp avkubectl apply
kommandot . Den här gången bör poddarna distribueras korrekt eftersomtest-privileged
namnområdet har konfigurerats för att tillåta poddar som bryter motprivileged
principen.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yaml
Följande exempelutdata visar poddarna som har distribuerats:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front created
Bekräfta att det finns poddar som körs i namnområdet
test-privileged
med kommandotkubectl get pods
.kubectl get pods --namespace test-privileged
Följande exempelutdata visar två poddar som körs i
test-privileged
namnområdet:NAME READY STATUS RESTARTS AGE azure-vote-back-6fcdc5cbd5-svbdf 1/1 Running 0 2m29s azure-vote-front-5f4b8d498-tqzwv 1/1 Running 0 2m28s
Ta bort namnrymderna
test-restricted
ochtest-privileged
med kommandotkubectl delete
.kubectl delete namespace test-restricted test-privileged
Nästa steg
I den här artikeln har du lärt dig hur du aktiverar Pod Security Admission för en AKS-kluster. Mer information om poddsäkerhetsantagning finns i Framtvinga poddsäkerhetsstandarder med namnområdesetiketter. Mer information om poddsäkerhetsstandarder som används av poddsäkerhetsantagning finns i Poddsäkerhetsstandarder.
Azure Kubernetes Service