Los clústeres de Tanzu Kubernetes incluyen PodSecurityPolicy predeterminados a los que se puede enlazar para la implementación de cargas de trabajo con privilegios y restringidas.
Acerca de la directiva de seguridad de pods predeterminada
En esta sección, se proporcionan comandos de YAML y CLI para crear objetos de enlace de funciones a la directiva de seguridad de pods predeterminada, incluidos ClusterRoleBinding y RoleBinding. Para obtener más información, consulte Usar las directivas de seguridad de pods con clústeres de Tanzu Kubernetes.
RoleBinding otorga permisos en un espacio de nombres específico, mientras que ClusterRoleBinding otorga permisos en todo el clúster. La decisión de utilizar RoleBindings o ClusterRoleBinding depende de cada caso práctico. Por ejemplo, si usa ClusterRoleBinding y configura los asuntos para que usen system:serviceaccounts:<namespace>
, puede enlazar a una PSP antes de que se cree el espacio de nombres. Para obtener más información, consulte RoleBinding y ClusterRoleBinding en la documentación de Kubernetes.
Ejemplo 1: ClusterRoleBinding para ejecutar un conjunto privilegiado de cargas de trabajo
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
Ejemplo 2: RoleBinding para ejecutar un conjunto de cargas de trabajo con privilegios
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
kubectl create rolebinding rolebinding-default-privileged-sa-ns_default --namespace=default --clusterrole=psp:vmware-system-privileged --group=system:serviceaccounts
Ejemplo 3: ClusterRoleBinding para ejecutar un conjunto restringido de cargas de trabajo
El siguiente YAML crea un ClusterRoleBinding que otorga a los usuarios autenticados acceso en todo el clúster para ejecutar un conjunto restringido de cargas de trabajo mediante la PSP predeterminada 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
Como alternativa a la aplicación de YAML, puede ejecutar el siguiente de comando de kubectl:
kubectl create clusterrolebinding psp:authenticated --clusterrole=psp:vmware-system-restricted --group=system:authenticated
Ejemplo 4: RoleBinding para ejecutar un conjunto restringido de cargas de trabajo
El siguiente YAML crea un RoleBinding que otorga acceso a todas las cuentas de servicio dentro de un espacio de nombres específico para ejecutar un conjunto restringido de cargas de trabajo mediante la PSP predeterminada 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
Como alternativa a la aplicación de YAML, puede ejecutar el siguiente de comando de kubectl:
kubectl create rolebinding psp:serviceaccounts --clusterrole=psp:vmware-system-restricted --group=system:serviceaccounts