1. Role을 어떻게 생성할까?
우리는 역할 오브젝트를 생성하여 이를 수행합니다. 그래서 우리는 API 버전이 rbac.authorization.k8s.io/v1으로 설정된 role definition 파일을 만듭니다. kind는 Role 입니다. metadata에 name을 developer로 지정합니다. 다음으로 rules를 지정합니다. 각 rule에는 apiGroups, resources, verbs 세 가지 섹션이 있습니다.
- apiGroups
- resources
- verbs
Core 그룹의 경우 API 그룹 섹션을 비워 둘 수 있습니다. 다른 그룹의 경우 그룹 이름을 입력해야 합니다
우리가 개발자에게 액세스 권한을 부여하려는 리소스는 파드입니다. 수행할 수 있는 작업(verb)은 나열, 가져오기, 생성 및 삭제입니다. 마찬가지로 개발자가 config map을 만들 수 있도록 config map을 만드는 다른 규칙을 추가합니다. 이와 같이 단일 역할에 대해 여러 규칙을 추가할 수 있습니다. kubectl create role 커맨드를 사용하여 역할을 생성합니다.
$ kubectl create -f developer-role.yaml
2. 사용자를 역할에 연결.
다음 단계는 사용자를 해당 역할에 연결하는 것입니다. 이를 위해 롤 바인딩이라는 또 다른 오브젝트를 만듭니다. 롤 바인딩 오브젝트는 사용자 오브젝트를 역할에 연결합니다. 우리는 그것을 devuser-developer-binding.yaml로 이름을 지정할 것입니다.
kind는 RoleBinding입니다. 두 개의 섹션이 있습니다. subjects는 사용자 세부 정보를 지정하는 곳입니다. roleRef 섹션은 우리가 생성한 롤의 세부 정보를 제공하는 곳입니다. kubectl create 커맨드를 사용하여 role binding을 만들 수 있습니다. 또한 역할 및 역할 바인딩은 네임스페이스 범위에 속합니다. 따라서 여기에서 dev-user는 default 네임스페이스 내에서 파드 및 config map에 액세스할 수 있습니다. 다른 namespace 내에서 dev-user의 액세스를 제한하려면 파일을 만드는 동안 definition 파일의 메타데이터 내에서 namespace을 지정하면 됩니다.
3. View RBAC
생성된 역할을 보려면 kubectl get roles 커맨드를 실행하십시오.
$ kubectl get roles
롤 바인딩을 조회하려면 kubectl get rolebindings 커맨드를 실행하십시오.
$ kubectl get rolebindings
역할에 대한 자세한 정보를 보려면 kubectl describe role 커맨드를 실행하십시오.
$ kubectl describe role developer
마찬가지로 롤 바인딩에 대한 세부 정보를 보려면 kubectl describe rolebinding 커맨드를 실행합니다.
$ kubectl describe rolebinding devuser-developer-binding
여기에서 롤 바인딩에 대한 세부 정보를 볼 수 있습니다.
'Computer Science > Kubernetes(CKA) 자격증 준비' 카테고리의 다른 글
Kubernetes 정리 164: Solution Cluster Roles (0) | 2023.03.03 |
---|---|
Kubernetes 정리 163: Practice Test - Cluster Roles and Role Bindings (0) | 2023.03.03 |
Kubernetes 정리 158: Authorization (0) | 2023.03.02 |
Kubernetes 정리 157: API Groups (0) | 2023.03.02 |
Kubernetes 정리 156: Persistent Key/Value Store (0) | 2023.03.01 |