주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마치면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체합니다.
Oracle Cloud Infrastructure Resource Manager와 자동화 프로세스 통합
소개
OCI(Oracle Cloud Infrastructure) 리소스 관리자 서비스는 모든 OCI 리소스의 배포 및 운영을 자동화합니다. 이 서비스는 코드형 인프라(IaC) 모델을 사용하여 DevOps 엔지니어가 어디서나 인프라를 개발하고 배포할 수 있는 오픈 소스 산업 표준인 Terraform을 기반으로 합니다.
Terraform 구성은 선언적 구성 파일에 인프라를 인코딩합니다. OCI Resource Manager 서비스를 사용하면 여러 팀과 플랫폼에서 Infrastructure 구성 및 상태 파일을 공유하고 관리할 수 있습니다.
OCI Resource Manager를 통해 OCI 콘솔에서 Terraform 스크립트를 실행할 수 있습니다. REST 호출을 수행하거나 OCI CLI(Oracle Cloud Infrastructure Command Line Interface)를 사용하여 OCI Devops, Jenkins, GitHub 등과 같은 자동화 툴과의 통합 가능성을 확장할 수도 있습니다.
이 자습서에서는 OCI 리소스 관리자 실행 사용자가 데이터베이스 및 저장된 비밀번호를 생성할 수 있는 적절한 액세스 권한을 가지도록 OCI 저장소 암호를 통해 안전하게 데이터베이스 관리자 비밀번호를 획득하여 Oracle Autonomous Database 인스턴스 배치를 자동화합니다.
목표
- 적절한 액세스 인증서로 인스턴스를 생성할 수 있지만 비밀번호와 같은 중요한 정보를 노출하지 않고도 Terraform 스크립트 내에서 인증된 사용자만 사용할 수 있도록 Terraform을 통해 자동화를 구성합니다.
필요 조건
-
정책이 없는 사용자 그룹 내의 사용자입니다. 이 사용자에게는 OCI 리소스 관리자에서 Terraform을 실행할 수 있는 적절한 권한이 부여됩니다.
-
특정 구획의 OCI 오브젝트 스토리지 버킷입니다(이 버킷에 Terraform 스크립트를 생성하려면).
-
Terraform 스크립트는 OCI 리소스 관리자를 통해 실행되며 사용자에게 다음 권한이 있어야 합니다.
- 구획에 리소스를 생성합니다.
- Oracle Autonomous Database 인스턴스를 생성합니다.
- OCI 저장소 비밀번호를 읽습니다.
- Terraform 스크립트를 실행합니다.
작업 1: OCI 저장소에서 Oracle Autonomous Database에 대한 암호 생성
OCI Vault에서 암호를 생성하여 중요한 데이터를 노출하지 않고 Terraform에서 새 리소스를 구성하는 방법을 설명합니다.
암호는 암호, 인증서, SSH 키 또는 OCI 서비스와 함께 사용하는 인증 토큰과 같은 인증서입니다. OCI Vault에 암호를 저장하면 코드 또는 구성 파일과 같은 다른 곳에 암호를 저장하는 것보다 더 강력한 보안을 제공합니다. 리소스 또는 기타 서비스에 액세스하기 위해 필요할 때 OCI Vault 서비스에서 암호를 검색할 수 있습니다.
OCI 콘솔, OCI CLI 또는 API를 사용하여 암호를 생성할 수 있습니다. 암호의 암호 컨텐츠는 외부 소스에서 서비스로 가져옵니다. OCI 저장소 서비스는 저장소에 암호를 저장합니다.
주: 이 작업의 경우 OCI 콘솔에서 관리자 사용자로 로그인해야 합니다. OCI 저장소에 비밀번호를 생성하려면 권한이 있어야 합니다.
-
OCI 콘솔에 로그인하여 ID 및 보안 및 저장소를 누릅니다.
-
암호를 저장할 구획을 선택하고 저장소 생성을 누릅니다.
-
저장소 이름을 입력하고 구획을 확인한 후 저장소 생성을 누릅니다.
-
Vault가 작성되었는지 확인하고 키를 작성합니다. 마스터 암호화 키 및 키 생성을 누릅니다.
-
구획을 확인하고 키 이름을 입력합니다. 예를 들어,
autonomouskey
을 이름으로 입력하고 키 생성을 누릅니다.키가 만들어졌는지 확인합니다.
-
비밀 및 비밀 생성을 누릅니다.
-
자율운영 관리자 비밀번호가 생성됩니다. 다음 정보를 입력하고 비밀 생성을 누릅니다.
- 구획: 구획 선택.
- 이름: 첫번째 암호의 이름을 입력합니다.
- 비밀번호를 포함하려면 수동 암호 생성을 선택합니다.
- 비밀 유형 템플리트:
Plain-Text
를 입력합니다. - 비밀 내용: 비밀번호를 입력합니다.
-
비밀 OCID가 필요합니다. OCID를 복사하려면 복사를 누릅니다.
태스크 2: OCI 사용자에 대한 정책 생성
이 자습서에서는 TestGroup
라는 그룹에 포함된 사용자 이름 TestUser
을 고려합니다. 이제 이름이 TestPolicy
인 정책을 만듭니다.
이 작업은 Terraform 자동화의 보안을 보장하는 데 필요한 모든 권한을 제어하므로 중요합니다.
주: 이 작업의 경우 OCI에서 관리자 사용자로 로그인해야 합니다.
-
OCI 콘솔로 이동하여 ID 및 보안 및 정책을 누릅니다.
-
정책 생성을 누릅니다.
-
명세서 섹션에 다음 정책을 입력합니다.
-
이 정책은 이전에 생성된
TestGroup
를 그룹화하여 OCI 리소스 관리자에서 스택 및 작업을 관리할 수 있는 권한을 부여합니다.- Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration - Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration - Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
-
이 정책은 구획 통합에 Oracle Autonomous Database 인스턴스를 생성할 수 있는 권한을 제공합니다.
- Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
그룹은 Terraform 스크립트를 통해 OCI Vault에 저장된 비밀번호를 읽을 수 있습니다.
- Allow group 'Default'/'TestGroup' to use secret-family in tenancy
-
이 정책은 Terraform 스크립트를 특정 구획에 저장할 수 있는 권한을 제공합니다.
- Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
-
이 정책을 사용하면
TestGroup
사용자가 OCI 코드 편집기에서 코드를 편집할 수 있습니다.- Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
-
작업 3: 템플릿에서 스택 만들기
Oracle Autonomous Database 인스턴스에 대한 스택을 생성합니다. 이를 위해 템플릿을 사용할 수 있습니다. 첫번째 단계는 작업 2에서 생성한 유저로 로그인하는 것입니다.
-
OCI 콘솔로 이동하여 햄버거 메뉴를 누릅니다.
-
개발자 서비스 및 스택을 누릅니다.
-
구획을 선택하고 스택 생성을 누릅니다.
-
스택 정보 페이지에서 템플리트를 선택하고 템플리트 선택을 눌러 Oracle Autonomous Database용 Terraform 스크립트를 생성합니다.
-
서비스 탭에서 Autonomous Transaction Processing Database를 선택하고 템플리트 선택을 누릅니다.
-
Terraform 스크립트를 생성하고 OCI Object Storage 버킷에 저장할 수 있습니다. 사용자정의 Terraform 제공자 사용을 선택하고 버킷 구획 및 이름을 입력한 다음 스택을 저장합니다.
스택이 저장됩니다.
-
이 템플리트는 OCI 저장소에 저장된 암호를 읽지 않습니다. Terraform이 암호를 읽도록 하려면 코드를 변경해야 합니다.
편집을 누르고 코드 편집기에서 Terraform 구성 편집을 선택합니다.
-
코드를 편집할 수 있습니다. 기본 코드는 암호에 대한 임의 문자열을 생성합니다.
-
main.tf
파일.oci_secrets_secretbundle
라는 새 데이터를 추가하고 다음 속성에 지정해야 합니다.admin_password
(autonomous_data_warehouse
및autonomous_database
섹션)password
(autonomous_database_wallet
섹션)
-
main.tf
-autonomous_data_warehouse
섹션.data "oci_secrets_secretbundle" "bundle" { secret_id = var.secret_ocid } admin_password = base64decode(data.oci_secrets_secretbundle.bundle.secret_bundle_content.0.content)
-
main.tf
-autonomous_database
섹션. -
main.tf
-autonomous_database_wallet
섹션.
variables.tf
파일에 다음 코드를 추가하고 작업 1에서 생성된 암호의 OCID를 바꿉니다.variable "secret_ocid" { default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
-
variables.tf
파일.
주: 파일을 저장합니다. 마우스 커서를 스택 위로 이동(편집기의 오른쪽에 있는 Autonomous Transaction Processing.... 제목에서) 마우스 오른쪽 버튼을 누르고 프로젝트를 저장합니다. 저장하지 않고 그대로 두면 원래 코드 스크립트에서 임의 문자열을 사용하는 것으로 가정합니다.
-
작업 4: 권한 테스트
정책을 테스트하고 특정 구획에서 OCI Resource Manager, OCI Vault 및 Oracle Autonomous Database 인스턴스를 제어하는 방법을 확인할 수 있습니다.
-
관리자 사용자 인증서로 OCI 콘솔에 로그인하고
TestPolicy
정책에서TestGroup
그룹에 대한 모든 정책을 제거합니다. 를 누르고 확인합니다. -
이제
TestGroup
그룹의 user로 로그인하면 스택이 표시되지 않으므로 실행할 수 없습니다. -
관리 사용자를 사용하여 다음 명령문을 추가합니다.
Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
다음 명령문은 OCI 리소스 관리자 스택을 사용할 수 있도록
TestGroup
권한을 사용자에게 부여합니다. -
사용자가 Oracle Autonomous Database 인스턴스를 생성하고 OCI Vault에서 암호를 읽을 수 있는 권한 부여를 제거했습니다. 따라서 성공 없이 스택을 실행할 수 있습니다. 테스트하려면 스택 세부정보 페이지에서 적용을 누릅니다.
-
TestPolicy
에 Oracle Autonomous Database 및 OCI Vault 권한을 추가합니다.Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
스택 세부정보 페이지에서 적용을 누르면 비밀번호를 노출하지 않고도 모든 리소스를 제어할 수 있습니다.
작업 5: REST를 사용하여 OCI Resource Manager Automation 호출
OCI의 모든 리소스에는 OCI 콘솔에서 실행되는 것처럼 서비스를 호출하기 위한 OCI REST API 또는 OCI CLI 명령이 있습니다.
OCI REST API에 대한 자세한 내용은 OCI REST API를 참조하십시오. OCI CLI 명령 목록은 Oracle Cloud Infrastructure CLI 명령 참조에서 확인할 수 있습니다.
이제 OCI REST API 또는 OCI CLI 명령을 사용하여 OCI Resource Manager 스택을 실행하도록 선택할 수 있습니다. 작업을 생성하려면 CreateJob을 참조하거나 다음 샘플 코드 curl-oci.zip를 OCI 매개변수로 준비된 curl-oci.sh
와 함께 사용할 수 있습니다.
REST 요청에 대한 서명을 생성해야 합니다. 자세한 내용은 Oracle Cloud Infrastructure(OCI) REST call walkthrough with curl을 참조하십시오.
-
STACK-RUN.sh
라는 파일을 생성합니다.curl-oci.sh
를 사용하는 REST 요청이 됩니다. 이 툴은 OCI 정보로 권한 부여 문자열을 준비합니다. -
스택 ID 및 구획 ID를 사용하여
request.json
라는 파일을 만듭니다. -
curl-oci.sh
파일을 열고 다음 매개변수를 변경합니다. 이러한 매개변수는 OCI CLI 설치와 동일합니다.이제 스크립트를 실행합니다.
성공 결과를 볼 수 있습니다.
관련 링크
확인
- 작성자 - Cristiano Hoshikawa(Oracle LAD A-Team 솔루션 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Integrate Oracle Cloud Infrastructure Resource Manager with Automation Process
F98158-01
May 2024