Identity and Access Management (IAM)를 사용하면 특정 Google Cloud 리소스에 세분화된 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있습니다. 이 모델은 최소 권한의 원칙을 채택하여 리소스에 필요한 액세스 권한만 부여할 수 있게 해줍니다.
허용 정책을 설정하여 어떠한 리소스에 대해 누구 (사용자)에게 어떠한 액세스 권한(역할)이 있는지 제어할 수 있습니다. 프로젝트에 대한 액세스를 관리하려면 IAM 역할 및 권한을 구성하거나 거부 정책을 사용하여 주 구성원이 특정 권한을 사용하지 못하도록 합니다. 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
Google Cloud를 시작하는 경우 Google Cloud 설정 프로세스의 일환으로 리소스 계층 구조를 설정하고 초기 액세스 권한을 부여할 수 있습니다.
권한 및 역할
리소스에 대한 액세스를 제어하려면 Google Cloud 에서 API를 요청하는 계정에 적절한 IAM 역할이 있어야 합니다. IAM 역할에는 사용자가Google Cloud 리소스에서 특정 작업을 수행하도록 허용하는 권한이 포함되어 있습니다. 예를 들어 resourcemanager.projects.delete 권한이 있는 사용자는 프로젝트를 삭제할 수 있습니다.
사용자에게 권한을 직접 부여하는 대신 하나 이상의 권한이 번들로 포함된 역할을 부여합니다. 특정 리소스에 대한 이러한 역할을 부여하지만 리소스 계층 구조에 있는 해당 리소스의 모든 하위 요소에도 적용됩니다.
권한
프로젝트를 관리하려면 호출자가 다음 권한을 포함하는 역할을 갖고 있어야 하며, 프로젝트가 포함된 조직 리소스 또는 폴더에 이 역할이 부여됩니다.
| 메서드 | 필수 권한 |
|---|---|
resourcemanager.projects.create |
resourcemanager.projects.create |
resourcemanager.projects.delete |
resourcemanager.projects.delete |
resourcemanager.projects.get |
resourcemanager.projects.get이 권한을 부여하면 Billing API 메서드를 통해 프로젝트와 연결된 결제 계정의 이름을 가져올 수 있는 액세스 권한도 부여됩니다. billing.projects.getBillingInfo
. |
resourcemanager.projects.getIamPolicy |
resourcemanager.projects.getIamPolicy |
resourcemanager.projects.list |
resourcemanager.projects.list |
resourcemanager.projects.search |
resourcemanager.projects.get |
resourcemanager.projects.setIamPolicy |
resourcemanager.projects.setIamPolicy |
resourcemanager.projects.testIamPermissions |
어떠한 권한도 필요하지 않습니다. |
resourcemanager.projects.undelete |
resourcemanager.projects.undelete |
resourcemanager.projects.patch |
프로젝트 메타데이터를 업데이트하려면 resourcemanager.projects.update 권한이 필요합니다. 프로젝트의 상위 요소를 업데이트하고 프로젝트를 조직 리소스로 옮기려면 조직 리소스에 resourcemanager.projects.create 권한이 필요합니다. |
projects.move |
projects.move |
사전 정의된 역할 사용
IAM 사전 정의된 역할을 사용하면 사용자가 사용할 수 있는 권한을 관리할 수 있습니다. 프로젝트 수준에서 부여할 수 있는 전체 역할 목록은 역할 이해를 참조하세요.
다음 표에는 프로젝트에 대한 액세스 권한을 부여하는 데 사용할 수 있는 사전 정의된 역할이 나와 있습니다. 각 역할에는 목적과 포함된 권한에 대한 설명이 포함되어 있습니다.
| 역할 | 권한 |
|---|---|
프로젝트 생성자( 새 프로젝트를 만들 수 있는 액세스 권한을 제공합니다. 사용자가 프로젝트를 만들면 사용자에게 해당 프로젝트의 소유자 역할이 자동으로 부여됩니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
프로젝트 삭제자( Google Cloud 프로젝트를 삭제할 수 있는 액세스 권한을 제공합니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
프로젝트 이동자( 프로젝트를 업데이트하고 이동할 수 있는 액세스 권한을 제공합니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
프로젝트 IAM 관리자( 프로젝트 수준에서 허용 정책을 관리할 수 있는 권한을 제공합니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
브라우저( 폴더, 조직, 허용 정책을 포함한 프로젝트 계층 구조를 탐색할 수 있는 읽기 액세스 권한입니다. 프로젝트의 리소스를 볼 수 있는 권한은 포함되어 있지 않습니다. 이 역할을 부여할 수 있는 최하위 수준 리소스:
|
|
기본 역할
기본 역할은 필요한 경우에만 사용합니다. 이러한 역할은 높은 권한을 가지며 모든 Google Cloud 서비스에 대해 광범위한 권한을 부여합니다. 기본 역할을 사용하는 경우에 대한 자세한 내용은 기본 역할을 참조하세요.
| 역할 | 설명 | 권한 |
|---|---|---|
roles/owner |
모든 리소스에 대한 전체 액세스 권한입니다. | 모든 리소스에 대한 모든 권한입니다. |
roles/editor |
대부분의 리소스에 대한 수정 액세스 권한입니다. | 대부분의 리소스에 대한 액세스 권한을 생성하고 업데이트합니다. |
roles/viewer |
대부분의 리소스에 대한 읽기 액세스 권한입니다. | 대부분의 리소스에 대한 액세스 권한을 가져오고 나열합니다. |
커스텀 역할 만들기
이 항목에서 설명하는 사전 정의된 역할 외에, 요구사항에 맞게 조정하는 권한 컬렉션인 커스텀 역할을 만들 수도 있습니다. Resource Manager에 사용할 커스텀 역할을 만들 때 다음 사항에 유의하세요.resourcemanager.projects.get/list같은 List 및 get 권한은 항상 쌍으로 부여해야 합니다.- 커스텀 역할에
folders.list및folders.get권한이 있는 경우projects.list및projects.get권한도 있어야 합니다. - 조직, 폴더, 프로젝트 리소스에 대한
setIamPolicy권한이 있는 사용자는 기타 모든 권한을 부여할 수 있으므로 주의해서 할당해야 합니다.
프로젝트 수준의 액세스 제어
Google Cloud console, Cloud Resource Manager API, Google Cloud CLI를 사용해 프로젝트 수준에서 사용자에게 역할을 부여할 수 있습니다. 자세한 내용은 액세스 권한 부여, 변경, 취소를 참조하세요.
기본 역할
프로젝트를 만들면 프로젝트를 완전히 제어할 수 있는 roles/owner 역할이 부여됩니다. 허용 정책에서 이 기본 역할을 변경할 수 있습니다.
VPC 서비스 제어
VPC 서비스 제어는 Cloud Resource Manager API를 사용할 때 추가 보안을 제공할 수 있습니다. VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요.
Resource Manager를 VPC 서비스 제어와 함께 사용할 때의 제한사항을 알아보려면 지원되는 제품 및 제한사항을 참조하세요.