Identity & Security

OCI 테넌시(계정) 생성 후 테넌시 설정을 위한 모범 사례 알아보기

OCI 테넌시를 생성한 후 몇 가지 기본 설정 작업을 수행하고, 클라우드 리소스 및 사용자에 대한 조직 계획을 수립하는 작업이 필요한데, 이에 대해 설명합니다.

계획 수립

OCI 테넌시 생성 후 바로 사용자와 리소스를 추가하기 전에 테넌시 설정에 대한 기본 계획을 수립할 필요가 있습니다. 테넌시 설정 계획에는 다음 두 가지 내용이 포함되어야 합니다.

  • 구획(Compartment)
  • 누가 어떤 리소스에 접근해야 하는지를 고려

구획(Compartment)

구획은 클라우드 리소스를 구성하는 데 사용하는 기본 빌딩 블록입니다. 구획을 사용하면 리소스를 보다 쉽게 ​​관리할 수 있고, 리소스에 대한 접근을 보호할 수 있도록 격리할 수 있습니다.

테넌시가 프로비저닝되면 기본적으로 루트 구획이 생성됩니다. 루트 구획은 파일 시스템의 루트 폴더와 같다고 볼 수 있습니다. OCI 콘솔에 처음 로그인 하고 특정 서비스를 선택하면 왼쪽에 루트 구획이 기본 표시됩니다.

루트 구획 아래 하위 구획을 만들어 리소스 관리 목적에 맞게 클라우드 리소스를 구성할 수 있습니다. 예를 들면 조직내 그룹별로 구획을 구성하거나, 프로젝트나 제품별로 구획을 구성할 수 있습니다. 또한 구획을 생성할 때 특정 사용자 그룹이 특정 구획의 리소스에 대해 수행할 수 있는 작업을 지정하기 위한 정책을 생성하여 구획에 대한 액세스를 제어할 수 있습니다.

구획 생성을 할 때 유의할 사항입니다.

  • 리소스(예: 블록 스토리지 볼륨, VCN, 서브넷)를 생성할 때 리소스를 넣을 구획을 결정해야 합니다.
  • 구획은 논리적으로 리소스들을 구분하기 위한 공간이므로, 연관된 다른 리소스 구성 요소를 서로 다른 구획에 배치할 수 있습니다. 예를 들어 특정 구획에 있는 VCN(가상 클라우드 네트워크)내의 서브넷 중에서 인터넷 게이트웨이에 액세스할 수 있는 서브넷만 별도의 다른 구획에 구성하는 경우가 있을 수 있습니다.
  • 루트 구획하위에 최대 6개 계층까지 하위 구획을 구성할 수 있습니다.
  • 리소스에 대한 사용자 접근 권한 부여를 위한 정책을 작성할 때 항상 정책을 적용할 구획을 지정합니다. 따라서 여러 구획에 리소스를 배포해야 하고 배포된 리소스에 접근해야 한다면, 사용자에게 각 구획에 접근할 수 있는 적절한 권한을 제공해야 한다는 점을 기억해야 합니다.
  • OCI 콘솔에서 구획은 리소스에 대한 필터처럼 동작합니다. 구획을 선택하면 선택한 구획에 있는 리소스만 나열됩니다. 또한 검색 기능을 사용하여 여러 구획의 리소스 목록을 가져올 수 있습니다.
  • 테넌시 탐색기를 사용하여 특정 구획에 있는 모든 리소스(여러 리전에 걸쳐서)를 전체적으로 볼 수 있습니다. 구획의 모든 리소스 보기를 참조하세요.
  • 구획을 삭제하려면 먼저 구획의 모든 리소스를 삭제해야 합니다.
  • 마지막으로 구획을 계획할 때 사용량 및 감사 데이터 집계 방식에 대해서도 고려해야 합니다.

누가 어떤 리소스에 접근해야 하는지를 고려

테넌시 설정을 계획할 때 또 다른 주요 고려 사항은 누가 어떤 리소스에 접근해야 하는지입니다. 사용자 그룹을 통한 리소스 접근 방법을 정의하면, 리소스를 효율적으로 구성하는 방법을 계획하는데 도움이 되고, 정책을 더 쉽게 작성하고 유지 관리할 수 있습니다.

예를 들어서 다음 작업을 수행해야 하는 사용자 그룹이 있을 수 있습니다.

  • OCI 콘솔에서 생성된 리소스를 볼 수 있지만, 리소스를 편집하거나 생성할 수 없는 그룹
  • 여러 구획에서 특정 리소스 생성 및 업데이트할 수 있는 그룹 (VCN 및 서브넷을 관리해야 하는 네트워크 관리자)
  • 인스턴스와 볼륨을 시작 및 관리할 수 있지만, 네트워크 관련 리소스에는 접근할 수 없는 그룹
  • 모든 리소스를 관리할 수 있지만, 특정 구획 안에서만 가능한 그룹
  • 다른 사용자에 대한 권한과 자격증명에 대한 관리만 가능한 그룹

구획 구성 예시

모든 리소스를 루트 구획에 구성

만일 조직이 작거나 테스트 용도로 OCI 테넌시를 사용하는 경우라면, 모든 리소스를 루트 구획에 배치하는 것을 고려할 수 있습니다. 이렇게 구성하면 모든 리소스를 빠르게 보고 관리할 수 있습니다. 물론 루트 구획에 모든 리소스가 있더라도, 정책과 그룹을 통해 액세스가 필요한 사용자에게만 특정 리소스에 대한 권한을 제한할 수 있습니다.

테스트를 위해 루트 구획에서 리소스를 구성할 수도 있지만, 오라클은 특정 사용자에게 특정 기능을 시험해 볼 수 있는 전용 샌드박스 구획을 설정할 것을 권장합니다. 샌드박스 구획에서는 루트 구획보다 좀 더 엄격한 권한을 유지하면서 리소스를 생성 및 관리할 수 있는 권한을 사용자에게 부여할 수 있습니다. OCI에서 샌드박스 구획과 정책, 사용자 관리하는 방법은 OCI에서 사용자, 그룹, 정책 관리하기를 참고하세요.

회사 프로젝트에 맞게 구획 만들기

회사에 개별적으로 관리하려는 여러 부서가 있거나 별도로 관리하기 위한 여러 개별 프로젝트가 있는 경우 이 접근 방식을 고려합니다.

이 접근 방식에서는 해당 프로젝트에 대한 액세스 정책을 설정할 수 있는 각 구획(프로젝트)에 대한 전용 관리자 그룹을 추가합니다. 하나의 특정 구획내에서만 모든 리소스를 관리할 수 있는 권한(루트 구획이나 다른 프로젝트 구획에서의 리소스 관리 권한은 허용 안함)을 부여하면, 마치 별도의 클라우드 (sub-clouds) 영역을 가진 것처럼 독립적으로 관리할 수 있습니다.

다음은 여러개의 프로젝트 구획으로 구성하기 위한 작업 예시입니다.

  1. 루트 구획 하위에 각 프로젝트(예: ProjectA, ProjectB)에 대한 구획을 생성합니다.
  2. ProjectA_Admins와 같이 각 프로젝트에 대한 관리자 그룹을 생성합니다.
  3. 각 관리자 그룹에 대한 정책을 만듭니다.
    • 예시
      Allow group ProjectA_Admins to manage all-resources in compartment ProjectA)
      
  4. 사용자를 해당 그룹에 추가합니다. 사용자 추가는 OCI에서 사용자, 그룹, 정책 관리하기를 참고합니다.
  5. ProjectA 및 ProjectB의 관리자는 리소스를 관리하기 위해 지정된 구획 내에 하위 구획을 생성할 수 있습니다.
  6. ProjectA 및 ProjectB의 관리자가 해당 구획에 대한 액세스를 관리하는 정책을 생성하도록 합니다.

보안 요구 사항에 맞게 구획 만들기

특정 구획에 오라클에서 제공하는 강력한 보안 정책들(보안 영역 레시피)을 적용하여 보안 영역(Security Zone)을 구성할 수 있습니다. 보안 영역에 대한 자세한 설명은 아래 공식 문서를 참고합니다.

보안 영역(Security Zone)

회사에 다른 수준의 보안이 필요한 프로젝트나 애플리케이션이 있는 경우 이 접근 방식을 고려할 수 있습니다.

보안 영역에서 리소스를 생성 및 업데이트할 때 OCI는 보안 영역 레시피의 정책을 통해 해당 작업을 검증하는데, 만약 보안 영역 정책을 위반하면 작업이 거부됩니다. 기본적으로 모든 보안 영역으로 구성된 구획의 하위 구획도 동일한 보안 영역에 놓이게 됩니다.

보안 영역의 정책에는 다음과 같은 내용이 기본 포함됩니다.

  • 보안 영역의 데이터는 보안 영역이 아닌 다른 구획으로 복사할 수 없습니다.
  • 보안 영역의 리소스는 공용 인터넷에서 액세스 할 수 없어야 합니다.
  • 보안 영역의 리소스는 오라클에서 승인한 구성 및 템플릿만 사용해야 합니다.

이 접근 방식에서는 최대 보안 아키텍처 및 모범 사례를 준수해야 하는 프로젝트에 대한 구획 및 보안 영역을 따로 만들어야 합니다. 이 수준의 보안 규정 준수가 필요하지 않은 프로젝트의 경우 보안 영역에 없는 구획을 만듭니다. 만일 보안 영역 레시피에서 있는 정책들 중 일부만 활성화 하고자 한다면 사용자 지정 보안 영역 레시피를 생성하여 적용할 수 있습니다.

이 글은 개인적으로 얻은 지식과 경험을 작성한 글로 내용에 오류가 있을 수 있습니다. 또한 글 속의 의견은 개인적인 의견으로 특정 회사를 대변하지 않습니다.

Dialogue & Discussion