버전 2.5

역할 기반 액세스 제어

Kf는 여러 팀이 Kf 클러스터를 공유할 수 있게 해주는 Kubernetes 역할 집합을 제공합니다. 이 페이지에서는 이를 사용할 때 따라야 할 역할 및 권장사항에 대해 설명합니다.

Kf 역할을 사용하는 경우

Kf 역할을 사용하면 여러 팀이 Kf가 설치된 Kubernetes 클러스터를 공유할 수 있습니다. 이 역할은 개별 Kf Spaces에 대한 액세스 권한을 제공합니다.

다음 조건에 해당될 경우 Kf 역할을 사용하여 클러스터에 대한 액세스 권한을 공유합니다.

  • 클러스터는 신뢰할 수 있는 팀에 사용됩니다.
  • 클러스터의 워크로드는 해당 환경에서 제공되는 보안 수준에 대해 동일한 가정을 공유합니다.
  • 클러스터는 엄격하게 제어되는 Google Cloud 프로젝트에 있습니다.

Kf 역할은 다음을 수행하지 않습니다.

Kf 역할

다음 섹션에서는 Kf로 제공되는 Kubernetes RBAC 역할 및 Google Kubernetes Engine(GKE) IAM과의 상호작용 방법을 설명합니다.

사전 정의된 역할

Kf는 여러 역할을 수행하는 여러 주체에 대해 액세스를 제공할 수 있게 해주는 몇 가지 사전 정의된 Kubernetes 역할을 제공합니다. 사전 정의된 각 역할은 Kf Space에서 관리되는 Kubernetes 네임스페이스 내의 주체에 바인딩될 수 있습니다.

주체가 Kubernetes 네임스페이스 내의 역할에 바인딩된 경우 액세스 권한은 역할에 나열된 권한과 일치하는 네임스페이스에 있는 객체로 제한됩니다. Kf에서 일부 리소스는 클러스터 범위로 정의됩니다. Kf는 네임스페이스에서 주체에 대한 변경사항을 감시하고 클러스터 범위에서 추가 제한 역할을 부여합니다.

역할 이름 설명 범위
space-auditor 공간 감사관 공간에 대한 읽기 전용 액세스를 허용합니다. 공간
space-developer 공간 개발자 애플리케이션 개발자가 공간 내에서 애플리케이션을 배포 및 관리할 수 있게 해줍니다. 공간
space-manager 공간 관리자 공간에서 감사관, 개발자, 관리자를 관리할 수 있는 기능으로 관리를 수행할 수 있습니다. 공간
SPACE_NAME-manager 동적 공간 관리자 단일 공간 객체에 대한 쓰기 액세스 권한을 제공하며, 이름 지정된 공간 내에서 space-manager 역할로 모든 주체에 자동으로 부여됩니다. 클러스터
kf-cluster-reader 클러스터 리더 클러스터 범위의 Kf 객체에 읽기 전용 액세스를 허용하며, 모든 space-auditor, space-developer, space-manager에 자동으로 권한이 부여됩니다. 클러스터

각 사전 정의된 역할을 구성하는 정책 규칙에 대한 자세한 내용은 Kf 역할 참조 문서를 참조하세요.

IAM 역할

Kf 역할은 Kubernetes 클러스터 내에서 객체에 대한 액세스 제어를 제공합니다. 또한 주체에 클러스터 인증을 위한 IAM 역할을 부여해야 합니다.

  • 플랫폼 관리자에게는 roles/container.admin IAM 역할을 부여해야 합니다. 그러면 Spaces 또는 ClusterServiceBrokers와 같은 클러스터 범위의 Kf 객체를 만들고 삭제할 뿐만 아니라 Kf를 설치, 업그레이드, 삭제할 수 있습니다.

  • Kf 최종 사용자에게는 roles/container.viewer IAM 역할을 부여해야 합니다. 이 역할을 통해 Kf 역할을 사용해서 확장될 수 있는 제한된 권한으로 클러스터에 인증할 수 있습니다.

IAM은 GKE가 고급 사용 사례를 해결할 수 있도록 추가적인 사전 정의된 역할을 제공합니다.

역할 이름 설명 최하위 리소스
roles/container.admin Kubernetes Engine 관리자

클러스터 및 관련 Kubernetes API 객체를 전체 관리할 수 있는 액세스 권한을 제공합니다.

노드에 서비스 계정을 설정하려면 Compute Engine 기본 서비스 계정에 대한 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)도 있어야 합니다.

  • 프로젝트
roles/container.clusterAdmin Kubernetes Engine 클러스터 관리자

클러스터 관리에 대한 액세스 권한을 제공합니다.

노드에 서비스 계정을 설정하려면 Compute Engine 기본 서비스 계정에 대한 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)도 있어야 합니다.

  • 프로젝트
roles/container.clusterViewer Kubernetes Engine 클러스터 뷰어 GKE 클러스터를 가져오고 나열할 수 있는 액세스 권한입니다.
roles/container.developer Kubernetes Engine 개발자

클러스터 내에서 Kubernetes API 객체에 대한 액세스를 제공합니다.

  • 프로젝트
roles/container.hostServiceAgentUser Kubernetes Engine 호스트 서비스 에이전트 사용자

호스트 프로젝트의 Kubernetes Engine 서비스 계정에서 클러스터 관리를 위한 공유 네트워크 리소스를 구성하도록 허용합니다. 또한 호스트 프로젝트의 방화벽 규칙을 검사할 수 있는 액세스 권한을 부여합니다.

roles/container.viewer Kubernetes Engine 뷰어

GKE 리소스에 대한 읽기 전용 액세스 권한을 제공합니다.

  • 프로젝트

Kf에 Cloud Foundry 역할 매핑

Cloud Foundry 제공 역할은 Kf의 사전 정의된 역할과 비슷합니다. Cloud Foundry에는 두 가지 중요 유형의 역할이 있습니다.

  • 사용자 계정 및 인증(UAA) 하위 시스템에서 할당된 역할은 모든 Cloud Foundry API 엔드포인트에 적용 가능한 대략적으로 조정된 OAuth 범위를 제공합니다.
  • Cloud Controller API(CAPI) 내에서 권한 부여되는 역할은 API 리소스에 대해 세밀하게 조정된 액세스 권한을 제공합니다.

UAA 역할

UAA에서 제공되는 역할은 프로젝트 범위 IAM 역할과 가장 비슷합니다.

  • Cloud Foundry의 관리자 사용자는 모든 Cloud Foundry 조직 및 공간에 대해 관리 작업을 수행할 수 있습니다. 이 역할은 roles/container.admin IAM 역할과 가장 비슷합니다.
  • Cloud Foundry의 관리자 읽기 전용 사용자는 모든 Cloud Foundry API 엔드포인트에 액세스할 수 있습니다. 이 역할은 roles/container.admin IAM 역할과 가장 비슷합니다.
  • Cloud Foundry의 전역 감사관 사용자는 보안 비밀을 제외하고 모든 Cloud Foundry API 엔드포인트에 대한 읽기 액세스 권한을 갖습니다. 동등한 IAM 역할은 없지만 비슷한 권한으로 커스텀 역할을 만들 수 있습니다.

Cloud Controller API 역할

CAPI로 제공되는 역할은 클러스터 내에서 고유 프로젝트에 대해 roles/container.viewer IAM 역할을 갖는 주체에 부여되는 Kf 역할과 가장 비슷합니다.

  • Cloud Foundry의 공간 감사관은 CF 공간의 리소스에 대해 읽기 액세스 권한을 갖습니다. 이 역할은 space-auditor Kf 역할과 가장 비슷합니다.
  • Cloud Foundry의 공간 개발자는 CF 공간에서 애플리케이션을 배포 및 관리할 수 있습니다. 이 역할은 space-developer Kf 역할과 가장 비슷합니다.
  • Cloud Foundry의 공간 관리자는 CF 공간에 대한 설정을 수정하고 역할에 사용자를 할당할 수 있습니다. 이 역할은 space-manager Kf 역할과 가장 비슷합니다.

다음 단계