IAM을 사용하여 폴더에 대한 액세스 제어

Google Cloud Platform은 Identity and Access Management(IAM)를 제공하므로 특정 Google Cloud Platform 리소스에 대해 보다 세밀한 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있습니다. IAM은 최소 권한의 보안 원칙을 채택하여 리소스에 대해 필요한 액세스 권한만 부여할 수 있게 해줍니다.

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

이 페이지에서는 액세스 수준에서 사용할 수 있는 Identity and Access Management(IAM) 역할과 Resource Manager API를 사용하여 폴더에 대한 IAM 정책을 만들고 관리하는 방법에 대해 설명합니다. Cloud IAM에 대한 자세한 설명은 IAM 문서를 참조하세요. 특히 액세스 권한 부여, 변경, 취소를 확인하시기 바랍니다.

폴더에 대한 IAM 역할 개요

IAM 역할을 구성하는 데 도움이 되도록 다음 사항이 아래 표에 나와 있습니다.

  • 사용 설정할 작업 유형
  • 해당 작업을 수행하는 데 필요한 역할
  • 해당 역할을 적용해야 하는 리소스 수준
작업 유형 필요 역할 리소스 수준
조직 전반에서 폴더 관리 폴더 관리자 조직
폴더와 폴더에 포함된 모든 프로젝트 및 폴더 관리 폴더 관리자 특정 폴더
폴더 IAM 정책에 액세스 및 관리 폴더 IAM 관리자 특정 폴더
새 폴더 만들기 폴더 생성자 새 폴더 위치의 상위 리소스
폴더 및 프로젝트 이동 폴더 이동자 원래 폴더 위치와 새 폴더 위치 모두의 상위 리소스
새 폴더로 프로젝트 이동 프로젝트 편집자 또는 프로젝트 소유자 원래 프로젝트 위치와 새 프로젝트 위치 모두의 상위 리소스
폴더 삭제 폴더 편집자 또는 폴더 관리자 특정 폴더

폴더와 함께 IAM 역할 및 권한 사용 시의 권장 사항

폴더에 사용할 IAM 역할 및 권한을 할당할 때 다음 사항에 유의하세요.

  • 가능하면 그룹을 사용하여 구성원을 관리합니다.
  • 소유자, 편집자, 뷰어 같은 기본 역할의 사용을 최소화합니다. 대신 최소 권한 원칙에 사전 정의된 역할을 사용합니다.
  • 폴더 전체 관리를 위해 폴더 수준에서 권한을 할당하고 프로젝트가 해당 권한을 자동으로 상속하도록 합니다. 예를 들어 부서 관리자 그룹에 폴더에 대한 폴더 관리자 역할을 할당할 수 있습니다. 부서 전체 권한이 필요한 네트워크 관리자에게 폴더에 대한 네트워크 관리자 역할을 부여할 수 있습니다.
  • 리소스를 폴더 외부로 이동하기 전에 변경될 수 있는 권한을 신중하게 고려합니다. 그렇지 않으면 해당 리소스에 대한 권한이 필요한 기존 앱 또는 워크플로가 중단될 위험이 있습니다.
  • 폴더 아래의 프로덕션 프로젝트를 이동하기 전에 리소스 계층 구조를 신중하게 계획하고 테스트합니다. 이를 위해서는 조직 리소스 아래 테스트 폴더를 만들고 계획한 계층 구조의 프로토타입을 미리 만들어야 합니다.

폴더 역할 및 권한 이해하기

기본 역할

폴더를 만들 때 생성자로서 완벽하게 제어할 수 있도록 폴더에 대해 폴더 관리자 또는 폴더 편집자 역할을 부여받게 됩니다. 아래에서 이러한 역할이 제공하는 권한을 자세히 알아보세요. 이러한 기본 역할은 Cloud IAM 정책에서 정상적으로 변경될 수 있습니다.

폴더 관리자 역할

폴더 관리자 역할에는 이용 가능한 폴더 권한이 모두 있습니다.

다음과 같은 권한을 부여합니다.

orgpolicy.policy.get 리소스에 대한 조직 정책을 가져올 수 있는 권한
resourcemanager.folders.get 소스 또는 대상 폴더를 가져올 수 있는 권한
resourcemanager.folders.create 폴더를 만들 수 있는 권한
resourcemanager.folders.list 리소스에 속한 폴더를 나열할 수 있는 권한
resourcemanager.folders.move 폴더를 리소스 안팎으로 이동할 수 있는 권한
resourcemanager.folders.update 폴더 이름을 업데이트할 수 있는 권한
resourcemanager.folders.delete 폴더를 삭제할 수 있는 권한
resourcemanager.folders.undelete 폴더를 삭제 취소할 수 있는 권한
resourcemanager.folders.getIamPolicy 폴더의 IAM 정책을 가져올 수 있는 권한
resourcemanager.folders.setIamPolicy 폴더의 IAM 정책을 설정할 수 있는 권한
resourcemanager.projects.get 프로젝트를 가져올 수 있는 권한
resourcemanager.projects.list 리소스에 속한 프로젝트를 나열할 수 있는 권한
resourcemanager.projects.move 프로젝트를 리소스 안팎으로 이동할 수 있는 권한
resourcemanager.projects.getIamPolicy 프로젝트의 IAM 정책을 가져올 수 있는 권한
resourcemanager.projects.setIamPolicy 프로젝트의 IAM 정책을 설정할 수 있는 권한

폴더 IAM 관리자 역할

폴더 IAM 관리자 역할이 있는 사용자는 폴더에 대한 IAM 정책을 관리할 수 있습니다.

다음과 같은 권한을 부여합니다.

resourcemanager.folders.get 소스 또는 대상 폴더를 가져올 수 있는 권한
resourcemanager.folders.getIamPolicy 폴더의 IAM 정책을 가져올 수 있는 권한
resourcemanager.folders.setIamPolicy 폴더의 IAM 정책을 설정할 수 있는 권한

폴더 생성자 역할

폴더 생성자 역할은 계층 구조를 찾아보고 폴더를 만드는 데 필요한 권한을 부여합니다.

다음과 같은 권한을 부여합니다.

orgpolicy.policy.get 리소스에 대한 조직 정책을 가져올 수 있는 권한
resourcemanager.folders.get 폴더를 가져올 수 있는 권한
resourcemanager.folders.list 리소스에 속한 폴더를 나열할 수 있는 권한
resourcemanager.folders.create 폴더를 만들 수 있는 권한
resourcemanager.projects.get 프로젝트를 가져올 수 있는 권한
resourcemanager.projects.list 리소스에 속한 프로젝트를 나열할 수 있는 권한

폴더 편집자 역할

폴더 편집자 역할은 폴더를 수정하고 폴더의 IAM 정책을 볼 수 있는 권한을 부여합니다.

다음과 같은 권한을 부여합니다.

orgpolicy.policy.get 리소스에 대한 조직 정책을 가져올 수 있는 권한
resourcemanager.folders.get 폴더를 가져올 수 있는 권한
resourcemanager.folders.list 리소스에 속한 폴더를 나열할 수 있는 권한
resourcemanager.folders.update 폴더 이름을 업데이트할 수 있는 권한
resourcemanager.folders.delete 폴더를 삭제할 수 있는 권한
resourcemanager.folders.undelete 폴더를 삭제 취소할 수 있는 권한
resourcemanager.folders.getIamPolicy 폴더에 설정된 IAM 정책을 가져올 수 있는 권한
resourcemanager.projects.get 프로젝트를 가져올 수 있는 권한
resourcemanager.projects.list 리소스에 속한 프로젝트를 나열할 수 있는 권한

폴더 이동자 역할

폴더 이동자 역할은 프로젝트와 폴더를 상위 조직 또는 폴더 안팎으로 이동할 수 있는 권한을 부여합니다.

다음과 같은 권한을 부여합니다.

resourcemanager.folders.move 폴더를 리소스 안팎으로 이동할 수 있는 권한
resourcemanager.projects.move 프로젝트를 리소스 안팎으로 이동할 수 있는 권한

폴더 뷰어 역할

폴더 뷰어 역할은 폴더를 가져오고 리소스에 속한 폴더 및 프로젝트를 나열할 수 있는 권한을 부여합니다.

다음과 같은 권한을 부여합니다.

orgpolicy.policy.get 리소스에 대한 조직 정책을 가져올 수 있는 권한
resourcemanager.folders.get 소스 또는 대상 폴더를 가져올 수 있는 권한
resourcemanager.folders.list 리소스에 속한 폴더를 나열할 수 있는 권한
resourcemanager.projects.get 프로젝트를 가져올 수 있는 권한
resourcemanager.projects.list 리소스에 속한 프로젝트를 나열할 수 있는 권한

커스텀 역할 만들기

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

폴더 찾아보기를 사용 설정할 수 있는 역할 부여

나열하기 권한은 폴더 찾아보기를 사용 설정합니다. 일반적으로 부여해야 하는 두 가지 유형의 나열하기 권한은 사용자가 리소스에 속한 폴더를 나열할 수 있는 resourcemanager.folders.list와 사용자가 조직 또는 폴더에 속한 프로젝트를 찾아볼 수 있는 resourcemanager.projects.list입니다. 조직 관리자는 이러한 두 가지 권한으로 초기화됩니다. 조직 관리자 역할을 부여받지 않은 사용자의 경우 다음 사항에 유의하세요.

  • resourcemanager.folders.list폴더 뷰어폴더 편집자 역할을 통해 부여됩니다.
  • resourcemanager.projects.list뷰어 또는 브라우저 역할을 통해 부여됩니다.

조직 구성원이 전체 조직 계층 구조를 찾아보려면 조직 수준의 나열 권한을 부여받아야 합니다.

폴더 생성을 사용 설정할 수 있는 역할 부여

폴더를 만들어야 하는 사용자에게는 계층 구조에서 폴더가 생성되는 수준 상위의 리소스에 대해 폴더 생성자 역할을 부여해야 합니다. 폴더 생성 권한과 함께 찾아보기 권한을 부여하면 사용자가 계층 구조에서 폴더가 생성되는 위치로 효과적으로 이동할 수 있습니다. 찾아보기 권한에 대한 자세한 내용은 위 섹션을 참조하세요.

폴더 생성자는 사용자에게 폴더를 삭제할 수 있는 권한을 부여하지 않습니다. 그러나 사용자가 폴더를 만들 때 해당 사용자에게 폴더 편집자 역할이 자동으로 부여됩니다. 폴더 편집자 역할은 폴더 삭제를 사용 설정합니다.

폴더 이동을 사용 설정할 수 있는 역할 부여

폴더를 상위 리소스에서 다른 상위 리소스로 이동하려면 이전 상위 리소스와 새 상위 리소스 모두 또는 공통된 상위 리소스에 대해 폴더 이동자 역할이 있어야 합니다.

프로젝트 이동을 사용 설정할 수 있는 역할 부여

프로젝트를 폴더로 이동하려면 프로젝트에 대한 프로젝트 편집자 또는 프로젝트 소유자 역할과 소스 및 대상 상위 리소스에 대한 프로젝트 이동자 역할이 있어야 합니다.

이는 조직 소유가 아닌 프로젝트를 조직으로 이동하기 위한 요구사항, 즉 프로젝트에 대한 프로젝트 편집자 또는 프로젝트 생성자 역할과 조직에 대한 프로젝트 생성자 역할이 있어야 한다는 요구사항과는 약간 다릅니다.

폴더 생성을 사용 설정할 수 있는 폴더별 역할 부여

프로젝트를 만들려면 프로젝트 생성자 역할이 있어야 합니다. 그러나 조직 전체에서 프로젝트 생성 권한을 부여하는 대신 지정된 폴더의 프로젝트만 보고 만들 수 있도록 사용자를 제한하는 것이 도움이 될 수 있습니다.

조직별 권한을 부여하는 방법은 다음과 같습니다.

  1. 조직 노드 수준에서 사용자에게 조직 뷰어 역할을 부여합니다(예: domain.com).
  2. 새 폴더를 만듭니다.
  3. 사용자를 폴더 수준에서 IAM에 추가하고 폴더 뷰어프로젝트 생성자 역할을 부여합니다.

이렇게 하면 사용자가 더 큰 조직의 모든 프로젝트에 대한 가시성을 부여받지 않고도 폴더에서 프로젝트를 만들 수 있습니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Resource Manager 문서