Kf는 여러 팀이 Kf 클러스터를 공유할 수 있게 해주는 Kubernetes 역할 집합을 제공합니다. 이 페이지에서는 이를 사용할 때 따라야 할 역할 및 권장사항에 대해 설명합니다.
Kf 역할을 사용하는 경우
Kf 역할을 사용하면 여러 팀이 Kf가 설치된 Kubernetes 클러스터를 공유할 수 있습니다. 이 역할은 개별 Kf Spaces에 대한 액세스 권한을 제공합니다.
다음 조건에 해당될 경우 Kf 역할을 사용하여 클러스터에 대한 액세스 권한을 공유합니다.
- 클러스터는 신뢰할 수 있는 팀에 사용됩니다.
- 클러스터의 워크로드는 해당 환경에서 제공되는 보안 수준에 대해 동일한 가정을 공유합니다.
- 클러스터는 엄격하게 제어되는 Google Cloud 프로젝트에 있습니다.
Kf 역할은 다음을 수행하지 않습니다.
- 신뢰할 수 없는 개발자 또는 워크로드로부터 클러스터를 보호하지 않습니다. 자세한 내용은 GKE 공유 책임 모델을 참조하세요.
- 워크로드에 대한 격리를 제공하지 않습니다. 자세한 내용은 클러스터 강화 가이드를 참조하세요.
- Kf와 상호작용하는 추가 Kubernetes 역할이 정의되지 않도록 방지하지 않습니다.
- Google Cloud 프로젝트 또는 클러스터 액세스 권한이 있는 관리자의 액세스를 방지하지 않습니다.
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/ |
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/ |
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/ |
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/ |
Kubernetes Engine Cluster Viewer |
Provides access to get and list GKE clusters. |
|
roles/ |
Kubernetes Engine Default Node Service Account | Least privilege role to use as the default service account for GKE Nodes. | |
roles/ |
Kubernetes Engine Developer |
Provides access to Kubernetes API objects inside clusters. |
|
roles/ |
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/ |
Kubernetes Engine Viewer |
Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects. |
|
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 역할과 가장 비슷합니다.
다음 단계
- 보안 개요의 GKE 보안 자세히 알아보기
- GKE 공유 책임 모델을 이해했는지 확인
- GKE의 액세스 제어 자세히 알아보기
- GKE 멀티테넌시 개요 읽기
- GKE 클러스터 강화 알아보기
- 각 Kf 사전 정의된 역할을 구성하는 Kubernetes 권한 이해