Pod biztonsági bevezetés használata az Azure Kubernetes Service-ben (AKS)
A Pod Security Admission (PSA) címkéket használ a podbiztonsági szabványok szabályzatainak kikényszerítésére a névtérben futó podokon. Az AKS-ben a pod biztonsági felvétele alapértelmezés szerint engedélyezve van. A podok biztonsági beléptetésével és a pod biztonsági szabványaival kapcsolatos további információkért lásd : Pod biztonsági szabványok érvénybe léptetése névtércímkékkel és podbiztonsági szabványokkal.
A Pod security Admission egy beépített szabályzatmegoldás egyetlen fürt implementációihoz. Ha nagyvállalati szintű szabályzatot szeretne használni, javasoljuk, hogy az Azure Policyt használja.
Mielőtt elkezdené
- Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, létrehozhat egy ingyenes fiókot.
- Telepített Azure CLI.
- Meglévő, Kubernetes 1.23-at vagy újabb verziót futtató AKS-fürt.
Pod biztonsági felvételének engedélyezése egy névtérhez a fürtben
A PSA engedélyezése egyetlen névtérhez
Engedélyezze a PSA-t egyetlen névtérhez a fürtben a
kubectl label
parancs használatával, és állítsa be apod-security.kubernetes.io/enforce
címkét az érvényesíteni kívánt szabályzatértékkel. Az alábbi példa engedélyezi arestricted
NÉVTÉR névtér szabályzatát.kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=restricted
A PSA engedélyezése az összes névtérhez
Engedélyezze a PSA-t a fürt összes névteréhez a
kubectl label
parancs használatával, és állítsa be apod-security.kubernetes.io/warn
címkét az érvényesíteni kívánt szabályzatértékkel. Az alábbi példa a fürt összes névteréhez engedélyezibaseline
a szabályzatot. Ez a szabályzat felhasználói figyelmeztetést generál, ha a podok olyan névtérben vannak üzembe helyezve, amely nem felel meg az alapkonfigurációs szabályzatnak.kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Pod biztonsági belépési szabályzat kényszerítése üzembe helyezéssel
Hozzon létre két névteret a
kubectl create namespace
paranccsal.kubectl create namespace test-restricted kubectl create namespace test-privileged
Engedélyezze a PSA-szabályzatot minden névtérhez, egyet a
restricted
szabályzattal, egyet pedig abaseline
szabályzattal, akubectl label
parancs használatával.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
Ez úgy konfigurálja a
test-restricted
névtereket,test-privileged
hogy letiltsa a futó podokat, és felhasználói figyelmeztetést generáljon, ha olyan podok, amelyek nem felelnek meg a konfigurált szabályzat futtatására tett kísérletnek.Próbálja meg a podokat a
test-restricted
névtérben üzembe helyezni akubectl apply
paranccsal. Ez a parancs hibát eredményez, mert atest-restricted
névtér úgy van konfigurálva, hogy letiltsa arestricted
szabályzatnak nem megfelelő podokat.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yaml
Az alábbi példakimenet egy figyelmeztetést jelenít meg, amely szerint a podok megsértik a konfigurált szabályzatot:
... 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
Ellenőrizze, hogy nincsenek-e podok a névtérben
test-restricted
akubectl get pods
parancs használatával.kubectl get pods --namespace test-restricted
Az alábbi példakimenet nem jelenít meg podokat a
test-restricted
névtérben:No resources found in test-restricted namespace.
Próbálja meg a podokat a
test-privileged
névtérben üzembe helyezni akubectl apply
paranccsal. Ezúttal a podoknak sikeresen üzembe kell helyeznie, mert atest-privileged
névtér úgy van konfigurálva, hogy engedélyezze aprivileged
szabályzatot sértő podokat.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yaml
Az alábbi példakimenet a sikeresen üzembe helyezett podokat mutatja be:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front created
Győződjön meg arról, hogy a
test-privileged
névtérben podok futnak akubectl get pods
paranccsal.kubectl get pods --namespace test-privileged
Az alábbi példakimenet két podot jelenít meg a
test-privileged
névtérben: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
Távolítsa el a és
test-privileged
atest-restricted
névtereket akubectl delete
paranccsal.kubectl delete namespace test-restricted test-privileged
Következő lépések
Ebből a cikkből megtudhatja, hogyan engedélyezheti a Pod Security Admission AKS-fürtöt. További információ a podok biztonsági felvételéről: Pod biztonsági szabványok érvényesítése névtércímkékkel. A podok biztonsági beléptetéséhez használt podbiztonsági szabványokról további információt a Pod biztonsági szabványai című témakörben talál.
Azure Kubernetes Service