인증 및 인가
Kubernetes Engine에는 쿠버네티스의 인증 및 RBAC 인가 기능이 적용되어 있습니다. 쿠버네티스의 인증 및 인가 기능과 Kubernetes Engine과 IAM의 연계 방법에 대해 설명합니다.
쿠버네티스 인증 및 인가
쿠버네티스의 인증 및 RBAC 인가 기능을 설명합니다.
인증
쿠버네티스 API 서버는 인증서나 인증 토큰으로부터 사용자(User)나 서비스어카운트(ServiceAccount)의 인증에 필요한 정보를 취득하여 인증 절차를 진행합니다.
인가
쿠버네티스 API 서버는 인증 과정을 통해 얻은 사용자 정보를 이용하여 RBAC 관련 오브젝트로부터 해당 사용자가 요청한 작업에 대한 권한이 있는지를 확인합니다. RBAC 관련 오브젝트는 다음과 같이 4가지 종류가 있습니다.
| 오브젝트 | 범위 | 설명 |
|---|---|---|
| 클러스터롤(ClusteRole) | 클러스터 범위(cluster-wide) | 클러스터의 모든 네임스페이스에 걸친 권한 정의 |
| 클러스터롤바인딩(ClusteRoleBinding) | 클러스터 범위(cluster-wide) | 클러스터롤과 사용자와의 연결 정의 |
| 롤(Role) | 네임스페이스(namespace) | 특정 네임스페이스에 대한 권한 정의 |
| 롤바인딩(RoleBinding) | 네임스페이스(namespace) | 클러스터롤 또는 롤과 사용자와의 연결 정의 |
롤
쿠버네티스에는 여러 클러스터롤이 기본 정의되어 있습니다. 그중 일부 클러스터롤에는 접두어(system:)가 포함되어 있지 않습니다. 이는 사용자용으로 사용할 것을 염두에 둔 클러스터롤입니다. 여기에는 클러스터롤바인딩을 사용하여 클러스터 전체에 적용할 슈퍼유저 롤(cluster-admin)과 롤바인딩을 사용하여 특정 네임스페이스에 적용할 롤(admin, edit, view)이 포함됩니다.
| 기본 클러스터롤 | 기본 클러스터롤바인딩 | 설명 |
|---|---|---|
| cluster-admin | system:masters 그룹 | 모든 리소스에 대한 모든 작업을 수행할 수 있는 슈퍼유저 액세스를 허용합니다.
|
| admin | 없음 | 롤바인딩을 사용하여 네임스페이스 내부에 적용되는 관리자 액세스를 허용합니다. 롤바인딩에서 사용하는 경우 네임스페이스 내에 롤 및 롤바인딩을 생성하는 기능을 포함하여 네임스페이스 내 대부분의 리소스에 대한 읽기/쓰기 액세스를 허용합니다. 이 롤은 리소스 할당량 또는 네임스페이스 자체에 대한 쓰기 액세스는 허용하지 않습니다. |
| edit | 없음 | 네임스페이스 내 대부분의 오브젝트에 대한 읽기/쓰기 액세스를 허용합니다.
|
| view | 없음 | 네임스페이스 내 대부분의 오브젝트를 조회하기 위한 읽기 전용 액세스를 허용합니다. 롤 또는 롤바인딩은 조회할 수 없습니다.
|
필요에 따라 기본 정의된 클러스터롤 이외에, 다음과 같이 별도의 롤(또는 클러스터롤)을 정의할 수도 있습니다.
# "default" 네임스페이스 내 파드를 조회할 권한을 부여하는 롤
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]# "default" 네임스페이스 내 파드를 조회할 권한을 부여하는 롤
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]# 노드를 조회할 권한을 부여하는 클러스터롤
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: node-reader
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]# 노드를 조회할 권한을 부여하는 클러스터롤
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: node-reader
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]롤바인딩
Samsung Cloud Platform IAM을 사용하여 Kubernetes Engine에 대한 액세스를 관리하려면, 쿠버네티스의 롤바인딩과 IAM의 관계를 이해해야 합니다. 롤바인딩(또는 클러스터롤바인딩)의 대상(subjects)에는 개별 사용자(User) 또는 그룹(Group)이 포함될 수 있습니다.
- User는 Samsung Cloud Platform 사용자명으로, Group은 IAM 사용자 그룹명으로 각각 매칭됩니다.
롤바인딩/클러스터롤바인딩의 subjects.kind로는 다음 중 하나를 지정할 수 있습니다.
- User: Samsung Cloud Platform 개별 사용자와 연결됩니다.
- Group: Samsung Cloud Platform IAM 사용자 그룹과 연결됩니다.
롤바인딩/클러스터롤바인딩의 subjects.name은 다음과 같이 지정할 수 있습니다.
- User인 경우: Samsung Cloud Platform 개별 사용자명 (예: jane.doe)
- Group인 경우: Samsung Cloud Platform IAM 사용자 그룹명 (예: ReadPodsGroup)
이러한 방식으로 IAM 사용자 그룹은 Kubernetes Engine 클러스터의 롤바인딩(또는 클러스터롤바인딩)에 작성된 그룹과 연결됩니다. 또한 그룹과 연결된 롤(또는 클러스터롤)에 포함된 API 작업을 수행할 수 있는 권한이 부여됩니다.
예시) 롤바인딩 read-pods #1
롤바인딩에 User(Samsung Cloud Platform 개별 사용자)를 작성한 예시는 다음과 같습니다.
# 이 롤바인딩은 "jane.doe" 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
roleRef:
# "roleRef"에는 롤 또는 클러스터롤과의 연결을 지정합니다.
kind: Role # Role 또는 ClusterRole이어야 합니다.
name: pod-reader # 연결하고자 하는 롤 또는 클러스터롤의 이름과 일치해야 합니다.
apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: User
name: jane.doe
apiGroup: rbac.authorization.k8s.io# 이 롤바인딩은 "jane.doe" 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
roleRef:
# "roleRef"에는 롤 또는 클러스터롤과의 연결을 지정합니다.
kind: Role # Role 또는 ClusterRole이어야 합니다.
name: pod-reader # 연결하고자 하는 롤 또는 클러스터롤의 이름과 일치해야 합니다.
apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: User
name: jane.doe
apiGroup: rbac.authorization.k8s.io클러스터에 위와 같은 롤바인딩이 생성되면, 사용자명이 jane.doe인 사용자에게 롤 pod-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.
예시) 롤바인딩 read-pods #2
롤바인딩에 그룹(IAM 사용자 그룹)을 작성한 예시는 다음과 같습니다.
# 이 롤바인딩은 "ReadPodsGroup" 그룹에 속한 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: Group
name: ReadPodsGroup
apiGroup: rbac.authorization.k8s.io# 이 롤바인딩은 "ReadPodsGroup" 그룹에 속한 사용자가 "default" 네임스페이스의 파드를 조회하도록 허용합니다.
# 해당 네임스페이스에 "pod-reader"라는 롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
subjects:
# 하나 이상의 "대상(subject)"을 지정할 수 있습니다.
- kind: Group
name: ReadPodsGroup
apiGroup: rbac.authorization.k8s.io클러스터에 위와 같은 롤바인딩이 생성되면, IAM 사용자 그룹 ReadPodsGroup에 속한 사용자들에게 롤 pod-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.
예시) 클러스터롤바인딩 read-nodes
# 이 클러스터롤바인딩은"ReadNodesGroup" 그룹에 속한 사용자가 노드를 조회하도록 허용합니다.
# "node-reader"라는 클러스터롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-nodes
roleRef:
kind: ClusterRole
name: node-reader
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
name: ReadNodesGroup
apiGroup: rbac.authorization.k8s.io# 이 클러스터롤바인딩은"ReadNodesGroup" 그룹에 속한 사용자가 노드를 조회하도록 허용합니다.
# "node-reader"라는 클러스터롤이 있어야 합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-nodes
roleRef:
kind: ClusterRole
name: node-reader
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
name: ReadNodesGroup
apiGroup: rbac.authorization.k8s.io클러스터에 위와 같은 클러스터롤바인딩이 생성되면, IAM 사용자 그룹 ReadNodesGroup에 속한 사용자들에게 클러스터롤 node-reader에 작성된 API 작업을 수행할 수 있는 권한이 부여됩니다.
Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩
Samsung Cloud Platform의 Kubernetes Engine에는 다음과 같이 클러스터롤바인딩 scp-cluster-admin, scp-view, scp-namespace-view와 클러스터롤 scp-namespace-view가 사전정의되어 있습니다. 아래 표는 Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩, Samsung Cloud Platform 사용자의 연결 관계를 나타낸 것입니다. 여기서, 클러스터롤 cluster-admin과 view는 쿠버네티스 클러스터 내부에 사전 정의되어 있습니다. 자세한 설명은 롤을 참고하세요.
| 클러스터롤바인딩 | 클러스터롤 | subjects (사용자) |
|---|---|---|
| scp-cluster-admin | cluster-admin | 클러스터 생성자 사용자명 (예: jane.doe) |
| scp-view | view | - |
| scp-namespace-view | scp-namespace-view | 해당 클러스터에 인증된 모든 사용자 |
- 클러스터롤바인딩 scp-cluster-admin에 따라 Kubernetes Engine 서비스 생성자에게는 클러스터 관리자 권한이 부여됩니다.
- 클러스터롤바인딩 scp-view에 등록된 사용자 또는 그룹에는 클러스터 조회자 권한이 부여됩니다. 쿠버네티스에 사전 정의된 클러스터롤 view와 바인딩되며, 클러스터 범위 리소스(예: 네임스페이스, 노드, 인그레스클래스 등)와 네임스페이스 내 시크릿에 대한 접근 권한은 없습니다. 자세한 사항은 롤을 참고하세요.
- 클러스터롤바인딩 scp-namespace-view에 따라 해당 클러스터에 인증된 모든 사용자에게 네임스페이스 조회 권한이 부여됩니다.
- Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩은 클러스터 서비스 생성 시에 최초 한번 생성합니다.
- 사용자는 필요에 따라 Samsung Cloud Platform용 사전 정의된 클러스터 롤바인딩 및 클러스터롤을 수정하거나 삭제할 수 있습니다.
Samsung Cloud Platform용 사전 정의된 롤 및 롤바인딩의 세부 내용은 다음과 같습니다.
클러스터롤바인딩 scp-cluster-admin
클러스터롤바인딩 scp-cluster-admin은 클러스터롤 cluster-admin과 연결되며, 대상(subjects) 항목에 따라 Samsung Cloud Platform 사용자(Kubernetes Engine 클러스터 생성자)와 바인딩됩니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
name: scp-cluster-admin
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: User
name: jane.doe # 클러스터 생성자 사용자명
apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
name: scp-cluster-admin
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: User
name: jane.doe # 클러스터 생성자 사용자명
apiGroup: rbac.authorization.k8s.io클러스터롤바인딩 scp-view
클러스터롤바인딩 scp-view는 클러스터롤 view와 바인딩되며, 대상(subjects) 항목에 Samsung Cloud Platform 사용자 또는 IAM 사용자 그룹을 추가할 수 있습니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: scp-view
roleRef:
kind: ClusterRole
name: view
apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: scp-view
roleRef:
kind: ClusterRole
name: view
apiGroup: rbac.authorization.k8s.io클러스터롤 및 클러스터롤바인딩 scp-namespace-view
클러스터롤 scp-namespace-view는 네임스페이스에 대한 조회 권한을 정의한 롤입니다. 클러스터롤바인딩 scp-namespace-view는 클러스터롤 scp-namespace-view과 바인딩되며, 해당 클러스터에 인증된 모든 사용자에게 네임스페이스 조회 권한을 부여합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: scp-namespace-view
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: scp-namespace-view
roleRef:
kind: ClusterRole
name: scp-namespace-view
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
name: system:authenticated
apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: scp-namespace-view
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: scp-namespace-view
roleRef:
kind: ClusterRole
name: scp-namespace-view
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: Group
name: system:authenticated
apiGroup: rbac.authorization.k8s.ioIAM 사용자 그룹 RBAC 유스케이스
이 챕터에서는 주요 사용자 시나리오별로 권한을 부여하는 예시를 설명합니다. 여기에 제시된 IAM 사용자 그룹, 클러스터롤바인딩/롤바인딩, 클러스터롤의 이름은 이해를 돕기 위한 하나의 예시입니다. 관리자는 필요에 맞게 적절한 이름과 권한을 정의하여 적용하세요.
| 범위 | 유스케이스 | IAM 사용자 그룹 | 클러스터롤바인딩/롤바인딩 | 클러스터롤 | 비고 |
|---|---|---|---|---|---|
| 클러스터 | 클러스터 관리자 | ClusterAdminGroup | 클러스터롤바인딩 cluster-admin-group | cluster-admin | 특정 클러스터에 대한 관리자 |
| 클러스터 | 클러스터 편집자 | ClusterEditGroup | 클러스터롤바인딩 cluster-edit-group | edit | 특정 클러스터에 대한 편집자 |
| 클러스터 | 클러스터 조회자 | ClusterViewGroup | 클러스터롤바인딩 cluster-view-group | view | 특정 클러스터에 대한 조회자 |
| 네임스페이스 | 네임스페이스 관리자 | NamespaceAdminGroup | 롤바인딩 namespace-admin-group | admin | 특정 네임스페이스에 대한 관리자 |
| 네임스페이스 | 네임스페이스 편집자 | NamespaceEditGroup | 롤바인딩 namespace-edit-group | edit | 특정 네임스페이스에 대한 편집자 |
| 네임스페이스 | 네임스페이스 조회자 | NamespaceViewGroup | 롤바인딩 namespace-view-group | view | 특정 네임스페이스에 대한 조회자 |
클러스터 관리자
클러스터 관리자를 생성하려면 다음 절차를 따르세요.
- ClusterAdminGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.배경색 변경
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-admin-group roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: ClusterAdminGroup apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-admin-group roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: ClusterAdminGroup apiGroup: rbac.authorization.k8s.io코드 블럭. 클러스터 관리자 생성
- 기본 클러스터롤 cluster-admin과 연계되어, 해당 클러스터에 대한 관리자 권한이 부여됩니다.
클러스터 편집자
클러스터 편집자를 생성하려면 다음 절차를 따르세요.
- ClusterEditGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.배경색 변경
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-edit-group roleRef: kind: ClusterRole name: edit apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: ClusterEditGroup apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-edit-group roleRef: kind: ClusterRole name: edit apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: ClusterEditGroup apiGroup: rbac.authorization.k8s.io코드 블럭. 클러스터 편집자 생성
- 기본 클러스터롤 edit와 연계되어, 해당 클러스터에 대한 편집자 권한이 부여됩니다.
클러스터 조회자
클러스터 조회자를 생성하려면 다음 절차를 따르세요.
- ClusterViewGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 클러스터롤바인딩을 생성하세요.배경색 변경
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-view-group roleRef: kind: ClusterRole name: view apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: ClusterViewGroup apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-view-group roleRef: kind: ClusterRole name: view apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: ClusterViewGroup apiGroup: rbac.authorization.k8s.io코드 블럭. 클러스터 조회자 생성
- 기본 클러스터롤 view와 연계되어, 해당 클러스터에 대한 조회자 권한이 부여됩니다.
네임스페이스 관리자
네임스페이스 관리자를 생성하려면 다음 절차를 따르세요.
- NamespaceAdminGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.배경색 변경
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: namespace-admin-group namespace: <네임스페이스_이름> roleRef: kind: ClusterRole name: admin apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: NamespaceAdminGroup apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: namespace-admin-group namespace: <네임스페이스_이름> roleRef: kind: ClusterRole name: admin apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: NamespaceAdminGroup apiGroup: rbac.authorization.k8s.io코드 블럭. 네임스페이스 관리자 생성
- 기본 클러스터롤 admin과 연계되어, 해당 네임스페이스에 대한 관리자 권한이 부여됩니다.
네임스페이스 편집자
네임스페이스 편집자를 생성하려면 다음 절차를 따르세요.
- NamespaceEditGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.배경색 변경
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: namespace-edit-group namespace: <네임스페이스_이름> roleRef: kind: ClusterRole name: edit apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: NamespaceEditGroup apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: namespace-edit-group namespace: <네임스페이스_이름> roleRef: kind: ClusterRole name: edit apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: NamespaceEditGroup apiGroup: rbac.authorization.k8s.io코드 블럭. 네임스페이스 편집자 생성
- 기본 클러스터롤 edit와 연계되어, 해당 네임스페이스에 대한 편집자 권한이 부여됩니다.
네임스페이스 조회자
네임스페이스 조회자를 생성하려면 다음 절차를 따르세요.
- NamespaceViewGroup이라는 이름의 IAM 사용자 그룹을 생성하세요.
- 대상 클러스터에 다음과 같은 내용의 롤바인딩을 생성하세요.배경색 변경
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: namespace-view-group namespace: <네임스페이스_이름> roleRef: kind: ClusterRole name: view apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: NamespaceViewGroup apiGroup: rbac.authorization.k8s.ioapiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: namespace-view-group namespace: <네임스페이스_이름> roleRef: kind: ClusterRole name: view apiGroup: rbac.authorization.k8s.io subjects: - kind: Group name: NamespaceViewGroup apiGroup: rbac.authorization.k8s.io코드 블럭. 네임스페이스 조회자 생성
- 기본 클러스터롤 view와 연계되어, 해당 네임스페이스에 대한 조회자 권한이 부여됩니다.