Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pod Security Admission (PSA) używa etykiet do egzekwowania polityk standardów zabezpieczeń dla podów działających w przestrzeni nazw. W usłudze AKS kontrola bezpieczeństwa podów jest domyślnie włączona. Aby uzyskać więcej informacji na temat Pod Security Admission i standardów zabezpieczeń zasobników, zobacz Wymuszanie standardów zabezpieczeń zasobnika za pomocą etykiet przestrzeni nazw i Standardy zabezpieczeń zasobnika.
Pod Security Admission to wbudowane rozwiązanie zasad dla implementacji klastra pojedynczego. Jeśli chcesz użyć zasad klasy korporacyjnej, zalecamy użycie zasad platformy Azure.
Zanim rozpoczniesz
- Subskrypcja Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Zainstalowany interfejs wiersza polecenia platformy Azure.
- Istniejący klaster usługi AKS z uruchomioną platformą Kubernetes w wersji 1.23 lub nowszej.
Włącz Admisję Bezpieczeństwa Podów dla przestrzeni nazw w twoim klastrze.
Włącz PSA dla pojedynczej przestrzeni nazw
Włącz PSA dla pojedynczej przestrzeni nazw w klastrze przy użyciu polecenia
kubectl labeli ustaw etykietępod-security.kubernetes.io/enforcez wartością zasad, którą chcesz wymusić. Poniższy przykład umożliwiarestrictedzasadę dla przestrzeni nazw NAMESPACE.kubectl label --overwrite ns NAMESPACE pod-security.kubernetes.io/enforce=restricted
Włącz PSA dla wszystkich przestrzeni nazw
Włącz PSA dla wszystkich przestrzeni nazw w klastrze, używając polecenia
kubectl labeli ustaw etykietępod-security.kubernetes.io/warnz wartością polityki, którą chcesz wymusić. Poniższy przykład włącza zasadębaselinedla wszystkich przestrzeni nazw w klastrze. Te zasady generują ostrzeżenie dla użytkownika, jeśli jakiekolwiek zasobniki są wdrażane w przestrzeni nazw, która nie spełnia zasad punktu odniesienia .kubectl label --overwrite ns --all pod-security.kubernetes.io/warn=baseline
Egzekwowanie polityki przyjmowania bezpieczeństwa zasobnika przy użyciu wdrożenia
Utwórz dwie przestrzenie nazw przy użyciu
kubectl create namespacepolecenia .kubectl create namespace test-restricted kubectl create namespace test-privilegedWłącz zasady PSA dla każdej przestrzeni nazw, jedną z zasadą
restrictedi jedną z zasadąbaseline, przy użyciu poleceniakubectl label.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=privilegedTo konfiguruje przestrzenie nazw
test-restricteditest-privilegeddo blokowania uruchamiania zasobników i generowania ostrzeżenia dla użytkownika, jeśli jakiekolwiek zasobniki, które nie spełniają skonfigurowanej polityki, próbują się uruchomić.Spróbuj wdrożyć pody w
test-restrictedprzestrzeni nazw przy użyciu poleceniakubectl apply. To polecenie powoduje błąd, ponieważtest-restrictedprzestrzeń nazw jest skonfigurowana do blokowania zasobników, które nie spełniająrestrictedzasad.kubectl apply --namespace test-restricted -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlNastępujące przykładowe dane wyjściowe zawierają ostrzeżenie informujące, że pody naruszają skonfigurowane zasady:
... 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 createdUpewnij się, że w przestrzeni nazw
test-restrictednie są uruchomione zasobniki przy użyciu poleceniakubectl get pods.kubectl get pods --namespace test-restrictedNastępujące przykładowe dane wyjściowe pokazują, że nie ma uruchomionych podów w przestrzeni nazw
test-restricted.No resources found in test-restricted namespace.Spróbuj wdrożyć zasobniki w przestrzeni nazw
test-privilegedza pomocą poleceniakubectl apply. Tym razem zasobniki powinny zostać pomyślnie uruchomione, ponieważtest-privilegedprzestrzeń nazw jest skonfigurowana tak, aby zezwalała na zasobniki naruszająceprivilegedpolitykę.kubectl apply --namespace test-privileged -f https://raw.githubusercontent.com/Azure-Samples/azure-voting-app-redis/master/azure-vote-all-in-one-redis.yamlNastępujące przykładowe dane wyjściowe pokazują, że zasobniki zostały pomyślnie wdrożone:
deployment.apps/azure-vote-back created service/azure-vote-back created deployment.apps/azure-vote-front created service/azure-vote-front createdUpewnij się, że zasobniki są uruchomione w
test-privilegedprzestrzeni nazw przy użyciukubectl get podspolecenia .kubectl get pods --namespace test-privilegedPoniżej znajduje się przykładowe dane wyjściowe przedstawiające dwa działające zasobniki w przestrzeni nazw
test-privileged.NAME READY STATUS RESTARTS AGE azure-vote-back-6fcdc5cbd5-svbdf 1/1 Running 0 2m29s azure-vote-front-5f4b8d498-tqzwv 1/1 Running 0 2m28sUsuń przestrzenie nazw
test-restricteditest-privilegedużywając poleceniakubectl delete.kubectl delete namespace test-restricted test-privileged
Następne kroki
W tym artykule dowiesz się, jak włączyć przyznawanie zabezpieczeń zasobnika w klastrze usługi AKS. Więcej informacji na temat Pod Security Admission można znaleźć w Wymuszanie standardów zabezpieczeń zasobników z etykietami przestrzeni nazw. Aby uzyskać więcej informacji na temat Standardów bezpieczeństwa Pod używanych przez zezwolenie bezpieczeństwa Pod, odwiedź Pod Security Standards.