본문 바로가기
CSP (Cloud Service Provider)/GCP

Cloud IAM(Identity and Access Management)​ (2) 역할

by BTC_문돌이 2022. 6. 24.

안녕하세요, Hallo 팀입니다. 저번 포스팅에 이어 GCP의 Cloud IAM에 대해 계속 알아보도록 하겠습니다.

 

액세스 관리와 관련된 개념
인증된 주 구성원이 리소스에 액세스를 시도하면 IAM은 리소스의 허용 정책을 확인하여 작업 허용 여부를 결정합니다.

리소스

 

사용자가 특정 Google Cloud 리소스에 액세스해야 하면 해당 리소스에 대한 역할을 사용자에게 부여할 수 있습니다. 프로젝트, Compute Engine 인스턴스, Cloud Storage 버킷이 리소스의 예시에 해당됩니다.

일부 서비스는 프로젝트 수준보다 세분화된 IAM 권한 부여를 지원합니다. 예를 들어 특정 Cloud Storage 버킷의 사용자에게 스토리지 관리자 역할(roles/storage.admin)을 부여하거나 특정 Compute Engine 인스턴스의 사용자에게 Compute 인스턴스 관리자 역할(roles/compute.instanceAdmin)을 부여할 수 있습니다.

다른 경우에는 프로젝트 수준에서 IAM 권한을 부여할 수 있습니다. 권한은 프로젝트의 모든 리소스에 상속됩니다. 예를 들어 프로젝트의 모든 Cloud Storage 버킷에 대한 액세스 권한을 부여하려면 각 개별 버킷이 아닌 프로젝트에 대한 액세스 권한을 부여합니다. 또는 프로젝트의 모든 Compute Engine 인스턴스에 대한 액세스 권한을 부여하려면 각 개별 인스턴스가 아닌 프로젝트에 대한 액세스 권한을 부여합니다.

권한
권한은 리소스에 대해 허용되는 작업을 결정합니다. IAM 환경에서 권한은 service.resource.verb 형식으로 표시됩니다(예: pubsub.subscriptions.consume).

권한은 종종 REST API 메서드와 일대일 대응합니다. 다시 말해, 각 Google Cloud 서비스에는 노출하는 REST API 메서드마다 연결된 권한이 있습니다. 해당 메서드의 호출자는 해당 메서드를 호출할 수 있는 권한이 필요합니다. 예를 들어 Pub/Sub를 사용하는 경우 topics.publish() 메서드를 호출하려면 해당 주제에 대한 pubsub.topics.publish 권한이 있어야 합니다.

사용자에게 직접 권한을 부여하지는 않습니다. 대신 적절한 권한이 포함된 역할을 식별한 다음 해당 역할을 사용자에게 부여합니다.

역할
역할이란 권한의 모음입니다. 사용자에게 직접 권한을 부여할 수 없습니다. 대신 역할을 부여합니다. 사용자에게 역할을 부여하면 역할에 포함된 모든 권한이 부여됩니다.

 

 

IAM에는 다음과 같은 여러 종류의 역할이 있습니다.

  • 기본 역할: 이전부터 Google Cloud Console에 제공되는 역할로, 소유자, 편집자, 뷰어 역할이 있습니다.
  • 사전 정의된 역할: 기본 역할보다 더욱 세부적으로 액세스 권한을 제어할 수 있는 역할입니다. 예를 들어 사전 정의된 역할 Pub/Sub 게시자(roles/pubsub.publisher)는 메시지를 Pub/Sub 주제에 게시할 수 있는 액세스 권한만 부여합니다.
  • 커스텀 역할: 사전 정의된 역할로 필요한 사항을 조직에 충족할 수 없는 경우 조직의 필요에 맞게 생성하는 커스텀 역할입니다

 

허용 정책
사용자에게 부여되는 액세스 권한의 유형을 정의하는 여러 구문으로 구성된 허용 정책을 만들어 사용자에게 역할을 부여할 수 있습니다. 허용 정책은 리소스에 연결되며 리소스에 액세스할 때마다 액세스 제어를 적용하는 데 사용됩니다.

 

 

허용 정책은 역할 결합 목록으로 구성됩니다. 역할 결합은 주 구성원 목록을 역할에 결합합니다.

1. role: 주 구성원에게 부여할 역할입니다. role은 roles/service.roleName 형식으로 지정됩니다. 예를 들어 Cloud Storage는 roles/storage.objectAdmin, roles/storage.objectCreator, roles/storage.objectViewer 등의 역할을 제공합니다.

2. members: 이 문서의 ID와 관련된 개념 섹션에서 설명한 주 구성원 한 개 이상의 목록입니다. 각 주 구성원 유형은 Google 계정(예: user:), 서비스 계정(serviceAccount:), Google 그룹(group:), Google Workspace 계정 또는 Cloud ID 도메인(domain:)과 같은 프리픽스로 식별됩니다. 다음 예시 코드 스니펫에서는 storage.objectAdmin 역할이 user:ali@example.com, serviceAccount:my-other-app@appspot.gserviceaccount.com, group:admins@example.com, domain:google.com 중 적합한 프리픽스를 사용하여 다음 주 구성원에게 부여됩니다. objectViewer 역할은 user:maria@example.com에 부여됩니다.

 

이상으로 GCP IAM의 역할에 대해서 알아보았습니다.

 

 

출처: https://cloud.google.com/iam/docs/overview?hl=ko

댓글