Toegang tot podbeveiliging gebruiken in Azure Kubernetes Service (AKS)
Pod Security Admission (PSA) maakt gebruik van labels om podbeveiligingsstandaardbeleid af te dwingen op pods die worden uitgevoerd in een naamruimte. AKS schakelt Pod Security-toegang in is standaard ingeschakeld. Zie Pod-beveiligingsstandaarden afdwingen met naamruimtelabels en Pod Security Standards voor meer informatie over podbeveiligingstoegang en Pod Security Standards.
Pod Security Admission is een ingebouwde beleidsoplossing voor implementaties van één cluster. Als u beleid op ondernemingsniveau wilt gebruiken, raden we u aan Azure Policy 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 ingeschakeld voor de naamruimte NAMESPACE .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. Dit beleid genereert een gebruikersgerichte waarschuwing 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 de
kubectl create namespace
opdracht .kubectl create namespace test-restricted kubectl create namespace test-privileged
Schakel een PSA-beleid in voor elke naamruimte, een met het
restricted
beleid en een 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
naamruimten entest-privileged
om actieve pods te blokkeren en een gebruikerswaarschuwing te genereren als pods die niet voldoen aan het geconfigureerde beleid proberen 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 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 met de opdracht of er geen pods worden uitgevoerd in de
test-restricted
kubectl get pods
naamruimte.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 in strijd zijn met hetprivileged
beleid.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 worden uitgevoerd in de
test-privileged
naamruimte 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
naamruimten entest-privileged
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-beveiligingsstandaarden afdwingen met naamruimtelabels voor meer informatie over podbeveiligingstoegang. Zie Pod Security Standards (Beveiligingsstandaarden voor pods) voor meer informatie over de podbeveiligingsstandaarden die worden gebruikt door podbeveiligingstoegang.
Azure Kubernetes Service
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor