역할 기반 액세스 제어 구성

다음 단계에서는 Kf 공간에서 역할 기반 액세스 제어(RBAC)를 구성하는 방법을 설명합니다.

시작하기 전에

다음 단계별 안내로 넘어가기 전에 GKE RBAC 가이드를 따르세요.

Identity and Access Management(IAM) 구성

Kf RBAC를 통해 부여된 권한 외에도 사용자, 그룹 또는 서비스 계정이 프로젝트 수준에서 GKE 클러스터를 볼 수 있으려면 인증이 필요합니다. 이 요구사항은 GKE RBAC를 구성하는 것과 동일합니다. 즉 사용자/그룹에 클러스터가 포함된 프로젝트에 최소한 container.clusters.get IAM 권한이 있어야 합니다. 이 권한은 container.clusterViewer 역할 및 다른 더 높은 수준의 역할에 포함되어 있습니다. 자세한 내용은 Identity and Access Management(IAM)와 상호작용을 참조하세요.

사용자 또는 그룹에 container.clusterViewer를 할당합니다.

gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \
  --role="container.clusterViewer" \
  --member="${MEMBER}"

구성원 값의 예시는 다음과 같습니다.

  • user:test-user@gmail.com
  • group:admins@example.com
  • serviceAccount:test123@example.domain.com

SpaceManager로 공간 멤버십 관리

클러스터 관리자 역할 또는 SpaceManager 역할이 있는 구성원은 사용자, 그룹 또는 서비스 계정에 역할을 할당할 수 있습니다.

kf set-space-role MEMBER -t [Group|ServiceAccount|User]

클러스터 관리자 역할 또는 SpaceManager 역할이 있는 구성원은 역할에서 구성원을 삭제할 수 있습니다.

kf unset-space-role MEMBER -t [Group|ServiceAccount|User]

공간 내에서 구성원과 구성원의 역할을 볼 수 있습니다.

kf space-users

예를 들면 다음과 같습니다.

사용자에게 SpaceDeveloper 역할 할당:

kf set-space-role alice@example.com SpaceDeveloper

그룹에 SpaceDeveloper 역할 할당:

kf set-space-role devs@example.com SpaceDeveloper -t Group

서비스 계정에 SpaceDeveloper 역할 할당:

kf set-space-role sa-dev@example.domain.com SpaceDeveloper -t ServiceAccount

SpaceDeveloper로서 앱 개발

SpaceDeveloper 역할이 있는 구성원은 공간에서 Kf 앱 개발 작업을 수행할 수 있습니다.

앱 푸시:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

앱의 로그 보기: posix-terminal kf logs app_name

앱을 실행하는 Kubernetes Pod에 SSH를 통해 연결: posix-terminal kf ssh app_name

사용 가능한 서비스 브로커 보기:

kf marketplace

SpaceManager 또는 SpaceAuditor로 앱 열람하기

SpaceManager 또는 SpaceAuditor 역할이 있는 구성원은 공간 내에서 사용할 수 있는 앱을 열람할 수 있습니다.

kf apps

클러스터 내의 Kf 공간 열람하기

모든 역할(SpaceManager, SpaceDeveloper, SpaceAuditor)은 클러스터 내에서 사용 가능한 Kf 공간을 열람할 수 있습니다.

kf spaces

공간 구성원 및 공간 내의 역할 열람:

kf space-users

명의 도용 플래그

더 높은 수준의 권한을 가진 구성원은 명의 도용 플래그 --as--as-group을 사용하여 다른 구성원의 권한이 유효한지 테스트할 수 있습니다.

예를 들어 클러스터 관리자는 어떤 사용자(사용자 이름: bob)가 앱을 푸시할 권한이 있는지 확인할 수 있습니다.

kf push APP_NAME --as bob

어떤 그룹(manager-group@example.com)에 다른 구성원에게 권한을 할당할 권한이 있는지 확인하는 방법은 다음과 같습니다.

kf set-space-role bob SpaceDeveloper --as-group manager-group@example.com