Toegang tot podbeveiliging gebruiken in Azure Kubernetes Service (AKS)
Pod Security Admission (PSA) maakt gebruik van labels voor het afdwingen van Pod Security Standards-beleid op pods die worden uitgevoerd in een naamruimte. In AKS is Toegang tot podbeveiliging standaard ingeschakeld. Zie Pod Security Standards afdwingen met naamruimtelabels en podbeveiligingsstandaarden voor meer informatie over podbeveiligingsstandaarden en podbeveiligingsstandaarden.
Pod Security Admission is een ingebouwde beleidsoplossing voor implementaties van één cluster. Als u een beleid op ondernemingsniveau wilt gebruiken, raden we u aan Azure-beleid te gebruiken.
Voordat u begint
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
- Azure CLI geïnstalleerd.
- Een bestaand AKS-cluster met Kubernetes versie 1.23 of hoger.
Toegang tot podbeveiliging inschakelen voor een naamruimte in uw cluster
PSA inschakelen voor één naamruimte
Schakel PSA in voor één naamruimte in uw cluster met behulp van de
kubectl label
opdracht en stel hetpod-security.kubernetes.io/enforce
label in met de beleidswaarde die u wilt afdwingen. In het volgende voorbeeld wordt hetrestricted
beleid voor de naamruimte NAAMRUIMTE ingeschakeld.kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=restricted
PSA inschakelen voor alle naamruimten
Schakel PSA in voor alle naamruimten in uw cluster met behulp van de
kubectl label
opdracht en stel hetpod-security.kubernetes.io/warn
label in met de beleidswaarde die u wilt afdwingen. In het volgende voorbeeld wordt hetbaseline
beleid ingeschakeld voor alle naamruimten in uw cluster. Met dit beleid wordt een gebruikersgerichte waarschuwing gegenereerd als er pods worden geïmplementeerd in een naamruimte die niet voldoet aan het basislijnbeleid .kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Toegangsbeleid voor podbeveiliging afdwingen met een implementatie
Maak twee naamruimten met behulp van de
kubectl create namespace
opdracht.kubectl create namespace test-restricted kubectl create namespace test-privileged
Schakel een PSA-beleid in voor elke naamruimte, één met het
restricted
beleid en één met hetbaseline
beleid, met behulp van dekubectl label
opdracht.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
Hiermee configureert u de
test-restricted
entest-privileged
naamruimten om actieve pods te blokkeren en een gebruikersgerichte waarschuwing te genereren als pods die niet voldoen aan de geconfigureerde beleidspoging om uit te voeren.Probeer pods te implementeren in de
test-restricted
naamruimte met behulp van dekubectl apply
opdracht. Deze opdracht resulteert in een fout omdat detest-restricted
naamruimte is geconfigureerd om pods te blokkeren die niet voldoen aan hetrestricted
beleid.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yaml
In de volgende voorbeelduitvoer ziet u een waarschuwing waarin staat dat de pods het geconfigureerde beleid schenden:
... 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
Controleer of er geen pods in de
test-restricted
naamruimte worden uitgevoerd met behulp van dekubectl get pods
opdracht.kubectl get pods --namespace test-restricted
In de volgende voorbeelduitvoer ziet u dat er geen pods worden uitgevoerd in de
test-restricted
naamruimte:No resources found in test-restricted namespace.
Probeer pods te implementeren in de
test-privileged
naamruimte met behulp van dekubectl apply
opdracht. Deze keer moeten de pods worden geïmplementeerd omdat detest-privileged
naamruimte is geconfigureerd om pods toe te staan die hetprivileged
beleid schenden.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yaml
In de volgende voorbeelduitvoer ziet u dat de pods zijn geïmplementeerd:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front created
Controleer of er pods in de
test-privileged
naamruimte worden uitgevoerd met behulp van dekubectl get pods
opdracht.kubectl get pods --namespace test-privileged
In de volgende voorbeelduitvoer ziet u twee pods die worden uitgevoerd in de
test-privileged
naamruimte: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
Verwijder de
test-restricted
entest-privileged
naamruimten met behulp van dekubectl delete
opdracht.kubectl delete namespace test-restricted test-privileged
Volgende stappen
In dit artikel hebt u geleerd hoe u Pod Security-toegang tot een AKS-cluster inschakelt. Zie Pod Security Standards afdwingen met naamruimtelabels voor meer informatie over Toegang tot podbeveiliging. Zie Pod Security Standards (Pod Security Standards) voor meer informatie over de Pod Security Standards die worden gebruikt door Pod Security Admission.
Azure Kubernetes Service