Cloud IAM 정책 만들기

이 페이지에서는 Google Kubernetes Engine에서 승인을 위해 Cloud Identity and Access Management(Cloud IAM) 정책을 만드는 방법을 설명합니다.

개요

모든 GCP(Google Cloud Platform), GKE, Kubernetes API 호출을 위해서는 요청 수행 계정에 필요한 권한이 있어야 합니다. 기본적으로 개발자 자신 또는 폴더 및 조직 수준 정책으로 권한을 부여 받은 사용자를 제외하면 인증 및 승인을 거치지 않은 한 아무도 개발자의 프로젝트 또는 해당 리소스에 액세스할 수 없습니다. Cloud IAM을 사용하면 프로젝트에 액세스할 수 있는 사용자 및 이러한 사용자가 수행할 수 있는 작업을 관리할 수 있습니다.

사용자 및 서비스 계정에 자신의 GCP 프로젝트에 대한 액세스 권한을 부여하려면 이러한 사용자를 프로젝트 팀 구성원으로 추가해야 합니다. 그런 후 역할을 할당해야 합니다. 역할은 특정 계정이 액세스할 수 있는 GCP 리소스 및 이러한 계정이 수행할 수 있는 작업을 정의합니다.

GKE에서는 Cloud IAM을 사용하여 자신의 클러스터에 액세스하고 작업을 수행할 수 있는 사용자 및 서비스 계정을 관리합니다.

시작하기 전에

이 작업을 준비하려면 다음 단계를 수행하세요.

  • Google Kubernetes Engine API가 사용 설정되었는지 확인합니다.
  • Google Kubernetes Engine API 사용 설정
  • Cloud SDK가 설치되었는지 확인합니다.
  • 기본 프로젝트 ID를 설정합니다.
    gcloud config set project [PROJECT_ID]
  • 영역 클러스터를 사용하는 경우 기본 컴퓨팅 영역을 설정합니다.
    gcloud config set compute/zone [COMPUTE_ZONE]
  • 지역 클러스터를 사용하는 경우 기본 컴퓨팅 지역을 설정합니다.
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud를 최신 버전으로 업데이트합니다.
    gcloud components update

역할 기반 액세스 제어로 상호작용

Kubernetes의 기본 역할 기반 액세스 제어 시스템은 또한 클러스터에 대한 액세스를 관리합니다. RBAC는 클러스터 및 네임스페이스 수준에서 액세스를 제어하고, Cloud IAM은 프로젝트 수준에서 작동합니다.

Cloud IAM 및 RBAC는 함께 작동 가능하며, 클러스터의 리소스를 사용하기 위해 어느 수준에서든 충분한 권한이 항목에 있어야 합니다.

Cloud IAM 역할

다음 섹션에서는 GCP에서 제공되는 Cloud IAM 역할에 대해 설명합니다.

사전 정의된 GKE 역할

Cloud IAM은 특정 GCP 리소스에 대한 액세스 권한을 부여하고 다른 리소스에 대해 승인되지 않은 액세스를 방지하는 사전 정의된 역할을 제공합니다.

Cloud IAM은 GKE에 다음과 같은 사전 정의된 역할을 제공합니다.

역할 제목 역할 이름 기능 대상 사용자
GKE 관리자 roles/container.admin 클러스터 및 해당 Kubernetes 리소스에 대한 모든 액세스 권한
  • 프로젝트 소유자/관리자
  • 긴급 대기 엔지니어
  • 시스템 관리자
GKE 개발자 roles/container.developer 클러스터에서 실행되는 Kubernetes 리소스에 대한 모든 액세스 권한
  • 개발자
  • 출시 엔지니어
GKE 뷰어 roles/container.viewer 클러스터 및 해당 Kubernetes 리소스에 대한 읽기 전용 액세스 권한
  • 클러스터 및 리소스에 대한 가시성만 필요한 사용자
GKE 클러스터 관리자 roles/container.clusterAdmin
    서비스 계정 사용자와 함께 사용되는 경우, 클러스터 만들기, 삭제, 업데이트, 보기 권한만 부여합니다. Kubernetes 리소스에 대한 액세스 권한은 없습니다.
  • 클러스터 관리만 필요하고 클러스터 작업 부하에 대한 액세스 권한이 필요하지 않은 사용자
GKE 클러스터 뷰어 roles/container.clusterViewer 클러스터를 가져오고 나열하기 위한 권한. Kubernetes 리소스에 대한 액세스 권한은 없습니다.
  • 클러스터에 대한 읽기 전용 액세스 권한이 필요한 사용자
  • kubectl을 구성하기 위한 클러스터 정보를 검색하는 데 적합

각 GKE 역할이 부여하는 권한을 자세히 알아보려면 Cloud IAM 역할로 부여되는 권한을 참조하세요.

기본 Cloud IAM 역할

기본 Cloud IAM 역할은 모든 GCP 리소스에 대한 전역, 프로젝트 수준의 액세스 권한을 사용자에게 부여합니다. 프로젝트 및 클러스터 보안을 위해서는 가능한 모든 경우에 사전 정의된 역할을 사용해야 합니다.

기본 역할을 자세히 알아보려면 Cloud IAM 문서에서 기본 역할을 참조하세요.

서비스 계정 사용자 역할

서비스 계정 사용자는 GCP 서비스 계정을 사용하여 특정 작업을 완료할 수 있는 권한을 사용자에게 부여합니다. GKE에서 클러스터 만들기, 업데이트, 삭제를 수행해야 하는 사용자는 이 역할이 필요할 수 있습니다. 항목에 필요한 액세스 수준에 따라 서비스 계정 사용자 역할을 다른 역할과 연결할 수 있습니다.

예를 들어 클러스터 관리자 역할이 있는 사용자가 클러스터를 만들어야 할 경우, GKE 기본 서비스 계정에 액세스해야 합니다. 사용자의 Cloud IAM 정책에 서비스 계정 사용자 역할을 추가하면 이러한 사용자가 서비스 계정 사용 권한을 갖게 됩니다.

역할 제목 역할 이름 기능 권한
서비스 계정 사용자 roles/iam.serviceAccountUser 프로젝트 수준 또는 서비스 특정 서비스 계정에 대한 액세스 권한
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

호스트 서비스 에이전트 사용자 역할

호스트 서비스 에이전트 사용자 역할은 공유 VPC 클러스터에서만 사용됩니다.

역할 제목 역할 이름 기능 권한
호스트 서비스 에이전트 사용자 roles/container.hostServiceAgentUser 공유 VPC와 함께 사용됩니다. 호스트 프로젝트에서 네트워크 리소스를 관리하기 위한 권한을 부여합니다. 이 역할은 서비스 프로젝트의 GKE 서비스 계정에 부여됩니다. 서비스 프로젝트의 GKE 서비스 계정이 호스트 프로젝트의 GKE 서비스 계정을 사용할 수 있도록 합니다. 이 역할은 사용자에게 부여되지 않습니다.
  • container.hostServiceAgent.use
  • compute.firewalls.get

커스텀 역할

사전 정의된 역할이 요구에 부합되지 않으면 자신이 정의하는 권한이 포함된 커스텀 역할을 만들 수 있습니다.

커스텀 역할을 만들고 할당하는 방법을 알아보려면 커스텀 역할 만들기 및 관리를 참조하세요.

Cloud IAM 역할로 부여되는 권한

gcloud 명령줄 도구 또는 GCP 콘솔을 사용하여 각 역할로 부여되는 권한을 확인할 수 있습니다.

gcloud

특정 역할로 부여되는 권한을 보려면 다음 명령어를 실행하세요. [ROLE]은 모든 Cloud IAM 역할입니다. GKE 역할에는 roles/container.가 프리픽스로 표시됩니다.

gcloud iam roles describe roles/[ROLE]

예:

gcloud iam roles describe roles/container.admin

콘솔

특정 역할로 부여되는 권한을 보려면 다음 단계를 수행하세요.

  1. GCP 콘솔의 IAM 메뉴에서 역할 섹션으로 이동합니다.

    IAM 메뉴로 이동

  2. 필터 테이블 필드에서 'GKE'를 입력합니다.

  3. 원하는 역할을 선택합니다.

Cloud IAM 정책 관리

사용자에 대한 Cloud IAM 역할 및 권한 관리 방법을 알아보려면 Cloud IAM 문서에서 프로젝트 구성원에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

서비스 계정에 대해서는 서비스 계정에 역할 부여를 참조하세요.

예시

GKE에서 Cloud IAM의 작동 방식에 대한 몇 가지 예는 다음과 같습니다.

  • 새로운 직원이 회사에 입사했습니다. GCP 프로젝트에 새 직원을 추가해야 하지만 프로젝트의 클러스터 및 다른 GCP 리소스에 대한 보기 권한만 필요합니다. 프로젝트 소유자는 새 직원을 프로젝트 수준의 뷰어 역할에 할당합니다. 이 역할에는 프로젝트 및 해당 리소스를 보는 데 필요한 compute.projects.get 권한이 포함되어 있습니다.
  • 이 직원이 작업에 참여함으로써 gcloud 또는 Google Cloud Platform 콘솔을 사용하여 클러스터를 업데이트해야 합니다. 이 작업을 수행하려면 container.clusters.update 권한이 필요하므로, 프로젝트 소유자가 직원을 클러스터 관리자 역할에 할당합니다. 이제 직원은 클러스터 관리자 역할과 뷰어 역할을 갖게 됩니다.
  • 직원이 Deployment에 발생한 문제의 원인을 조사해야 합니다. 클러스터에서 실행 중인 포드를 보기 위해 kubectl get pods를 실행해야 합니다. 이 직원은 이 권한을 부여하는 뷰어 역할이 이미 있습니다.
  • 직원이 새 클러스터를 만들어야 합니다. 프로젝트 소유자가 이 직원에게 서비스 계정 사용자 역할을 부여하여, 직원 계정이 GKE의 기본 서비스 계정에 액세스할 수 있도록 합니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Kubernetes Engine