Share via


Pod biztonsági felvételének használata Azure Kubernetes Service (AKS)

A Pod security Admission (PSA) címkék használatával kényszeríti ki a podbiztonsági szabványok szabályzatait a névtérben futó podokon. Az AKS engedélyezi, hogy a podok biztonsági felvétele alapértelmezés szerint engedélyezve legyen. További információ a podok biztonsági felvételéről és a podok biztonsági szabványairól: Podbiztonsá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.

Előkészületek

Pod biztonsági felvételének engedélyezése egy névtérhez a fürtben

PSA engedélyezése egyetlen névtérhez

  • Engedélyezze a PSA-t egyetlen névtérhez a fürtben a kubectl label paranccsal, és állítsa be a pod-security.kubernetes.io/enforce címkét a kikényszeríteni kívánt szabályzatértékkel. Az alábbi példa engedélyezi a restrictedNÉ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 paranccsal, és állítsa be a pod-security.kubernetes.io/warn címkét a kikényszeríteni kívánt szabályzatértékkel. Az alábbi példa engedélyezi a szabályzatot a baseline fürt összes névteréhez. 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
    

Podbiztonsá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 paranccsal.

    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 és test-privileged a test-restricted névteret, hogy blokkolja a futó podokat, és felhasználói figyelmeztetést generál, ha valamelyik pod nem felel meg a konfigurált szabályzat futtatására tett kísérletnek.

  3. Próbáljon podokat üzembe helyezni a test-restricted névtérben a kubectl apply paranccsal. Ez a parancs hibát eredményez, mert a test-restricted névtér úgy van konfigurálva, hogy blokkolja 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 a névtérben test-restricted futó podok a kubectl get pods paranccsal.

    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áljon podokat üzembe helyezni a test-privileged névtérben a kubectl apply paranccsal. Ezúttal a podokat sikeresen üzembe kell helyezni, mert a test-privileged névtér úgy van konfigurálva, hogy engedélyezze a privileged szabályzatot megsé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. Ellenőrizze, hogy futnak-e podok a test-privileged névtérben a kubectl get pods paranccsal.

    kubectl get pods --namespace test-privileged
    

    Az alábbi példakimenetben két pod fut 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évteret a kubectl delete paranccsal.

    kubectl delete namespace test-restricted test-privileged
    

Következő lépések

Ebből a cikkből megtudhatta, hogyan engedélyezheti a podok biztonsági felvételét egy AKS-fürtön. További információ a podok biztonsági felvételéről: Podbiztonsági szabványok kényszerítése névtércímkékkel. A podok biztonsági beléptetése által 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.