Tanzu Kubernetes クラスタには、権限のある、および制限されたワークロードのデプロイのためにバインドできるデフォルトの PodSecurityPolicy が含まれています。
デフォルトのポッド セキュリティ ポリシーについて
このセクションでは、ClusterRoleBinding や RoleBinding などのデフォルトのポッド セキュリティ ポリシーにロール バインド オブジェクトを作成するための YAML および CLI コマンドについて説明します。詳細については、『Tanzu Kubernetes クラスタでのポッド セキュリティ ポリシーの使用』を参照してください。
RoleBinding は特定の名前空間内の権限を付与しますが、ClusterRoleBinding はクラスタ全体に対する権限を付与します。RoleBindings または ClusterRoleBinding を使用するかどうかは、使用方法によって異なります。たとえば、ClusterRoleBinding を使用して、system:serviceaccounts:<namespace>
を使用するようにサブジェクトを構成する場合は、名前空間を作成する前に PSP にバインドできます。詳細については、Kubernetes ドキュメントのRoleBinding および ClusterRoleBindingを参照してください。
例 1:権限のあるワークロードのセットを実行するための ClusterRoleBinding
vmware-system-privileged
を使用して権限のあるワークロードのセットを実行する認証済みユーザーに、アクセス権を付与します。
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
kubectl
コマンドを実行することもできます。
kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
例 2:権限のあるワークロードのセットを実行するための RoleBinding
vmware-system-privileged
を使用して、権限のあるワークロードのセットを実行するためにデフォルトの名前空間内のすべてのサービス アカウントへのアクセスを許可する RoleBinding を作成します。
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
kubectl create rolebinding rolebinding-default-privileged-sa-ns_default --namespace=default --clusterrole=psp:vmware-system-privileged --group=system:serviceaccounts
例 3:制限されたワークロードのセットを実行するための ClusterRoleBinding
次の YAML は、デフォルトの PSP vmware-system-restricted
を使用して、制限されたワークロードのセットを実行するためにクラスタ全体へのアクセスを認証ユーザーに許可する ClusterRoleBinding を作成します。
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
YAML を適用する代わりに、次の kubectl コマンドを実行することもできます。
kubectl create clusterrolebinding psp:authenticated --clusterrole=psp:vmware-system-restricted --group=system:authenticated
例 4:制限されたワークロードのセットを実行するための RoleBinding
次の YAML は、デフォルトの PSP vmware-system-restricted
を使用して、制限されたワークロードのセットを実行するために特定の名前空間内のすべてのサービス アカウントへのアクセスを許可する RoleBinding を作成します。
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
YAML を適用する代わりに、次の kubectl コマンドを実行することもできます。
kubectl create rolebinding psp:serviceaccounts --clusterrole=psp:vmware-system-restricted --group=system:serviceaccounts