[Livelog] OCI 테넌시(Tenancy) 기본 설정
이전 Livelog에서는 OCI Free Tier를 등록하는 방법에 대해서 진행했습니다. 이번 Livelog에서는 새로 생성한 OCI Tenancy에 OCI 사용자 생성 및 권한 설정, 데모를 위한 기본 네트워크 구성 작업을 진행합니다.
Livelog는 동영상 데모를 중심으로 작성된 컨텐츠입니다. Livelog는 Youtube에 배포된 동영상과 블로그 문서로 구성됩니다. Livelog의 블로그 문서는 동영상을 진행하기 위한 보조 정보를 중심으로 작성됩니다.
목차
이번 Livelog에서는 새로 만든 OCI Tenancy를 위한 기본 설정을 위하여 다음과 같은 작업을 진행합니다.
- 새로운 OCI 사용자 생성
- 새로운 OCI 사용자 그룹 생성 및 사용자 할당
- 사용자 패스워드 변경 및 로그인
- 신규 Comaprtment 생성
- 기본 권한(Policy) 설정
- Demo 컴파트먼트 권한 부여
- Cloud Shell을 위한 권한 설정
- VCN(Virtual Cloud Network) 생성
사전 준비 사항
이번 Livelog는 OCI Free Tier 계정이 생성됨을 가정합니다. 아직 OCI Free Tier가 없는 상태라면 다음 링크를 참조하여 OCI 계정을 준비하시기 바랍니다.
OCI Tenancy 기본 정보
이전 Livelog OCI Free Tier 신청[↗NW] 에서 생성한 OCI Tenancy(계정) 정보는 다음과 같다고 가정합니다.
- OCI Tenancy 명: taewandemo003
- Admin User(IDCS): iamtaewan@gmail.com
- Admin User 비밀번호: Welcome123456!
배경지식: IDCS & OCI IAM
오라클 클라우드는 사용자 계정을 관리하는 IDCS(Identity Cloud Service)와 OCI IAM 서비스를 제공합니다. IDCS(Identity Cloud Service)는 오라클 클라우드 초기부터 계정 관리와 사용자 권한을 관리하는 체계였습니다. Gen2가 시작되면서 Oracle Cloud Infrastructure(OCI)가 새로운 인프라로 공개됐습니다. OCI안에서 사용자 계정과 권한을 제공하는 새로운 관리 서비스가 IAM입니다. 현재 IDCS는 IAM과 통합되어 있어 있으며, 점진적으로 IAM에 흡수되는 과정에 있습니다.
IDCS에서 만든 사용자 ID는 OCI IAM으로 페더레이션됩니다. IDCS는 IDCS Group을 OCI IAM 그룹에 매핍하는 기능을 제공합니다. 반대로 OCI IAM에서 생성한 사용자 ID는 IDCS에 페더레이션되지 않습니다.
OCI 사용자 생성
taewandemo003 테넌시에 Admin User로 로그인하고 다음과 같은 OCI IAM 사용자를 생성합니다.
IAM User ID | 설명 |
---|---|
developer01 | 개발자 ID로 사용 |
operator01 | 운영자 ID로 사용 |
data_analyst01 | 데이터 분석가 ID로 사용 |
admin | OCI 관리자 ID |
사용자 설정이 완료되면 다음과 같은 상태가 됩니다.
OCI 사용자 그룹 생성 및 사용자 할당
taewandemo003 테넌시에 Admin User로 로그인하고 다음과 같이 OCI 사용자 그룹을 OCI 사용자를 할당 합니다.
IAM User Group | Group 설명 | 할당 OCI User |
---|---|---|
developers | 개발자 그룹 | developer01 |
operators | 운영자 그룹 | operator01 |
data_analysts | 데이터 분석가 그룹 | data_analyst01 |
administrators | OCI 관리자 그룹, 기존에 생성된 그룹 재사용 | admin |
사용자 패스워드 변경 및 로그인
taewandemo003 테넌시에 Admin User로 로그인하여 만든 4개 OCI 사용자의 패스워드를 초기화합니다. 그리고 각 사용자로 OCI IAM 로그인을 진행합니다.
Comaprtment 생성
OCI에서 자원(VCN, VM, Database, Storage 및 여러 서비스)을 만들 때, Compartment는 OCI 자원을 논리적으로 묶는 역할을 담당합니다. Compartment로 여러 자원을 묶고, OCI 컴파트먼트 단위로 자원 모니터링, 과금 및 권한 설정을 합니다. Compartment는 OCI 클라우드 자원을 관리하는 IAM 핵심 구성요소입니다.
컴파트먼트는 중첩 디렉터리 구조를 갖습니다. OCI의 모든 자원은 특정 컴파트먼트에 소속됩니다. 컴파트먼트는 OCI 글루벌 범위를 갖습니다. 컴파트먼트는 특정 리전에 종속적이지 않으며, 특정 리전에서 만든 컴파트먼트는 모든 리전에서 사용 가능합니다.
Compartment(컴파트먼트)는 한국어로 “구획“으로 번역됩니다.
demo 컴파트먼트 만들기
demo 컴파트먼트 생성은 OCI 관리자 계정(admin)으로 진행합니다. root 컴파트먼트 아래에 demo 컴파트먼트를 다음과 같이 설정하고 생성합니다.
항목 | 설정 값 |
---|---|
Name | demo |
Description | demo 컴파트먼트 |
Parent Compartment | root |
Compartment가 정상적으로 생성되면 위 그림과 같이 Compartments 관리 페이지가 출력됩니다. 이 페이지에서 demo 컴파트먼트 생성된 것을 확인할 수 있습니다
Policy
OCI에서는 IAM Policy로 OCI 자원 권한 설정을 합니다. OCI IAM policy의 기본 문법은 다음과 같습니다.
Allow <subject> to <verb> <resource-type> in <location> where <conditions>
Policy를 사용하는 패턴은 다음과 같습니다.
- Case 1: 특정 OCI Group을 특정 Compartment에 포함된 자원의 접근 제어 설정
Allow group <group_name> to <verb> <resource-type> in compartment <compartment_name>
- Case 2: 특정 OCI Group이 Tenancy 전체 자원 접근 제어 설정
Allow group <group_name> to <verb> <resource-type> in tenancy
Policy에 적용하는 verb는 다음과 같습니다.
VERB | 설명 | 대상 OCI USER |
---|---|---|
inspect | - 사용자 정의 메타데이터, 보안 정보를 제외한 자원을 리스트(조회)할 수 있는 권한 | 조회가 필요한 제3자 사용자 |
read | - inspect에 추가하여 사용자 정의 메타데이터도 조회할 수 있는 권한 포함 | 조회가 필요한 내부 사용자 |
use | - read의 모든 권한 포함- 자원을 사용할 수 있는 권한 포함- 자원 생성, 삭제에 대한 권한은 포함하지 않음 | 일반 사용자 |
manage | 해당 자원의 모든 권한 부여 | 관리자 |
Demo 컴파트먼트 권한 부여
demo 컴파트먼트의 Policy 설정은 OCI 관리자 계정으로 진행합니다. demo 컴파트먼트에 대한 권한을 사용자 그룹 별로 다음과 같이 설정합니다.
사용자 그룹 | 권한 | 설명 |
---|---|---|
developers | manage | demo 컴파트먼트의 모든 리소스 생성, 사용, 삭제 권한 부여 |
operators | read | demo 컴파트먼트의 모든 리소스의 읽기 권한 부여 |
data_analysts | manage | demo 컴파트먼트의 모든 리소스 생성, 사용, 삭제 권한 부여 |
다음과 같은 Policy를 생성합니다.
항목 | 설정 값 |
---|---|
Name | BasicPolicy |
Description | Default Policy |
Compartment | root |
Policy Builder에 다음과 같은 설정을 입력합니다.
Allow group developers, data_analysts to manage all-resources in compartment demo
Allow group operators to read all-resources in compartment demo
Cloud Shell을 위한 Policy 설정
Cloud Shell은 OCI Console(OCI 관리 콘솔)에서 실행되는 브라우저 기반 가상 터미널입니다. OCI Cloud Shell를 이용하면 PuTTY를 사용하지 않고 OCI VM 인스턴스에 접속하거나 추가적인 계정 설정 작업 없이 OCI CLI와 같은 툴을 사용할 수 있습니다.
OCI 사용자가 Cloud Shell을 사용하기 위해서는 root 컴파트먼트에 다음 Policy를 설정해야 합니다.
allow group <GROUP-NAME> to use cloud-shell in tenancy
develper01과 data_analyst01 사용자가 Cloud Shell을 사용하기 위해서 다음 Policy를 root 컴파트먼트에 생성합니다.
allow group data_analysts, developers to use cloud-shell in tenancy
cloud shell을 실행하고 oci cli 호출을 테스트합니다.
oci os ns get
oci iam region list
oci iam region list --output table
VCN(Virtual Cloud Network) 생성
OCI Compute 서비스를 사용하면 여러 VCN(Virtual Cloud Network)을 만들 수 있습니다. OCI 자원을 생성/배포하기 위해서는 다른 자원을 생성하기 전에 VCN을 먼저 만들어야 합니니다. VCN은 다음과 같은 네트워크 컴포넌트로 구성됩니다.
- Subnet
- Route Table
- Security List
- Internet Gateway
- NAT Gateway
- Service Gateway
- Dynamic Routing Gateway(DRG)
- Load Balancer
- Local/Remote Peering
demovcn 만들기
demovcn VCN을 만들기 위하여 developer01 사용자로 OCI Console에 OCI IAM 로그인 합니다.
VCN 관리 페이지에서 컴파트먼트로 demo를 선택하고 demovcn을 생성합니다.
간편 모드로 2가지 형태의 VCN을 만들 수 있습니다. 간편 모드가 지원하는 2개 형태는 다음과 같은 특징을 갖습니다.
항목 | 설정 |
---|---|
인터넷 접속을 위한 VCN | - 2개 서브넷 구성(public subnet, private subnet)- 주요 구성: Internet Gateway, NAT Gateway, Service Gateway |
인터넷 접속 사이트간 VCN Connect를 통한 VCN | - VCN with Internet Connectivity에 VPN 기본 설정 구성 |
“인터넷 접속을 위한 VCN“을 선택하고 VCN을 다음과 같은 정보로 생성합니다.
입력 항목 | 설정 값 | 비고 |
---|---|---|
VCN Name | demovcn | 신규입력 |
Compartment | demo | 신규입력 |
VCN CIDR Block | 10.0.0.0/16 | 기본값 사용 |
Public Subnet CIDR Block | 10.0.0.0/24 | 기본값 사용 |
Private Subnet CIDR Block | 10.0.1.0/24 | 기본값 사용 |
Use DNS HOSTINGNAMES In the VCN | 체크 | 기본값 사용 |
2개 서브넷으로 구성된 demovcn의 상세 페이지를 확인할 수 있습니다.