참고:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 완료하려면 이 값을 클라우드 환경에 해당하는 값으로 대체하십시오.
OCI WAF로 Oracle Integration(프로세스) 사용자정의 끝점 구성 및 보호
소개
Oracle Integration은 클라우드 및 온프레미스 애플리케이션을 통합하고, 비즈니스 프로세스를 자동화하고, 비즈니스 프로세스에 대한 통찰력을 얻고, 시각적 애플리케이션을 개발하고, SFTP 호환 파일 서버를 사용하여 파일을 저장 및 검색하고, 비즈니스 문서를 B2B 거래 파트너와 교환할 수 있는 기능을 제공하는 완전 관리형 사전 구성 환경입니다.
Oracle Cloud Infrastructure Web Application Firewall(OCI WAF)을 사용하여 악성 및 원치 않는 인터넷 트래픽으로부터 애플리케이션을 보호합니다. WAF는 인터넷 연결 엔드포인트를 보호할 수 있으며, 고객 애플리케이션 전반에 걸쳐 일관된 규칙을 적용합니다.
목표
OCI 방화벽을 사용하여 인터넷의 악성 트래픽에 대해 사용자정의 끝점을 사용하여 Oracle Integration 인스턴스를 구성하고 보호합니다.
이 사용지침서에서는 설명서에서 권장되는 대로 WAF 및 허용 목록을 사용하기 위한 Oracle Integration 참조 아키텍처 권장 사항을 따릅니다.

자세한 내용은 Oracle Integration 2세대 프로비저닝 및 관리에서 확인할 수 있습니다.
필요 조건
- Oracle Cloud 테넌시에 액세스
- 테넌시의 Oracle Integration 인스턴스 설정
- 테넌시에 공용 서브넷이 있는 VCN
- DNS 도메인에 대한 CNAME이 있는 사용자정의 끝점
- SSL 인증서
- Oracle Integration 인스턴스 사용자정의 끝점을 보호하는 OCI WAF 정책
작업 1: Oracle Integration 인스턴스 생성
-
웹 콘솔을 통해 새 Oracle Integration 인스턴스를 생성하려면 개발자 서비스 메뉴로 이동하여 통합을 누릅니다.

-
통합 인스턴스 화면에서 인스턴스가 생성될 구획을 선택하고 인스턴스 생성을 누릅니다.

-
인스턴스 생성 화면이 나타납니다. 인스턴스 이름을 입력하고 Oracle Integration 버전(2세대)을 선택한 다음 생성을 누릅니다.

주: 다른 항목은 사용자 환경의 요구사항에 따라 구성할 수 있습니다. 이 자습서에서는 기본값을 그대로 둡니다.
-
생성이 완료되면 인스턴스를 사용할 수 있습니다. 세부정보를 보려면 인스턴스 이름을 누르십시오.

-
Oracle Integration 인스턴스의 작동을 검증하려면 인스턴스 세부정보에 액세스한 후 서비스 콘솔을 누릅니다.

-
새 브라우저 탭이 열리고 Oracle Integration 홈 화면에 액세스할 수 있습니다.

작업 2: OCI Vault, DNS 및 SSL 인증서 설정
Oracle Integration 인스턴스가 생성되면 인스턴스에 대한 사용자정의 끝점을 생성합니다. 사용자정의 끝점을 사용하면 전용 도메인을 사용하여 Oracle Integration 인터페이스에 액세스할 수 있습니다. 예를 들면 다음과 같습니다.
https://oic-lab.<exampledomain>.com/ic/home
사용자정의 끝점을 생성하려면 다음 5단계를 따릅니다.
- 공용 서브넷으로 VCN 생성
- Oracle Integration 끝점을 가리키는 사용자정의 DNS에서 CNAME 항목을 생성합니다.
- 새 링크에 대한 SSL 인증서를 생성합니다(예:
oic.<exampledomain>.com). - 인증서가 저장될 OCI 저장소 생성
- Oracle Integration 인스턴스에서 사용자정의 끝점 구성 수행
작업 2.1: 구획에 VCN 및 공용 서브넷 생성
-
VCN을 생성하려면 OCI 웹 콘솔의 서비스 메뉴를 열고 가상 클라우드 네트워크를 누릅니다.

-
네트워킹 페이지 내부에서 올바른 구획에 있는지 확인하고 VCN 마법사 시작을 누릅니다.

-
구축 중인 환경의 요구 사항에 따라 VCN을 생성합니다. Oracle Integration에서는 공용 서브넷을 생성하고 NAT 게이트웨이(서비스 게이트웨이)를 사용할 수 있어야 합니다.

-
VCN은 Oracle Integration 사용자정의 끝점 생성 중 사용됩니다.
중요: Oracle Integration의 WAF 구성에 사용될 VCN의 OCID를 기록해 두십시오.
-
작업 2.2: Oracle Integration 끝점에 대한 사용자정의 DNS에서 CNAME 항목 생성
이제 Oracle Integration을 가리키는 CNAME 항목을 생성하려면 도메인의 DNS 구성 환경에 액세스해야 합니다. WAF를 구성하는 경우 이 CNAME 항목이 변경되지만, Oracle Integration에 대한 액세스 전송 시 암호화에 사용될 SSL 인증서를 임포트할 수 있도록 지금 생성하는 것이 중요합니다.
-
OCI 콘솔의 Oracle Integration 서비스 페이지로 돌아갑니다.

-
인스턴스 세부정보 내에서 Oracle Integration 인스턴스의 서비스 콘솔에 액세스하기 위해 OCI에서 제공한 도메인 FQDN을 확인합니다.

- 이 예에서는 FQDN
oic-lab-instance-axyjvqi24eaa-gr.integration.ocp.oraclecloud.com을 사용합니다.
- 이 예에서는 FQDN
-
Oracle Integration 사용자정의 끝점의 FQDN을 가리키는 도메인에서 CNAME을 생성합니다.
주: 이 자습서에서는 DNS 영역 파일에서 CNAME을 구성하는 방법을 보여주지 않습니다.
-
FQDN이 있으면 고유 도메인의 CNAME을 구성합니다. 구성 후
dig명령을 사용하여 CNAME이 올바르게 구성되었는지 검증합니다.$ dig <oic>.<exampledomain>.com
작업 2.3: 새 도메인에 대한 SSL 인증서 생성
CNAME이 생성된 후에는 인스턴스에 대해 암호화된 인터넷 트래픽을 사용으로 설정하려면 SSL 인증서를 생성해야 합니다. 이 자습서에서는 자체 서명된 SSL 인증서를 만듭니다. 그러나 프로덕션 환경에서는 인증서가 유효해야 합니다.
-
자체 서명된 인증서를 만들려면 먼저 개인 키를 만들어 보겠습니다.
$ openssl genrsa -out oic-lab.key 2048- 따라서 이름이
oic-lab.key인 개인 키를 가져옵니다.

- 따라서 이름이
-
이제 CSR(인증서 서명 요청)을 만듭니다.
$ openssl req -key oic-lab.key -new -out oic-lab.csr- 요청한 정보를 입력하여 .csr 파일을 얻습니다. "공통 이름"은 자습서에 사용되는 FQDN이어야 합니다.

-
이제 개인 키(oic-lab.key)와 csr(oic-lab.csr)이 있으므로 자체 서명된 SSL 인증서를 생성해 보겠습니다. 이렇게 하려면 아래 명령을 실행하십시오.
$ openssl x509 -signkey oic-lab.key -in oic-lab.csr -req -days 365 -out oic-lab.crt- 이 명령은 365일 동안 유효한 자체 서명된 인증서를 생성합니다.

이제 자체 서명된 인증서가 있으므로 Oracle Integration 내에서 사용하기 위해 이를 OCI Vault로 임포트할 수 있습니다.
작업 2.4: OCI 저장소 생성 및 SSL 인증서 임포트
자체 서명된 SSL 인증서가 이미 있으므로 Oracle Integration이 실행 중인 구획 내에 OCI Vault를 생성해야 합니다.
-
OCI Vault를 생성하려면 OCI 웹 콘솔에서 서비스 메뉴에 액세스합니다.

-
Vault 화면이 로드되면 올바른 구획에 있는지 확인하고 저장소 생성을 누릅니다.
![구획을 확인하고 [저장소 생성] 단추를 누르십시오. 구획을 확인하고 [저장소 생성] 단추를 누르십시오.](images/Imagem18.png)
-
저장소를 올바르게 생성하기 위한 정보를 입력하고 저장소 생성을 누릅니다.

-
저장소를 생성한 후 마스터 암호화 키를 생성합니다.

-
자체 서명된 인증서를 포함할 저장소 암호를 만들기 전에 저장소에 저장할 인증서의 형식을 조정해야 합니다. 이 적합성은 인증서, 키, 중간 인증서(있는 경우) 및 인증서 문장암호(있는 경우)의 연결에 불과합니다. 아래 모델에 표시된 것처럼 최종 파일 형식은 JSON 형식입니다.
``` { "key": "-----BEGIN PRIVATE KEY-----\n…..-----END PRIVATE KEY-----\n", "cert": "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n", "intermediates": [ "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n", "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n" ], "passphrase": "<private key password if encrypted key is provided>" } ```- 우리의 인증서 및 키 세트로이 형식을 얻으려면, 당신이 볼 수 있듯이, 키 또는 인증서 또는 문장암호에 줄 바꿈이 없어야하기 때문에 약간의 처리가 필요합니다.
-
-
아래 명령을 사용하여 키를 조정하십시오.
`awk -v RS= '{gsub(/\n+/, "\\n")}1' <seu\_arquivo.key>`
-
이 값을 복사하여 위의 JSON 예의 "key" 항목에 삽입하십시오.
crt파일에 대해 이 프로세스를 반복합니다.
-
OCI 웹 콘솔로 돌아가서 OCI 저장소의 비밀 메뉴를 누르고 비밀 생성을 누릅니다.

-
필드를 올바르게 입력하고 보안 콘텐츠 필드에 위 단계에서 생성된 JSON을 삽입합니다.

- 암호 생성 양식에 필요한 정보를 입력하고 마스터 암호화 키를 선택한 다음 보안 콘텐츠 필드에 JSON 암호를 붙여 넣습니다. 암호가 생성되면 Oracle Integration 사용자정의 끝점을 생성하겠습니다.
태스크 2.5: Oracle Integration 인스턴스에 대한 사용자정의 끝점 구성
-
Oracle Integration 사용자정의 끝점을 구성하려면 OCI 웹 콘솔의 통합 페이지로 돌아가서 인스턴스에 액세스하십시오.

-
편집을 누릅니다.

-
Oracle Integration 설정 편집 페이지에서 고급 설정 표시를 눌러 사용자정의 끝점 구성 항목을 봅니다.

-
구성을 계속하려면 사용자정의 끝점의 이름을 입력하고 저장소 내에 저장된 SSL 인증서가 포함된 암호를 선택합니다. 마지막으로 변경사항 저장을 누릅니다.

- Oracle Integration 인스턴스가 UPDATING 상태로 변경됩니다. 다시 활성화될 때까지 기다립니다.
-
인스턴스가 ACTIVE 상태로 돌아오면 Service Console을 눌러 새 사용자정의 끝점에 대한 액세스를 테스트합니다.

- 모든 항목이 올바르게 구성된 경우 DNS CNAME에 구성된 FQDN(작업 2.2의 단계 2)을 사용하여 서비스 콘솔이 열립니다.
-
이 자습서와 마찬가지로 자체 서명된 SSL 인증서를 사용 중이므로 브라우저에서 인증서를 확인할 수 없음을 알리는 경보를 표시해야 합니다. 그러나 사용자정의 끝점의 FQDN이 이미 사용 중입니다.

-
액세스한 후에는 Oracle Integration 콘솔이 표시되어야 합니다. 이는 사용자정의 끝점이 올바르게 작동하고 있음을 나타냅니다.

주: 유효한 SSL 인증서를 사용하는 경우 인증서 유효성에 대한 브라우저 경고 메시지가 발행되지 않습니다.
작업 3: WAF 및 Oracle Integration 구성 AllowList
이제 Custom Endpoint가 작동 및 실행 중이므로 Layer 7 공격으로부터 액세스를 보호하도록 WAF 규칙 및 Oracle Integration 허용 목록을 구성해 보겠습니다.
외부 공격으로부터 Oracle Integration을 보호하도록 OCI WAF를 생성 및 구성하기 전에 먼저 Oracle Integration 허용 목록을 구성하여 방금 생성한 사용자정의 끝점에 액세스할 수 있는 소스 IP 주소를 제한해 보겠습니다. 아이디어는 WAF OCI CIDR에만 액세스 권한이 있다는 것입니다. 이렇게 하면 Oracle Integration 인스턴스에 대한 외부 액세스를 제한하여 WAF를 통해서만 모든 외부 액세스를 터널링할 수 있습니다.
허용 목록을 올바르게 생성하려면 먼저 Oracle Integration을 구성하는 지역에서 WAF OCI가 사용하는 서비스 CIDR을 캡처해야 합니다.
작업 3.1: OCI 영역의 CIDR 찾기
-
이 CIDR은 https://docs.oracle.com/en-us/iaas/tools/public_ip_ranges.json에서 사용할 수 있습니다. 이 JSON 파일은 인터넷에서 사용 가능한 모든 OCI 서비스의 CIDR을 포함합니다.
-
WAF CIDR을 찾으려면 먼저 위 URL의 JSON 파일 내에서 지역을 식별하는 문자열을 검색합니다. 상파울루 지역을 사용하면서 참조 문자열은 sa-saopaulo-1입니다.
-
다른 지역을 사용하는 경우 다음 URL에 액세스하여 Oracle Integration을 배포할 위치를 식별하는 문자열을 식별하십시오. 지역 및 가용성 도메인
작업 3.2: 해당 지역의 WAF CIDR 찾기
-
이제 OCI 서비스 공용(public) 범위의 위치와 OCI 리소스 인스턴스화에 사용 중인 지역 문자열을 찾을 수 있는 위치를 알 수 있으므로, WAF CIDR을 찾으려면 OCI의 전체 WAF 서비스 IP 범위 목록이 필요합니다.
-
OCI에서 WAF 서비스에 대한 공용 CIDR을 포함하는 URL은 에지 정책 시작하기입니다.
-
Step 6(6단계)로 이동합니다. WAF 보안 및 CIDR 범위 확장

-
OCI WAF 서비스의 사용 가능한 모든 주소를 찾을 수 있습니다. 이제 위의 작업 3.1에서 발생한 지역의 IP에 대해 "OSN"(Oracle Services Network) 항목을 검색하여 해당 지역에 해당하는 WAF 범위를 검색하고 찾습니다.
-
이 자습서에서는 상파울루 지역 IP를 사용합니다.
이제 이러한 레코드를 Oracle Integration 허용 목록에 포함할 수 있도록 찾은 주소를 기록해 두십시오.
작업 3.3: Oracle Integration에서 AllowList 구성
-
이제 WAF OCI 공용 주소가 있으므로 Oracle Integration 내에서 허용 목록을 생성하겠습니다. 이렇게 하려면 인스턴스 화면으로 돌아가서 네트워크 액세스 메뉴를 누른 다음 편집을 누릅니다.

-
이전 단계에서 얻은 CIDR 및 작업 2.2.1에서 생성된 VCN의 OCID로 정보를 입력합니다.

-
허용 목록이 구성되면 WAF CIDR만 콘솔에 직접 액세스할 수 있습니다. 인터넷을 통해 오는 다른 모든 액세스는 WAF를 통과해야 합니다.
-
이를 검증하려면 Oracle Integration Service 콘솔에 액세스해 보십시오. 모든 항목이 올바르게 구성된 경우 브라우저에 403 Forbidden 메시지가 표시됩니다.

이 액세스를 모니터하고 보호할 수 있도록 WAF를 구성해 보겠습니다.
작업 3.4: OCI WAF 에지 규칙 구성
처음에는 WAF에서도 Oracle Integration 콘솔에 대한 보안 HTTPS 액세스를 제공하는 데 사용할 SSL 인증서 레코드를 생성해야 합니다.
-
OCI 웹 콘솔 메뉴에서 에지 정책 리소스를 누릅니다.

-
서비스 페이지에서 인증서 생성을 누릅니다.

-
디지털 인증서 구성 페이지가 열립니다. 요청된 정보를 입력하고 위의 2.2.3단계에서 생성한 .crt 및 .key 파일을 업로드합니다.

주: 생성한 SSL 인증서는 자체 서명되었으므로 자체 서명된 인증서 옵션이 선택됩니다. 유효한 인증서를 사용하려는 경우 이 옵션을 선택 해제해야 합니다.
-
인증서가 생성되면 Web Application Firewall 메뉴로 돌아가서 이미 구성된 Oracle Integration 끝점을 보호하는 WAF 정책을 생성합니다. 이렇게 하려면 정책 메뉴에서 WAF 정책 생성을 누릅니다.

-
생성할 "레거시 워크플로우" 규칙에 대한 링크를 누르십시오.

-
새 메뉴가 열리고 요청된 정보를 올바르게 입력해야 합니다.

설명:
- 이름: 정책의 이름을 입력합니다.
- WAF 정책 구획: 정책이 생성될 구획을 선택합니다.
- 기본 도메인: DNS에서 만든 인스턴스의 FQDN입니다.
- 원본 이름: WAF가 외부 사용자 액세스를 보낼 URL을 식별하는 이름입니다.
- URI: Oracle Integration 인스턴스의 FQDN입니다(위 2.2.2단계의 CNAME에 구성된 것과 동일).
- 항목을 채운 후 에지 정책 생성을 누릅니다. 정책 세부정보가 포함된 새 화면이 나타납니다. 정책 상태가 "ACTIVE"가 될 때까지 기다립니다.
이제 WAF 보호 규칙 구성을 수행하고 WAF 인프라에 속한 FQDN에 DNS CNAME을 재구성해야 합니다.
작업 3.5: OCI WAF 보호 규칙 구성
-
에지 정책이 생성되면 WAF를 통해 Oracle Integration 인스턴스에 대한 액세스를 보호하기 위해 일부 매개변수를 설정해야 합니다. 이렇게 하려면 WAF 정책 내에서 설정 메뉴를 누른 다음 일반 설정 탭에서 편집을 누릅니다.

-
Enable HTTPS Support 옵션을 선택하고 3.3단계에서 만든 인증서를 선택합니다. 변경사항 저장을 누릅니다.

-
SSL 인증서를 사용하도록 WAF를 구성한 후 "액세스 제어" 정책 및 "보호 규칙"을 구성할 수 있습니다. 이러한 규칙은 Oracle Integration 콘솔에 대한 액세스가 보호되도록 필요한 보안을 제공합니다. WAF OCI는 사전 결정된 규칙을 구성 초기에 사용할 수 있으며 비즈니스 요구사항에 따라 규칙을 사용자정의할 수도 있습니다. WAF 규칙 사용자정의는 이 절차의 범위에 있지 않습니다.
-
액세스 제어 생성
-
액세스 제어를 구성하려면 액세스 제어 메뉴를 누르고 액세스 규칙 추가를 누릅니다.

-
액세스 제어 구성 화면에서 항목을 올바르게 입력하고 액세스 규칙 추가를 누릅니다. 이 자습서에서는 브라질에서 들어오는 IP 주소에서만 Oracle Integration 콘솔 페이지에 대한 액세스를 허용하는 규칙을 생성합니다.

-
-
보호 규칙 만들기
-
구성을 수행하려면 Protection Rules(보호 규칙) 메뉴를 누른 다음 Rules(규칙) 탭을 누르고 원하는 정책을 사용으로 설정합니다. 각 규칙의 서비스 메뉴를 눌러 블록에 배치합니다.

- 필요한 만큼 규칙을 선택합니다. 이 자습서에서는 데모용으로 XSS(교차 사이트 스크립팅) 규칙만 사용으로 설정합니다.
-
WAF 보호 규칙이 사용으로 설정되면 게시되지 않은 변경사항 메뉴를 누르고 모두 게시를 누릅니다.

-
-
WAF 규칙을 적용하는 데는 10-15분 정도 걸립니다.
작업 3.6: CNAME을 WAF의 FQDN으로 설정
WAF의 "보호 규칙"이 구성되면 전용 도메인의 CNAME을 변경하여 해당 CNAME에 지정된 모든 요청이 WAF로 전달되고 더 이상 Oracle Integration의 사용자정의 끝점으로 전달되지 않도록 할 수 있습니다.
-
이렇게 하려면 WAF 정책 페이지로 이동하여 DNS에서 구성해야 하는 CNAME 주소를 복사합니다.

-
이 주소를 복사하고 영역 내에서 가리키는 DNS를 변경합니다. DNS를 변경한 후 아래 명령을 실행하여 구성이 올바른지 검증하십시오.
$ dig <oic>.<exampledomain>.com
작업 3.7: Oracle Integration 애플리케이션 롤 구성
WAF를 통해 Oracle Integration에 대한 액세스를 테스트하기 전 마지막 한 단계는 Oracle Integration의 애플리케이션 롤을 변경하여 사용자에게 정확하게 액세스 권한을 부여하는 것입니다. 이 권한이 없으면 사용자가 Oracle Integration 콘솔에 액세스할 수 없습니다.
- OCI 웹 콘솔에서 도메인을 누르고 ID 도메인 구성에 액세스합니다.

주: 사용자정의 ID 도메인을 설정하지 않은 경우 default라는 도메인을 사용합니다. 이 자습서에서는 기본 도메인을 사용합니다.
-
Domains(도메인) 페이지에서 default를 누릅니다.

-
기본 도메인 페이지에서 "Oracle Cloud Services" 메뉴를 누른 다음 ICO 인스턴스에 대한 링크를 누릅니다.

-
인스턴스의 구성 페이지에서 애플리케이션 롤 메뉴를 눌러 Oracle Integration 애플리케이션 내의 기존 롤을 봅니다. 각 역할에서 사용자 또는 사용자 그룹을 할당하여 접근 프로필을 Oracle Integration 환경에 세부적으로 관리할 수 있습니다.

작업 4: 테스트 및 검증
WAF 정책 적용 및 WAF의 FQDN을 가리키도록 도메인의 CNAME 구성을 완료한 후 마지막으로 모든 항목이 제대로 작동하는지 테스트할 수 있습니다.
-
도메인의 FQDN을 통해 끝점의 URL에 액세스합니다. Oracle Integration 콘솔 페이지가 표시되어야 합니다.

-
WAF에서 수행한 필터링을 검증하려면 정책 구성 페이지에 액세스하고 Logs 메뉴를 누릅니다.

-
WAF의 작동을 검증하기 위해 브라우저의 URL을 통해 간단한 XSS 공격을 테스트할 수 있습니다.
https://<oic>.<exampledomain>.com/ic/home/?default=<script>alert(document.cookie)</script>
-
마지막으로 WAF 로그에 액세스하고 XSS 공격으로 인해 발생하는 무단 액세스 차단 레코드를 확인합니다.

이제 인터넷에서 사용할 수 있고 OCI WAF로 보호되는 Oracle Integration 환경이 제공됩니다.
관련 링크
이 자료를 사용하기 전에 Oracle 클라우드 환경 관리를 위한 참조 링크와 공식 설명서를 읽어볼 것을 권장합니다.
승인
작성자 - Rodrigo Pace de Barros(Oracle LAD A-Team Cloud Security 솔루션 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.
제품 설명서는 Oracle Help Center를 참조하십시오.
Configure and protect an Oracle Integration (Process) custom endpoint with OCI WAF
F80991-01
May 2023
Copyright © 2023, Oracle and/or its affiliates.