[GCP]GCP 에서 조직(Organization) 활용하기 3부 — 조직 정책
안녕하세요 이정운 입니다.
지난 1부와 2부 이야기에서는 G Suite 없이 Cloud Identity 를 활용하여 조직을 구성해보고 기존 프로젝트 마이그레이션 및 폴더 구성까지 해보면서 조직을 어떻게 구성해서 사용해야 하는지 살펴봤습니다.
GCP 에서 조직(Organization) 활용하기 1부 — Cloud Identity
GCP 에서 조직(Organization) 활용하기 2부 — 조직 마이그레이션
리소스 계층 구조
https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy?hl=ko
이번 3부에서는는 이를 활용하여 조직을 사용할 경우에 어떠한 이점을 가질 수 있는지 살펴보고자 합니다. 예를들어, 조직 구성이 설정되어 있으면 프로젝트가 프로젝트를 만든 직원이 아니라 조직에 속하게 되며 직원이 퇴사해도 프로젝트가 더 이상 삭제되지 않으며 Google Cloud 에서 조직의 수명 주기를 따르게 됩니다. 또한, 조직 관리자는 모든 리소스를 중앙에서 제어할 수 있습니다. 이처럼 조직을 사용하게 되면 기업에서 여러 프로젝트를 활용할 경우에 다양한 이점을 가지고 있습니다.
그럼 실제 테스트를 통해서 조직이 어떠한 장점을 가지고 있는지 직접 테스트해볼까요?
#1) 조직 권한 관리
조직 관리자는 모든 리소스를 중앙에서 제어할 수 있습니다. 이를 통해서 회사의 모든 프로젝트를 체크하거나 관리할 수 있으며 조직 자원의 모든 프로젝트 및 폴더에 상속되는 역할을 조직 수준에서 부여할 수 있습니다. 예를 들어 조직 수준에서 네트워크 관리자 역할을 네트워킹팀에 부여할 수 있습니다. 그러면 모든 개별 프로젝트에 대한 역할을 부여하지 않고도 회사의 모든 프로젝트에서 모든 네트워크를 관리하도록 할 수 있습니다.
먼저 사용자 추가를 위해서 GCP 관리콘솔에서 “IAM 및 관리자 > ID 및 조직” 메뉴로 들어갑니다. 그리고 하단에 있는 사용자 관리 버튼을 클릭합니다.
그러면 Cloud Identity 의 관리자 메뉴로 직접 접속 가능하고 Cloud Identity 에 등록된 사용자를 확인할 수 있습니다. 여기서 새로운 사용자를 추가하기 위해서 “새 사용자 추가” 버튼을 클릭합니다.
추가 하려는 사용자 성, 이름, 이메일 주소등을 넣고 ‘새 사용자 추가’ 버튼을 클릭하여 완료합니다.
정상적으로 새로운 사용자가 추가되면 하단과 같은 메시지를 확인할 수 있습니다.
일정 시간 이후에(약 5분정도) 조직으로 설정된 GCP 의 관리콘솔의 “IAM 및 관리자 > IAM” 메뉴에서 새롭게 추가된 사용자에게 권한을 부여해 줍니다. 여기서는 예시로 “프로젝트 뷰어, 네트워크 관리자” 권한을 할당해 줍니다.
이렇게 권한을 부여해주면 새롭게 추가된 사용자는(ilsoo@freejava.shop) 기존 프로젝트에(‘org-test-gmail01’) 뷰어 권한으로 접속 가능하며 네트워크 관리자이기 때문에 ‘Shared VPC’ 메뉴에는 관리자 권한을 가지게 됩니다. 그러므로 하단과 같이 새로운 Shared VPC 를 생성하는 메뉴가 enable 된 것을 확인 가능합니다.
그러나 해당 사용자는 나머지 권한에 대해서는 ‘프로젝트 뷰어’ 권한을 가지고 있기 때문에 다른 자원에 한해서는 하단과 같이 보기만 가능할뿐 생성이나 수정 메뉴는 disable 된 것을 확인할 수 있습니다.
#2) 조직 정책 서비스
조직 정책 서비스는 조직의 클라우드 리소스를 중앙에서 프로그래매틱 방식으로 제어할 수 있는 기능을 제공합니다. 조직 정책 관리자는 전체 리소스 계층 구조에 대한 제한사항을 구성할 수 있습니다.
조직 정책 서비스 소개
https://cloud.google.com/resource-manager/docs/organization-policy/overview?hl=ko
이 기능을 테스트 해보기 위하여 GCP 관리콘솔의 “IAM 및 관리자 > IAM” 메뉴에서 특정 사용자에게 ‘조직 정책 관리자’ 권한을 부여합니다.
‘조직 정책 관리자’ 권한이 있다면 하단과 같은 조직 정책을 확인할 수 있으며 필요시 해당 정책의 수정이 가능합니다.
상단에서 공유한 공식 링크에도 언급이 되어있지만 조직 정책 서비스를 사용하게 되면 하단과 같은 이점을 누릴 수 있습니다.
- 조직의 리소스 사용 방법에 대한 제한사항 구성을 중앙에서 제어합니다.
- 개발팀이 규정을 준수할 수 있도록 가드레일을 정의하고 설정합니다.
- 프로젝트 소유자와 해당 팀에서 규정을 위반하지 않고 신속하게 이동할 수 있도록 지원합니다.
해당 기능이 이전에 언급한 IAM 과 헷갈릴 수 있는데 공식 링크에 설명된 하단의 내용을 참고하시기 바라겠습니다.
“Cloud Identity and Access Management는 누구에 중점을 두며 이를 통해 관리자는 권한을 기반으로 특정 리소스에 조치를 취할 수 있는 사용자를 승인할 수 있습니다. 조직 정책은 무엇에 중점을 두며 이를 통해 관리자는 구성 방법을 결정하기 위해 특정 리소스에 대한 제한사항을 설정할 수 있습니다. 조직 정책은 제한사항의 구성입니다. 조직 정책 관리자는 조직 정책을 정의하고 리소스 계층 구조 노드에서 해당 조직 정책을 설정하여 해당 리소스 계층 구조 노드 및 그 하위 항목에 제한사항을 시행합니다.”
예를 들어, 조직 정책중에 ‘Cloud SQL 인스턴스의 공개 IP 액세스 제한’ 이라는 정책을 클릭하면 하단과 같은 세부 설명을 참고할 수 있습니다.
조직 정책 서비스의 경우 기본값이 ‘사용 안함’ 임으로 테스트를 위하여 이를 ‘사용’으로 변경합니다.
이후, 하단과 같이 Cloud SQL 생성을 시도해보면 조직 정책 서비스가 적용되어 ‘인스턴스 연결 유형’에 ‘공개IP’ 사용이 제한되고 ‘비공개 IP’ 만 설정할 수 있는 것을 확인 할 수 있습니다.
GCP 에는 이와 조직 정책 제약조건을 다양하게 보유하고 있으며 그 리스트는 하단의 링크에서 참고하실 수 있습니다.
조직 정책 제약조건
https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints
#3) 리소스 위치 제한
추가적으로 조직 정책 서비스 중에 ‘리소스 위치 제한’ 기능이 새롭게 소개 되었습니다. 해당 기능은 이름에서 알 수 있듯이 Google cloud 의 자원에 대한 리전 위치를 제한할 수 있는 조직 정책 서비스 입니다. 예를 들어, in:us-locations 과 같은 조건을 추가하게 되면 조직내의 사용자는 Google cloud 의 자원을 배포할 때 미국에 위치한 리전에 대해서만 자원을 배포할 수 있습니다. (필요시, 특정한 영역이나 리전에 대해서 명시 가능)
리소스 위치 제한
https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations?hl=ko
간단하게 예제를 가지고 리소스 위치 제한을 테스트 해보도록 하겠습니다. 조직 정책 메뉴에서 하단과 같이 “Google Cloud Platform — 리소스 위치 제한” 을 클릭하면 상세 정보를 확인할 수 있습니다.
Edit 를 눌러서 수정 메뉴로 들어가면 커스텀 정책을 만들수 있고 허용 부분에 원하시는 조건을 넣어주시면 됩니다. 이번 샘플에서는 ‘in:asia-northeast3-locations’ 를 입력합니다. 이름에서 알 수 있겠지만 리소스 위치를 asia-northeast3, 즉 서울 리전으로만 한정하는 정책을 만드신 것입니다.
조직 정책에서 리소스 제한 정책을 만든 후에 실제 프로젝트에 들어와서 간단하게 GCE 를 만드는 테스트를 수행합니다. 이때, 서울 리전이 아닌 다른 리전을 선택하시면 됩니다.
서울 리전이 아닌 다른 리전을 선택해서 GCE 를 만드는 경우 하단과 같이 정책을 위반했다는 메시지와 함께 GCE 가 생성되지 않는 것을 확인하실 수 있습니다.
여기까지 잘 따라오셨다면 조직 권한 관리나 조직 정책 서비스에 대해서 간단하게 내용을 살펴보고 실제 테스트를 통해서 해당 기능이 어떤 역할을 하는지 잘 느끼셨을거라 생각합니다. 내용은 간단하지만 해당 기능을 잘 활용하시면 조직에서 대규모의 Google cloud 자원 활용을 보다 더 쉽고 안전하게 제어하실 수 있습니다. 그럼 이번 이야기는 여기서 마무리하고 다음에 다른 이야기를 들고 다시 돌아오겠습니다. 휘리릭~~~
Disclaimer: 본 글의 작성자는 Google 직원이지만 Google cloud 를 공부하는 한 개인으로서 작성된 글입니다. 본 글의 내용, 입장은 Google 을 대변하지 않으며 Google 이 해당 콘텐츠를 보장하지 않습니다.
참고 자료 #1
리소스 계층 구조
https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy?hl=ko
조직 정책 서비스 소개
https://cloud.google.com/resource-manager/docs/organization-policy/overview?hl=ko
조직 정책 제약조건
https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints
리소스 위치 제한
https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations?hl=ko