Delen via


Toegang tot podbeveiliging gebruiken in Azure Kubernetes Service (AKS)

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 Toegang tot podbeveiliging standaard ingeschakeld. Zie Pod Security Standards afdwingen met naamruimtelabels en podbeveiligingsstandaarden voor meer informatie over podbeveiligingsstandaarden 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

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 het pod-security.kubernetes.io/enforce label in met de beleidswaarde die u wilt afdwingen. In het volgende voorbeeld wordt het restricted beleid 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 label opdracht en stel het pod-security.kubernetes.io/warn label in met de beleidswaarde die u wilt afdwingen. In het volgende voorbeeld wordt het baseline beleid 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
    

Toegangsbeleid voor podbeveiliging afdwingen met een implementatie

  1. Maak twee naamruimten met behulp van de kubectl create namespace opdracht.

    kubectl create namespace test-restricted
    kubectl create namespace test-privileged
    
  2. Schakel een PSA-beleid in voor elke naamruimte, één met het restricted beleid en één met het baseline beleid, met behulp van de kubectl 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 en test-privileged naamruimten om actieve pods te blokkeren en een gebruikersgerichte waarschuwing te genereren als pods die niet voldoen aan de geconfigureerde beleidspoging om uit te voeren.

  3. Probeer pods te implementeren in de test-restricted naamruimte met behulp van de kubectl apply opdracht. Deze opdracht resulteert in een fout omdat de test-restricted naamruimte is geconfigureerd om pods te blokkeren die niet voldoen aan het restricted 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 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 created
    
  4. Controleer of er geen pods in de test-restricted naamruimte worden uitgevoerd met behulp van de kubectl get pods opdracht.

    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.
    
  5. Probeer pods te implementeren in de test-privileged naamruimte met behulp van de kubectl apply opdracht. Deze keer moeten de pods worden geïmplementeerd omdat de test-privileged naamruimte is geconfigureerd om pods toe te staan die het privileged beleid schenden.

    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
    
  6. Controleer of er pods in de test-privileged naamruimte worden uitgevoerd met behulp van de kubectl 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
    
  7. Verwijder de test-restricted en test-privileged naamruimten met behulp van de kubectl 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 Security Standards afdwingen met naamruimtelabels voor meer informatie over Toegang tot podbeveiliging. Zie Pod Security Standards (Pod Security Standards) voor meer informatie over de Pod Security Standards die worden gebruikt door Pod Security Admission.