[GCP] IAM Custom Role (feat. Deployment Manager로 관리하기)

Hailey·2020년 10월 7일
1

GCP

목록 보기
20/29

IAM Custom Role

커스텀 역할은 사용자가 정의하며 지원되는 권한을 사용자의 필요에 맞도록 하나 이상 결합할 수 있다. 커스텀 역할은 Google에서 유지관리하지 않는다. 즉, Google Cloud에 새로운 권한, 기능, 서비스가 추가되어도 커스텀 역할은 자동으로 업데이트되지 않는다. 커스텀 역할을 만들 때 조직 또는 프로젝트를 선택해야 한다. 그런 다음 조직 또는 프로젝트에 대한 커스텀 역할과 해당 조직 또는 프로젝트 내의 모든 리소스에 대한 커스텀 역할을 부여할 수 있다. 폴더 수준에서는 커스텀 역할을 만들 수 없다. 폴더 내에서 커스텀 역할을 사용해야 하는 경우 폴더의 상위 항목에 커스텀 역할을 정의한다.

IAM 환경에서 권한은 다음 형식으로 표시된다.

service.resource.verb

예를 들어 compute.instances.list 권한이 있는 사용자는 자신이 소유한 Compute Engine 인스턴스를 나열할 수 있고, compute.instances.stop 권한이 있는 사용자는 VM을 중지할 수 있다.

커스텀 역할을 만들려면 호출자는 iam.roles.create 권한이 있어야 한다. 조직 관리자를 비롯하여 소유자가 아닌 사용자에게는 조직 역할 관리자 역할(roles/iam.organizationRoleAdmin) 또는 IAM 역할 관리자 역할(roles/iam.roleAdmin)을 할당해야한다. 'IAM 보안 검토자' 역할(roles/iam.securityReviewer)을 사용하면 커스텀 역할을 볼 수는 있지만 관리할 수는 없다.

Deployment Manager로 Custom Role 유지 관리

Cloud Deployment Manager를 사용하면 커스텀 역할을 더 쉽게 구성하고 유지관리할 수 있다. Cloud Deployment Manager에서는 구성 파일을 사용하여 역할을 설명할 수 있으며 이 역할은 선택한 소스 제어 시스템에 체크인할 수 있다. Deployment Manager와 소스 제어를 함께 사용하면 다음 목적으로 'config-as-code(코드로 구성)'를 더 쉽게 만들 수 있다.

  • 시간 경과에 따른 커스텀 역할의 변화 추적
  • 테스트 및 검증을 거쳐 출시 단계까지 커스텀 역할 승격
  • 조직 전체에 역할을 배포하는 방법 자동화

( Deployment Manager는 배포를 설명하기 위해 3가지 파일 유형을 사용한다. 각 유형에 관해 설명하자면 다음과 같다.
1. 구성은 리소스 및 해당 속성을 설명하는 YAML 파일! ID 및 액세스 관리(IAM) 커스텀 역할에서 각 YAML 파일은 이름, 설명, 권한 등 하나 이상의 커스텀 역할에 대한 모든 속성을 지정
2. 스키마는 주어진 리소스 및 해당 기본값에 대한 가능한 모든 속성을 지정. IAM 커스텀 역할의 경우 프로젝트 수준 및 조직 수준의 커스텀 역할에 대한 스키마가 있다.
3. 템플릿은 구성을 재사용 가능한 부분으로 분해하여 구성을 개선하는 Jinja 또는 Python 파일! IAM 커스텀 역할에서는 두 가지 템플릿, 즉 프로젝트 수준 커스텀 역할용 템플릿과 조직 수준 커스텀 역할용 템플릿이 제공된다. )

Deployment Manager를 사용해 커스텀 역할을 배포하려면

  1. GitHub 저장소의 콘텐츠를 로컬 머신에 다운로드
  2. 터미널 창에서 다운로드된 저장소의 examples/v2/iam_custom_role/jinja 디렉터리로 이동, 여기에는 project_custom_role.yaml 파일 및 관련 Jinja 파일이 포함되어 있다.
  3. 다음 명령어를 실행하여 커스텀 역할 예시를 배포하고 your-deployment-name 자리표시자 값을 선택한 배포 이름으로 교체
gcloud deployment-manager deployments create \
   your-deployment-name --config project_custom_role.yaml
  1. 작업이 성공하면 다음과 같은 상태 메시지가 표시된다.
Create operation operation-1513228867042-560460d157ad1-b4ababb8-c6a7dddc completed successfully.
NAME         TYPE                             STATE      ERRORS  INTENT
custom-role  gcp-types/iam-v1:projects.roles  COMPLETED  []
profile
Business & Software 💗🌎

0개의 댓글