IAM으로 프로젝트 액세스 제어

Google Cloud에서는 Identity and Access Management(IAM)를 제공하므로 구체적인 Google Cloud 리소스에 더욱 세분화된 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있습니다. IAM은 보안 최소 권한의 원칙을 채택하여 리소스에 대해 필요한 액세스 권한만 부여할 수 있게 해줍니다.

IAM을 사용하면 특정 권한이 포함된 특정 역할을 부여하는 IAM 정책을 설정하여 누가(사용자) 어떤 리소스에 대한 어떤 액세스 권한(역할)을 갖는지 제어할 수 있습니다.

이 페이지에서는 프로젝트에 대한 액세스를 관리하는 데 사용할 수 있는 IAM 권한 및 역할을 설명합니다. IAM에 대한 자세한 내용은 IAM 문서를 참조하세요. 특히 액세스 권한 부여, 변경, 취소를 확인하시기 바랍니다.

권한 및 역할

리소스에 대한 액세스 권한을 제어하려면 API 요청을 보내는 Google Cloud 계정에 적절한 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 역할을 사용하면 사용자가 액세스할 수 있는 권한 집합을 세심하게 관리할 수 있습니다. 프로젝트 수준에서 부여할 수 있는 역할의 전체 목록은 역할 이해를 참조하세요.

다음 표에는 프로젝트에 대한 액세스 권한을 부여하는 데 사용할 수 있는 사전 정의된 역할이 나열되어 있습니다. 각 역할에는 역할에 대한 설명과 역할에 포함된 권한에 대한 설명이 포함되어 있습니다.

역할 권한

(roles/resourcemanager.projectCreator)

새 프로젝트를 만들 수 있는 액세스 권한을 제공합니다. 사용자가 프로젝트를 만들면 사용자에게 해당 프로젝트의 소유자 역할이 자동으로 부여됩니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 폴더

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Google Cloud 프로젝트를 삭제할 수 있는 액세스 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 폴더

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

프로젝트를 업데이트하고 이동할 수 있는 액세스 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 프로젝트

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

프로젝트 수준에서 허용 정책을 관리할 수 있는 권한을 제공합니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 프로젝트

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.setIamPolicy

(roles/browser)

폴더, 조직, 허용 정책을 포함한 프로젝트 계층 구조를 탐색할 수 있는 읽기 액세스 권한입니다. 프로젝트의 리소스를 볼 수 있는 권한은 포함되어 있지 않습니다.

이 역할을 부여할 수 있는 최하위 수준 리소스:

  • 프로젝트

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

기본 역할

꼭 필요한 경우가 아니라면 기본 역할은 사용하지 마세요. 기본 역할은 매우 강력하며, Google Cloud 서비스 전체에 걸쳐 아주 많은 권한을 포함합니다. 기본 역할을 사용해야 하는 경우에 대한 자세한 내용은 기본 역할을 참조하세요.

역할 설명 권한
roles/owner 모든 리소스에 대한 전체 액세스 권한입니다. 모든 리소스에 대한 모든 권한입니다.
roles/editor 대부분의 리소스에 대한 수정 액세스 권한입니다. 대부분의 리소스에 대한 액세스 권한을 생성하고 업데이트합니다.
roles/viewer 대부분의 리소스에 대한 읽기 액세스 권한입니다. 대부분의 리소스에 대한 액세스 권한을 가져오고 나열합니다.

커스텀 역할 만들기

이 항목에서 설명하는 사전 정의된 역할 외에, 요구사항에 맞게 조정하는 권한 컬렉션인 커스텀 역할을 만들 수도 있습니다. Resource Manager에 사용할 커스텀 역할을 만들 때 다음 사항에 유의하세요.
  • resourcemanager.projects.get/list 같은 List 및 get 권한은 항상 쌍으로 부여해야 합니다.
  • 커스텀 역할에 folders.listfolders.get 권한이 있는 경우 projects.listprojects.get 권한도 있어야 합니다.
  • 조직, 폴더, 프로젝트 리소스에 대한 setIamPolicy 권한이 있는 사용자는 기타 모든 권한을 부여할 수 있으므로 주의해서 할당해야 합니다.

프로젝트 수준의 액세스 제어

Google Cloud 콘솔, Cloud Resource Manager API, Google Cloud CLI를 사용해 프로젝트 수준에서 사용자에게 역할을 부여할 수 있습니다. 자세한 내용은 액세스 권한 부여, 변경, 취소를 참조하세요.

기본 역할

프로젝트를 만들면 생성자로서 완벽하게 제어할 수 있도록 역할/소유자 역할이 부여됩니다. 이 기본 역할은 IAM 정책에서 정상적으로 변경될 수 있습니다.

VPC 서비스 제어

VPC 서비스 제어는 Cloud Resource Manager API를 사용할 때 추가 보안을 제공할 수 있습니다. VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요.

Resource Manager를 VPC 서비스 제어와 함께 사용할 때의 제한사항을 알아보려면 지원되는 제품 및 제한사항을 참조하세요.