Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 Pod Security Admission standaard ingeschakeld. Zie Podbeveiligingsstandaarden afdwingen met naamruimtelabels en Podbeveiligingsstandaarden voor meer informatie over Pod Security Admission 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 labelopdracht en stel hetpod-security.kubernetes.io/enforcelabel in met de beleidswaarde die u wilt afdwingen. In het volgende voorbeeld wordt hetrestrictedbeleid 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 labelopdracht en stel hetpod-security.kubernetes.io/warnlabel in met de beleidswaarde die u wilt afdwingen. In het volgende voorbeeld wordt hetbaselinebeleid 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
Pod-security-toelatingsbeleid afdwingen met een deployment
Maak twee naamruimten met behulp van de
kubectl create namespaceopdracht.kubectl create namespace test-restricted kubectl create namespace test-privilegedSchakel een PSA-beleid in voor elke naamruimte, één met het
restrictedbeleid en één met hetbaselinebeleid, met behulp van dekubectl labelopdracht.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=privilegedHiermee configureert u de
test-restrictedentest-privilegednaamruimten om actieve pods te blokkeren en een waarschuwing naar de gebruiker toe te genereren als pods die niet voldoen aan het geconfigureerde beleid proberen te draaien.Probeer pods te implementeren in de
test-restrictednaamruimte met behulp van dekubectl applyopdracht. Deze opdracht resulteert in een fout omdat detest-restrictednaamruimte is geconfigureerd om pods te blokkeren die niet voldoen aan hetrestrictedbeleid.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlIn 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 createdControleer of er geen pods in de
test-restrictednaamruimte worden uitgevoerd met behulp van dekubectl get podsopdracht.kubectl get pods --namespace test-restrictedIn de volgende voorbeelduitvoer wordt getoond dat er geen pods worden uitgevoerd in de
test-restrictednaamruimte.No resources found in test-restricted namespace.Probeer pods te implementeren in de
test-privilegednaamruimte met behulp van dekubectl applyopdracht. Deze keer zouden de pods succesvol moeten worden ingezet omdat detest-privilegednaamruimte is geconfigureerd om pods die hetprivilegedbeleid schenden toe te staan.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlIn de volgende voorbeelduitvoer ziet u dat de pods succesvol zijn uitgerold.
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front createdControleer of er pods draaien in de
test-privilegednaamruimte met behulp van dekubectl get podsopdracht.kubectl get pods --namespace test-privilegedIn de volgende voorbeelduitvoer ziet u twee pods die worden uitgevoerd in de
test-privilegednaamruimte:NAME READY STATUS RESTARTS AGE azure-vote-back-6fcdc5cbd5-svbdf 1/1 Running 0 2m29s azure-vote-front-5f4b8d498-tqzwv 1/1 Running 0 2m28sVerwijder de
test-restrictedentest-privilegednaamruimten met behulp van dekubectl deleteopdracht.kubectl delete namespace test-restricted test-privileged
Volgende stappen
In dit artikel hebt u geleerd hoe u Pod Security Admission aan een AKS-cluster inschakelt. Voor meer informatie over Pod Security Admission, zie Pod-beveiligingsstandaarden afdwingen met naamruimtelabels. Voor meer informatie over de Pod Security Standards die worden gebruikt door Pod Security Admission, zie Pod Security Standards.