728x90
반응형
1. RBAC Authorization
개개인의 Role 에 의해서 network resource 를 access 할수 있도록 허용한다.
RBAC 은 rbac.authorization.k8s.io API 그룹을 사용한다.
RBAC 을 사용하기 위해서는 apiserver start 시에 --authorization-mode=RBAC 또는 /etc/kubernetes/manifests/kube-apiserver.yaml 파일에 kube-apiserver 항목에 --authorization-mode=RBAC 을 설정해주면 된다.
2. Role & ClusterRole
- Role 은 단일한 namespace에 있는 resource 에 대한 권한을 정의한다.
role.yaml
1 2 3 4 5 6 7 8 9 | kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: default name: pod-reader rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"] | cs |
apiGroups & resources : 어떤 Resource에 대한 Rule 인지를 정의한다.
Verbs : 어떤 operation 을 할지 정의한다.
- Cluster Role 은 모든 namespace 에 대한 권한을 정의한다.
clusterrole.yaml
1 2 3 4 5 6 7 8 | kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: secret-reader rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] | cs |
Role 정의와 동일하지만 metadata 에 namespace 항목만 빠져있다.
3. RoleBinding & ClusterRoleBinding
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | RoleBinding kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: read-pods namespace: default subjects: - kind: Group name: group1 apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: pod-reader apiGroup: rbac.authorization.k8s.io --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: read-secrets-global subjects: - kind: Group name: group12 apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: secret-reader apiGroup: rbac.authorization.k8s.io | cs |
Binding을 통해서 각각의 group 에 role 과 clusterrole 을 바인딩을 했다. role 은 group1, clusterrole 은 group2 에 바인딩을 했다.
이렇게 바인딩이 끝나면 Group 에 따라서 호출할 수 있는 API 가 달라지게 된다.
728x90
반응형
'Development > Docker&Kubernetes' 카테고리의 다른 글
Docker 로 mysql 설치 및 접속 하기 (3) | 2018.09.18 |
---|---|
Docker 사용시 sudo 없이 사용하기 (0) | 2018.09.10 |
[K8S] Kubernetes 설치 ( in Ubuntu in AWS) (0) | 2018.08.26 |
unable to evaluate symlinks in Dockerfile path (0) | 2018.04.01 |
repository 삭제하기 (0) | 2015.10.28 |