Tanzu Kubernetes-Cluster enthalten die standardmäßige PodSecurityPolicy-Ressource, zu der Sie für die Bereitstellung von berechtigten und eingeschränkten Arbeitslasten eine Bindung herstellen können.

Informationen zur standardmäßigen Pod-Sicherheitsrichtlinie

Dieser Abschnitt enthält YAML- und CLI-Befehle zum Erstellen von Rollenbindungsobjekten für die standardmäßige Pod-Sicherheitsrichtlinie, einschließlich ClusterRoleBinding und RoleBinding. Weitere Informationen finden Sie unter Verwenden von Pod-Sicherheitsrichtlinien mit Tanzu Kubernetes-Clustern.

Ein RoleBinding gewährt Berechtigungen innerhalb eines bestimmten Namespace, während ein ClusterRoleBinding Berechtigungen clusterweit gewährt. Die Entscheidung, RoleBindings oder ClusterRoleBinding zu verwenden, hängt von Ihrem Anwendungsfall ab. Wenn Sie beispielsweise ClusterRoleBinding verwenden und die Subjekte für die Verwendung von system:serviceaccounts:<namespace> konfigurieren, können Sie eine Bindung an eine PSP herstellen, bevor der Namespace erstellt wird. Weitere Informationen finden Sie unter RoleBinding and ClusterRoleBinding in der Kubernetes-Dokumentation.

Beispiel 1: ClusterRoleBinding-Objekt zum Ausführen eines privilegierten Satzes von Arbeitslasten

Mit dem folgenden kubectl-Befehl wird ein ClusterRoleBinding-Objekt erstellt, das authentifizierten Benutzer den Zugriff für die Ausführung eines privilegierten Satzes von Arbeitslasten mithilfe des Standard-PSP vmware-system-privileged gewährt.
Warnung: Durch deklarative und imperative Anwendung von Beispiel 1 wird die clusterweite Bereitstellung privilegierter Arbeitslasten ermöglicht. In Beispiel 1 werden tatsächlich systemeigene Sicherheitskontrollen deaktiviert. Deshalb sollte dieses Beispiel mit Vorsicht und unter vollständiger Kenntnis der Auswirkungen verwendet werden. Für strengere Sicherheit sollten Sie die Beispiele 2, 3 und 4 in Betracht ziehen.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: psp:privileged
rules:
- apiGroups: ['policy']
  resources: ['podsecuritypolicies']
  verbs:     ['use']
  resourceNames:
  - vmware-system-privileged
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: all:psp:privileged
roleRef:
  kind: ClusterRole
  name: psp:privileged
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
  name: system:serviceaccounts
  apiGroup: rbac.authorization.k8s.io
Alternativ zur Anwendung von YAML können Sie folgenden kubectl-Befehl ausführen:
kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated

Beispiel 2: RoleBinding-Objekt zum Ausführen eines berechtigten Satzes von Arbeitslasten

Der folgende kubectl-Befehl erstellt ein RoleBinding-Objekt, das für die Ausführung eines berechtigten Satzes von Arbeitslasten mithilfe der Standard-PSP vmware-system-privileged Zugriff auf alle Dienstkonten im Standard-Namespace gewährt.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: rolebinding-default-privileged-sa-ns_default
  namespace: default
roleRef:
  kind: ClusterRole
  name: psp:vmware-system-privileged
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
  apiGroup: rbac.authorization.k8s.io
  name: system:serviceaccounts
Alternativ zur Anwendung von YAML können Sie folgenden kubectl-Befehl ausführen:
kubectl create rolebinding rolebinding-default-privileged-sa-ns_default --namespace=default --clusterrole=psp:vmware-system-privileged --group=system:serviceaccounts

Beispiel 3: ClusterRoleBinding-Objekt zum Ausführen eines eingeschränkten Satzes von Arbeitslasten

Die folgende YAML erstellt ein ClusterRoleBinding-Objekt, das authentifizierten Benutzern für die Ausführung eines begrenzten Satzes von Arbeitslasten mithilfe der Standard-PSP vmware-system-restricted clusterweiten Zugriff gewährt.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: psp:authenticated
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:authenticated
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: psp:vmware-system-restricted

Alternativ zur Anwendung von YAML können Sie folgenden kubectl-Befehl ausführen:

kubectl create clusterrolebinding psp:authenticated --clusterrole=psp:vmware-system-restricted --group=system:authenticated

Beispiel 4: RoleBinding-Objekt zum Ausführen eines eingeschränkten Satzes von Arbeitslasten

Die folgende YAML erstellt ein RoleBinding-Objekt, das für die Ausführung eines begrenzten Satzes von Arbeitslasten mithilfe der Standard-PSP vmware-system-restricted Zugriff auf alle Dienstkonten in einem bestimmten Namespace gewährt.

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: psp:serviceaccounts
  namespace: some-namespace
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:serviceaccounts
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: psp:vmware-system-restricted

Alternativ zur Anwendung von YAML können Sie folgenden kubectl-Befehl ausführen:

kubectl create rolebinding psp:serviceaccounts --clusterrole=psp:vmware-system-restricted --group=system:serviceaccounts