Node
: 스케줄링 된 파드의 kubelet에서 접근제어ABAC
: 속성기반 접근제어RBAC
: 역할기반 접근제어Webhook
: POST 요청에 대한 접근제어 Role
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: test-pod-reader rules: - apiGroups: [""] # "" means api resources: ["pods"] verbs: ["get", "watch", "list"] resourceNames: ["pod-A", "pod-B"] - apiGroups: ["apps"] resources: ["deployment"] verbs: ["create", "list"] | cs |
9번 라인
: 핸들링할 API가 포함된 그룹10번 라인
: 핸들링할 API 종류11번 라인
: 핸들링하고자 하는 액션12번 라인
: 핸들링을 허용하고자 하는 특정 리소스RoleBinding
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-pods namespace: default subjects: - kind: User or Group or ServiceAccount name: jane apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: test-pod-reader apiGroup: rbac.authorization.k8s.io | cs |
8 ~ 11번 라인
: 롤을 적용할 유저13 ~ 16번 라인
: 유저에게 적용할 롤/metrics
/healthz
/version
/api
/apis
/logs
/api
에 포함된 api/apis
에 포함된 apikubectl api-resources
vi /etc/kubernetes/manifests/kube-apiserver.yaml
kubectl get role
kubectl describe role [롤_이름]
kubectl get rolebindings
kubectl describe rolebindings [롤바인딩_이름]
kubectl auth can-i [액션] [리소스] --as [유저]