kuberctl get [sa|serviceaccount]kubectl create <service account name>kubectl get services --as system:serviceaccount:default:<service account name>
system:serviceaccount : 인증을 위해 서비스 어카운트를 사용한다는 의미
default : 네임스페이스 (기본)
롤
부여할 권한이 무엇인지 나타내는 쿠버네티스 오브젝트.
네임스페이스에 속하는 오프젝트에 대해 권한 정의
kubectl get role
롤 정의
apiVeresion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: <namespace name> #
name: <role name> #
rules:
- apiGroups: [""] # 대상이 될 오브젝트의 API Group
resoures: ["services"] # 대상이 될 오브젝트의 이름
verbs: ["get", "list"] # 허용할 동작
클러스터 롤
부여할 권한이 무엇인지 나타내는 쿠버네티스 오브젝트.
네임스페이스에 속하지 않는 오프젝트 및 클러스터 전반에 걸친 기능에 대해 권한 정의
kubectl get clusterrole
Role, RoleBinding 정의와 동일하다. kind만 아래와 같이 변경하면 된다.
Role -> ClusterRole
RoleBinding -> ClusterRoleBinding
여러 개의 크러스터 롤을 조합해서 사용하기
자주 사용되는 클러스처 롤이 있다면 다른 클러스터 롤에 포함시켜 재사용할 수 있다. 이를 클러스터 롤 애그리게이션(aggregation)이라고 한다.
클러스터 롤 애그리게이션을 사용하면 여러 개의 클러스터 롤 권한을 하나의 클러스터 롤에 합쳐서 사용할 수도 있으며, 여러 단계의 클러스터 롤 권한 상속 구조를 만들 수도 있다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: parent-clusterrole
labels:
rbac.authorization.k8s.io/aggregation-to-child-clusterrole: "true"
rules:
- apiGroups: [""]
resoures: ["nodes"]
verbs: ["get", "list"]
-----------
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: child-clusterrole
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.authorization.k8s.io/aggregation-to-child-clusterrole: "true"
rules: [] # 아무것도 정의하지 않았지만 parent 권한을 상속받았기 때문에 nodes에 대한 get,list 권한이 부여됨.
서비스 어카운트 체계적으로 권한을 관리하기위한 쿠버네티스 오브젝트
kuberctl get [sa|serviceaccount]
kubectl create <service account name>
kubectl get services --as system:serviceaccount:default:<service account name>
롤 부여할 권한이 무엇인지 나타내는 쿠버네티스 오브젝트. 네임스페이스에
속하는
오프젝트에 대해 권한 정의kubectl get role
롤 정의
kubectl api-resources
명령어 참고롤 바인딩 정의 : 서비스 어카운트와 롤 매핑
클러스터 롤 부여할 권한이 무엇인지 나타내는 쿠버네티스 오브젝트. 네임스페이스에
속하지 않는
오프젝트 및 클러스터 전반에 걸친 기능에 대해 권한 정의kubectl get clusterrole
Role, RoleBinding 정의와 동일하다. kind만 아래와 같이 변경하면 된다. Role -> ClusterRole RoleBinding -> ClusterRoleBinding
여러 개의 크러스터 롤을 조합해서 사용하기 자주 사용되는 클러스처 롤이 있다면 다른 클러스터 롤에 포함시켜 재사용할 수 있다. 이를 클러스터 롤 애그리게이션(aggregation)이라고 한다. 클러스터 롤 애그리게이션을 사용하면 여러 개의 클러스터 롤 권한을 하나의 클러스터 롤에 합쳐서 사용할 수도 있으며, 여러 단계의 클러스터 롤 권한 상속 구조를 만들 수도 있다.