OCI Policy: 권한 설정

이번 Hands-on Lab에서는 OCI 자원에 대한 접근 제어 설정을 다룹니다. OCI에서는 OCI IAM Policy로 OCI 자원에 대한 권한 설정을 합니다. 이 Hands-on LabOCI Admin User(OCI 관리자) ID로 OCI IAM 로그인하고 진행합니다.

HOL: OCI IAM Policy

위 이미지와 같은 접근 제어를 구성합니다. 핸즈온 랩 다음과 같은 순서로 진행합니다.

OCI IAM Policy 개요

OCI IAM policy의 기본 문법은 다음과 같습니다.

Allow <subject> to <verb> <resource-type> in <location> where <conditions>

OCI IAM Policy 패턴

OCI IAM Policy는 주로 OCI Group에 적용됩니다. 따라서 기본적인 사용법은 다음과 같습니다.

Allow group <group_name> to <verb> <resource-type> in compartment <compartment_name>
Allow group <group_name> to <verb> <resource-type> in tenancy

OCI IAM Policy: verb

Policy에 적용하는 verb는 다음과 같습니다.

Verb 설명 대상 OCI User
inspect - 사용자 정의 메타데이터, 보안 정보를 제외한 자원을 리스트(조회)할 수 있는 권한 조회가 필요한 제3자 사용자
read - inspect에 추가하여 사용자 정의 메타데이터도 조회할 수 있는 권한 포함 조회가 필요한 내부 사용자
use - read의 모든 권한 포함
- 자원을 사용할 수 있는 권한 포함
- 자원 생성, 삭제에 대한 권한은 포함하지 않음
일반적인 업데이트 권한 포함
일반 사용자
manage 해당 자원의 모든 권한 부여 관리자

OCI IAM Policy: resource-type

IAM Policy에는 다음과 같은 resource-type을 설정할 수 있습니다.

자원 타입 유형
개별 자원 타입 vcns, subnets, instances, volumes ….
유사 자원 타입 virtual-network-family, instance-family, volume-family ….
모든 자원 지정 all-resources

OCI IAM Policy: 하부 Compartment

Compartment가 계층 구조를 갖을 경우에 상위 Compartment에 부여된 Policy는 하위 Compartment에 적용됩니다.

OCI IAM Policy: 예제

OCI IAM Policy 예제입니다.

HOL: OCI Policy 적용

핸즈온 랩에서는 다음과 같은 시나리오를 적용합니다.

OCI Policy 관리 페이지 이동

OCI Console에서 OCI Policy 관리 페이지는 다음 메뉴 패스로 이동합니다.

(콘솔 왼쪽 위 햄버그 버튼) Identity Policies

위 메뉴 패스로 이동하면 OCI Policy 관리 페이지가 출력됩니다.

hol-admin-Policy 생성

hol.admins 사용자 그룹에게 sandbox 컴파트먼트 아래에 모든 자원의 전체 권한을 부여하는 policy를 생성합니다. 이 Policy는 sandbox를 포함한 모든 하위 컴파트먼트에 적용됩니다. 따라서 hol.admins 사용자 그룹은 sandbox, hol-prod, hol-dev, hol-test 컴파트먼트의 모든 자원 관리 권한을 갖습니다.

sandbox 컴파트먼트는 root 컴파트먼트 아래에 위치합니다. 따라서 OCI Policy 관리 페이지에서 root 컴파트먼트를 선택하고 Create Policy 버튼을 클릭합니다.

Policy 생성 폼에 다음과 같은 값을 입력하고 Create 버튼을 클릭합니다.

설정 항목 설정값
Name hol-admins-policy
Description 데모: 관리자 그룹을 위한 권한 설정
Policy Statements allow group hol.admins to manage all-resources in compartment sandbox


hol-admins-policy policy가 만들어지면 다음과 같이 상세 페이지로 이동합니다.

hol-audits-Policy 생성

hol.audits 사용자 그룹에 소속된 OCI 사용자에게 sandbox 컴파트먼트 아래에 모든 자원의 조회 권한을 부여하는 policy를 생성합니다. 이 Policy 적용 대상 범위는 hol-prod 컴파트먼트에 한정됩니다.

hol-prod 컴파트먼트는 sandbox 컴파트먼트 아래에 위치합니다. 따라서 OCI Policy 관리 페이지에서 root 컴파트먼트를 선택하고 Create Policy 버튼을 클릭합니다.

Policy 생성 폼에 다음과 같은 값을 입력하고 Create 버튼을 클릭합니다.

설정 항목 설정값
Name hol-audits-policy
Description 데모: 감리 그룹을 위한 권한 설정
Policy Statements allow group hol.audits to read all-resources in compartment sandbox


hol-audits-policy policy가 만들어지면 다음과 같이 상세 페이지로 이동합니다.

hol-tests-Policy 생성

hol.tests 사용자 그룹에게 sandbox 컴파트먼트 아래의 hol-test 컴파트먼트의 모든 자원의 사용 권한을 부여하는 policy를 생성합니다. 이 Policy 적용 대상 범위는 hol-test 컴파트먼트에 한정됩니다.

hol-test 컴파트먼트는 sandbox 컴파트먼트 아래에 위치합니다. 따라서 OCI Policy 관리 페이지에서 sandbox 컴파트먼트를 선택하고 Create Policy 버튼을 클릭합니다.

Policy 생성 폼에 다음과 같은 값을 입력하고 Create 버튼을 클릭합니다.

설정 항목 설정값
Name hol-tests-policy
Description 데모: QA 그룹을 위한 권한 설정
Policy Statements allow group hol.testers to use all-resources in compartment hol-test


hol-tests-policy policy가 만들어지면 다음과 같이 상세 페이지로 이동합니다.

hol-developers-Policy 생성

hol.developers 사용자 그룹에게 sandbox 컴파트먼트 아래의 hol-dev 컴파트먼트의 모든 자원 사용 권한을 부여하는 policy를 생성합니다. 이 Policy 적용 대상 범위는 hol-dev 컴파트먼트에 한정됩니다.

hol-dev 컴파트먼트는 sandbox 컴파트먼트 아래에 위치합니다. 따라서 OCI Policy 관리 페이지에서 sandbox 컴파트먼트를 선택하고 Create Policy 버튼을 클릭합니다.


Policy 생성 폼에 다음과 같은 값을 입력하고 Create 버튼을 클릭합니다.

설정 항목 설정값
Name hol-developers-policy
Description 데모: 개발자 그룹을 위한 권한 설정
Policy Statements allow group hol.developers to use all-resources in compartment hol-dev


hol-tests-policy policy가 만들어지면 다음과 같이 상세 페이지로 이동합니다.

hol-admin-Policy 업데이트

Oracle Cloud 계정의 관리자는 모든 권한을 갖는 슈퍼 사용자입니다. OCI 관리자로는 Cloud Shell도 사용할 수 있습니다.


OCI 일반 사용자(demo.admin)로 로그인하고, Cloud Shell을 실행하면 다음과 같이 권한 부족 에러 메시지가 출력됩니다.


Cloud Shell을 사용하기 위해서는 다음과 같은 Policy Statement가 필요합니다.

allow group <GROUP-NAME> to use cloud-shell in tenancy

hol-admins-policy에 cloud shell을 사용하는 Policy Statement 추가하겠습니다. 다음 메뉴 패스로 Policy 관리 페이지로 이동합니다.

(콘솔 왼쪽 위 햄버그 버튼) Identity Policies

Policy 관리 페이지에서 root 컴파트먼트를 선택하면 다음 이미지와 같은 목록이 출력됩니다. Policy 목록에서 hol-admins-policy을 링크를 선택하고 hol-admins-policy 상세 페이지로 이동합니다.


hol-admins-policy 상세 페이지에서 Edit Policy Statements 버튼을 클릭합니다.


Edit Policy Statements 편집 창에서 Another Statements 버튼을 클릭합니다.


hol.admins 그룹에 Cloud Shell 사용 권한을 부여하는 다음 Policy Statements를 입력합니다.

allow group hol.adminsto use cloud-shell in tenancy

Policy Statements를 입력하고 Save Changes 버튼을 클릭합니다.


새로 등록한 Policy Statements가 저장되면, 다음 이미지와 같은 화면이 출력됩니다.


이제 OCI 일반 사용자인 demo.admin으로 OCI IAM 로그인하면 Cloud Shell이 에러 없이 실행됨을 확인할 수 있습니다.

참고문서

  • 문서 생성: 2020-03-31 12:11 / 최종 문서 수정: 2020-03-31 12:11
  • 김태완 avatar
  • 작성자: 김태완
  • 사랑하는 민수와 데이터 관리, 데이터 분석 & 클라우드에 집중하고 있습니다.
  • E-mail: taewan.me@gmail.com
  • Disclaimer
    이 저작물은 Oracle과 관계없이 개인으로서 개인의 시간을 할애하여 작성된 글 입니다. 본 글의 내용, 입장, 예측은 Oracle을 공식적으로 절대 대변하지 않습니다.