역할 기반 액세스 제어

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가 고급 사용 사례를 해결할 수 있도록 추가적인 사전 정의된 역할을 제공합니다.

Role Title Description Lowest resource
roles/container.admin Kubernetes Engine Admin

Provides access to full management of clusters and their Kubernetes API objects.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.cloudKmsKeyUser Kubernetes Engine KMS Crypto Key User Allow the Kubernetes Engine service agent in the cluster project to call KMS with user provided crypto keys to sign payloads.
roles/container.clusterAdmin Kubernetes Engine Cluster Admin

Provides access to management of clusters.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterViewer Kubernetes Engine Cluster Viewer

Provides access to get and list GKE clusters.

roles/container.defaultNodeServiceAccount Kubernetes Engine Default Node Service Account Least privilege role to use as the default service account for GKE Nodes.
roles/container.developer Kubernetes Engine Developer

Provides access to Kubernetes API objects inside clusters.

  • Project
roles/container.hostServiceAgentUser Kubernetes Engine Host Service Agent User

Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project.

roles/container.viewer Kubernetes Engine Viewer

Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects.

  • Project

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 역할과 가장 비슷합니다.

다음 단계