Megosztás a következőn keresztül:


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é

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 a pod-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 a restricted 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 a pod-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élyezi baseline 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

  1. Hozzon létre két névteret a kubectl create namespace paranccsal.

    kubectl create namespace test-restricted
    kubectl create namespace test-privileged
    
  2. Engedélyezze a PSA-szabályzatot minden névtérhez, egyet a restricted szabályzattal, egyet pedig a baseline szabályzattal, a kubectl 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.

  3. Próbálja meg a podokat a test-restricted névtérben üzembe helyezni a kubectl apply paranccsal. Ez a parancs hibát eredményez, mert a test-restricted névtér úgy van konfigurálva, hogy letiltsa a restricted 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
    
  4. Ellenőrizze, hogy nincsenek-e podok a névtérben test-restricted a kubectl 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.
    
  5. Próbálja meg a podokat a test-privileged névtérben üzembe helyezni a kubectl apply paranccsal. Ezúttal a podoknak sikeresen üzembe kell helyeznie, mert a test-privileged névtér úgy van konfigurálva, hogy engedélyezze a privileged 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
    
  6. Győződjön meg arról, hogy a test-privileged névtérben podok futnak a kubectl 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
    
  7. Távolítsa el a és test-privileged a test-restricted névtereket a kubectl 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.