IAM으로 조직 리소스 액세스 제어

Google Cloud 는 특정 Google Cloud 리소스에 대한 세부적인 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있는 Identity and Access Management (IAM)를 제공합니다. IAM을 사용하면 최소 권한의 보안 원칙을 적용하여 필요한 리소스에 대한 액세스 권한만 부여할 수 있습니다.

IAM을 사용하면 허용 정책을 설정하여 어떠한 리소스에 대해 누구 (사용자)에게 어떠한 액세스 권한 (역할)이 있는지 제어할 수 있습니다. 허용 정책은 사용자에게 특정 역할을 부여하여 특정 권한을 부여합니다.

이 페이지에서는 조직 리소스에서 사용할 수 있는 IAM 역할과 Cloud Resource Manager API를 사용하여 조직 리소스의 허용 정책을 만들고 관리하는 방법을 설명합니다. 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

권한 및 역할

리소스에 대한 액세스 권한을 제어하려면 Google Cloud API 요청을 보내는 계정에 적절한 IAM 역할이 있어야 합니다. IAM 역할에는 사용자가Google Cloud 리소스에서 특정 작업을 수행할 수 있도록 허용하는 권한이 포함되어 있습니다. 예를 들어 resourcemanager.organizations.get 권한이 있는 사용자는 조직 리소스에 대한 세부정보를 가져올 수 있습니다.

사용자에게 권한을 직접 부여하는 대신 하나 이상의 권한이 번들로 포함된 역할을 부여합니다.

동일한 리소스에 하나 이상의 역할을 부여할 수 있습니다.

사전 정의된 역할 사용

다음 표에는 조직 리소스의 속성에 액세스하기 위해 부여할 수 있는 역할, 각 역할에 대한 설명, 각 역할에 포함된 권한이 나와 있습니다.

역할 권한

(roles/resourcemanager.organizationAdmin)

IAM 정책을 관리하고 조직, 폴더, 프로젝트의 조직 정책을 확인할 수 있는 액세스 권한입니다.

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

  • 프로젝트

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

resourcemanager.organizations.*

  • resourcemanager.organizations.createPolicyBinding
  • resourcemanager.organizations.deletePolicyBinding
  • resourcemanager.organizations.get
  • resourcemanager.organizations.getIamPolicy
  • resourcemanager.organizations.searchPolicyBindings
  • resourcemanager.organizations.setIamPolicy
  • resourcemanager.organizations.updatePolicyBinding

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.organizationViewer)

조직을 볼 수 있는 액세스 권한을 제공합니다.

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

  • 조직

resourcemanager.organizations.get

(roles/orgpolicy.policyAdmin)

조직 정책을 설정하여 조직에서 클라우드 리소스 구성에 적용하려는 제한사항을 정의할 수 있는 액세스 권한을 제공합니다.

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

  • 조직

cloudasset.assets.analyzeOrgPolicy

cloudasset.assets.exportResource

cloudasset.assets.listResource

cloudasset.assets.searchAllResources

orgpolicy.*

  • orgpolicy.constraints.list
  • orgpolicy.customConstraints.create
  • orgpolicy.customConstraints.delete
  • orgpolicy.customConstraints.get
  • orgpolicy.customConstraints.list
  • orgpolicy.customConstraints.update
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

policysimulator.orgPolicyViolations.list

policysimulator.orgPolicyViolationsPreviews.*

  • policysimulator.orgPolicyViolationsPreviews.create
  • policysimulator.orgPolicyViolationsPreviews.get
  • policysimulator.orgPolicyViolationsPreviews.list

recommender.orgPolicyInsights.*

  • recommender.orgPolicyInsights.get
  • recommender.orgPolicyInsights.list
  • recommender.orgPolicyInsights.update

recommender.orgPolicyRecommendations.*

  • recommender.orgPolicyRecommendations.get
  • recommender.orgPolicyRecommendations.list
  • recommender.orgPolicyRecommendations.update

(roles/browser)

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

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

  • 프로젝트

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

커스텀 역할 만들기

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

조직 리소스에 대한 기존 액세스 보기

리소스의 허용 정책을 가져와서 조직 리소스의 사용자에게 부여된 역할을 볼 수 있습니다. Google Cloud 콘솔, Google Cloud CLI 또는 getIamPolicy() 메서드를 사용하여 조직 리소스의 허용 정책을 볼 수 있습니다.

콘솔

Google Cloud 콘솔을 사용하여 조직 리소스 수준에서 부여된 역할을 보려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리 페이지 열기

  2. 조직 드롭다운 메뉴에서 조직 리소스를 선택합니다.

  3. 조직 리소스의 체크박스를 선택합니다.

  4. 정보 패널권한에서 역할을 펼치기하여 해당 역할이 있는 모든 구성원을 표시합니다.

gcloud

get-iam-policy 명령어를 사용하여 조직 리소스의 허용 정책을 가져옵니다.

gcloud alpha organizations get-iam-policy <var>ORGANIZATION_ID</var> --format json >
<var>FILENAME.JSON</var>

이 명령어는 다음과 유사한 허용 정책을 출력합니다.

bindings:
- members:
- user:testuser1@gcp-test.com
role: roles/editor
-