Tanzu Kubernetes 叢集包括可繫結到的預設 PodSecurityPolicy,用於有權限和受限制的工作負載部署。
關於預設網繭安全性原則
本節提供用於建立角色繫結物件 (包括 ClusterRoleBinding 和 RoleBinding) 以繫結至預設網繭安全性原則的 YAML 和 CLI 命令。如需詳細資訊,請參閱 將網繭安全性原則與 Tanzu Kubernetes 叢集搭配使用。
RoleBinding 在特定命名空間內授與權限,而 ClusterRoleBinding 在叢集範圍內授與權限。決定使用 RoleBindings 還是 ClusterRoleBinding 取決於您的使用案例。例如,如果使用 ClusterRoleBinding 並設定主體使用 system:serviceaccounts:<namespace>
,則可以在建立命名空間之前繫結至 PSP。如需詳細資訊,請參閱 Kubernetes 說明文件中的〈RoleBinding 和 ClusterRoleBinding〉。
範例 1:用於執行一組有權限工作負載的 ClusterRoleBinding
下列
kubectl 命令會建立一個 ClusterRoleBinding,用於向已驗證的使用者授與存取權,以便能夠使用預設 PSP
vmware-system-privileged
執行一組有權限的工作負載。
警告: 以宣告方式或強制性方式套用範例 1 允許在叢集範圍內部署具特殊權限的工作負載。實際上,範例 1 停用原生安全性控制,因此,應謹慎使用並完全瞭解影響。為了加強安全性,請考慮範例 2、3 和 4。
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
除了套用 YAML 之外,您還可以執行下列
kubectl
命令。
kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
範例 2:用於執行一組有權限工作負載的 RoleBinding
下列
kubectl 命令會建立一個 RoleBinding,用於向預設命名空間內的所有服務帳戶授與存取權,以便能夠使用預設 PSP
vmware-system-privileged
執行一組有權限的工作負載。
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
除了套用 YAML 之外,您還可以執行下列
kubectl 命令。
kubectl create rolebinding rolebinding-default-privileged-sa-ns_default --namespace=default --clusterrole=psp:vmware-system-privileged --group=system:serviceaccounts
範例 3:用於執行一組受限制工作負載的 ClusterRoleBinding
下列 YAML 會建立一個 ClusterRoleBinding,用於向已驗證的使用者授與叢集範圍的存取權,以便能夠使用預設 PSP vmware-system-restricted
執行一組受限制的工作負載。
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 會建立一個 RoleBinding,用於向特定命名空間內的所有服務帳戶授與存取權,以便能夠使用預設 PSP vmware-system-restricted
執行一組受限制的工作負載。
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