주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마치면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체합니다.
Oracle Data Safe와 함께 Oracle SQL Firewall 사용
소개
Oracle SQL Firewall은 지정된 사용자에 대해서만 권한이 부여된 SQL 문 또는 연결로 데이터베이스 액세스를 제한하여 일반적인 데이터베이스 공격으로부터 실시간 보호를 제공합니다.
Oracle Database 23ai 데이터베이스용 Oracle SQL Firewall을 관리하고 모니터링할 수 있도록 Oracle Data Safe 통합 콘솔이 확장되었습니다. 관리자는 Oracle Data Safe를 사용하여 데이터베이스 계정의 SQL 작업을 수집하고, 수집 진행률을 모니터하고, 수집된 SQL 작업에서 허용 목록 규칙(허용된 컨텍스트 및 허용된 SQL 문)으로 SQL 방화벽 정책을 생성하고, SQL 방화벽 정책을 사용으로 설정할 수 있습니다.
방화벽 정책이 사용으로 설정되면 Oracle Data Safe는 데이터베이스에서 방화벽 위반 로그를 자동으로 수집하여 Oracle Data Safe에 저장합니다. 이 로그는 데이터베이스 플리트 전체에서 온라인 분석 및 보고에 사용할 수 있습니다.
대상
데이터베이스 관리자 및 Oracle Cloud Infrastructure(OCI) 보안 관리자.
목표
간단한 사용 사례에서 Oracle Data Safe와 함께 Oracle SQL Firewall을 사용하는 방법을 이해합니다.
사용 사례: SQL 문 "Select on View"에 권한을 부여하고 지정된 사용자 APP_USER
에 대해 다른 SQL을 차단합니다.
APP_OWNER
: 애플리케이션의 테이블 및 뷰 소유자입니다.APP_USER
: 애플리케이션에 액세스해야 합니다.
필요 조건
-
Oracle Database 23ai는 OCI에서 프로비저닝되었습니다. 이 자습서에서는 OCI 컴퓨트 인스턴스에서 생성된 데이터베이스를 사용했습니다.
-
Oracle Database 23ai PDB(플러거블 데이터베이스) -
FREEPDB1
를 Oracle Data Safe의 대상으로 추가합니다. 이 자습서에서는 컴퓨트 인스턴스 마법사를 사용하여 등록했습니다. Oracle Data Safe - 대상 데이터베이스 등록을 참조하십시오. -
Oracle SQL Firewall 테스트용 Oracle Database 툴입니다. Oracle SQL Developer를 사용하여 SQL 문을 실행하고 있습니다. 자세한 내용은 Oracle SQL Developer를 참조하십시오.
주: Oracle Database 23ai 인스턴스가 이미 있는 경우 작업 1을 건너뜁니다.
작업 1: Oracle Database 23ai Compute Instance 생성
-
OCI 콘솔로 이동하여 컴퓨트, 인스턴스, 인스턴스 생성 순으로 이동합니다. 다음 세부 정보를 입력하여 인스턴스를 생성합니다.
-
Oracle Database 23ai 데이터베이스 만들기. 다음 명령을 사용하여 컴퓨트 인스턴스에 접속합니다.
ssh -i <private-ssh-key> opc@<publicip-computeinstance>
-
루트 사용자로 전환하고 VM에서 작업할 때 최신 소프트웨어로 시스템을 업데이트합니다.
sudo su yum update
-
Oracle Linux 8 Developer 저장소를 사용으로 설정합니다.
yum config-manager --set-enabled ol8_developer
-
Oracle Database 23ai Free RPM을 다운로드하여 루트로 설치합니다.
yum -y install oracle-database-preinstall-23c
-
RPM 기반 설치를 실행하려면
oracle-database-free-23c-1.0-1.el8.x86_64.rpm
파일을 다운로드합니다.wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
다음 명령을 실행하여 Oracle Database를 설치합니다.
yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
-
Oracle Database 23ai를 구성합니다. 구성 스크립트는 하나의 플러거블 데이터베이스
FREEPDB1
를 포함하는 컨테이너 데이터베이스(FREE)를 설정하고 기본 포트1521
에서 리스너를 준비합니다. 서비스 구성 스크립트를 실행합니다./etc/init.d/oracle-free-23c configure
-
다음 설정을 사용하여 환경 변수를
bash_profile
로 설정합니다.#Oracle Database environment variables export ORACLE_SID=FREE export ORACLE_HOME=/opt/oracle/product/23c/dbhomeFree export ORAENV_ASK=NO export PATH=$ORACLE_HOME/bin:$PATH
-
다음 명령을 실행하여 인스턴스가 부트될 때 데이터베이스가 자동으로 시작되도록 합니다.
systemctl enable oracle-free-23c
-
Linux 방화벽이 사용으로 설정되었는지 확인합니다. 다음 명령을 사용하여 사용 안함으로 설정합니다.
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld
작업 2: Oracle Data Safe를 통해 대상 데이터베이스에서 SQL 방화벽 상태 사용
-
페이지 상단의 이동 경로에서 Oracle 데이터베이스, Data Safe, 보안 센터 및 SQL 방화벽을 누릅니다.
-
기본적으로 SQL 방화벽은 새 대상 23ai 데이터베이스에서 사용 안함으로 설정됩니다. 데이터베이스를 누르고 활성화합니다.
작업 3: 샘플 사용자 및 객체 생성
-
sys user as sysdba로 Oracle SQL Developer를 사용하여
FREEPDB1
데이터베이스에 연결하십시오. -
샘플 유저 및 객체를 생성합니다.
-- APP_OWNER who is the owner of the tables and views of the application -- APP_USER who needs to access to the application Create user app_owner identified by QAZxswedc123##; Grant connect, resource, unlimited tablespace to app_owner; Create user app_user identified by QAZxswedc123##; Grant connect, resource, select any table to app_user; -- Sample table created in appuser_test schema CREATE TABLE "APP_OWNER"."DEMO_EMPLOYEES" ( "USERID" NUMBER(4,0), "FIRSTNAME" VARCHAR2(25 BYTE), "LASTNAME" VARCHAR2(35 BYTE), "EMAIL" VARCHAR2(35 BYTE) ) ; Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (73,'Craig','Hunt','Craig.Hunt@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (74,'Fred','Stewart','Fred.Stewart@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (75,'Julie','Reed','Julie.Reed@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (76,'Ruby','James','Ruby.James@oracledemo.com'); Insert into APP_OWNER.DEMO_EMPLOYEES (USERID,FIRSTNAME,LASTNAME,EMAIL) values (77,'Alice','Harper','Alice.Harper@oracledemo.com'); Commit; Create view APP_OWNER.DEMO_EMPLOYEES_VIEW as select * from APP_OWNER.DEMO_EMPLOYEES;
작업 4: SQL 모음 생성 및 시작
-
페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보를 누르고 SQL 수집 생성 및 시작을 누릅니다.
-
데이터베이스 사용자를
APP_USER
로 입력하고User issued SQL commands
를 사용하여 SQL 수집 레벨을 사용으로 설정하고 SQL 수집 생성 및 시작을 누릅니다.작업 요청 CREATE SQL COLLECTION이 SQL 수집을 시작합니다.
작업 5: 인증된 SQL 문 실행
-
Oracle SQL Developer를 사용하여
APP_USER@FREEPDB1
에 접속합니다. -
권한이 부여된 SQL 문을 실행합니다.
select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
-
Oracle Data Safe 콘솔에서 SQL 수집 인사이트를 볼 수 있습니다. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보 및 SQL 수집 인사이트를 누릅니다.
작업 6: SQL 수집 정지
-
페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보 및 STOP를 누릅니다.
작업 7: 방화벽 정책 생성
-
페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보 및 방화벽 정책 생성을 누릅니다.
고유한 허용 SQL 문을 볼 수 있으며 정책은
INACTIVE
상태입니다.
작업 8: 정책 배치 및 적용
-
페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보, 방화벽 정책 세부정보 및 배치 및 적용을 누릅니다.
-
다음 세부정보를 선택하고 배치 및 적용을 누릅니다.
- 강제 수행 범위:
All
- 위반 조치:
Block and log violations
- 위반에 대한 감사:
On
정책 상태는
ACTIVE
입니다. - 강제 수행 범위:
작업 9: Oracle SQL Firewall 테스트
-
Oracle SQL Developer를 사용하여
APP_USER@FREEPDB1
로 연결합니다.select * from APP_OWNER.DEMO_EMPLOYEES_VIEW; select * from APP_OWNER.DEMO_EMPLOYEES;
-
SQL 컬렉션에 없는 두번째 query에 대한 Oracle SQL Firewall 위반을 확인할 수 있습니다.
작업 10: Oracle SQL Firewall 대시보드 및 위반 보고서 확인
-
Oracle SQL Firewall Dashboard에서는 Oracle SQL Firewall 위반 및 SQL 모음의 플리트 뷰를 볼 수 있습니다. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보 및 방화벽 정책 생성을 누릅니다.
-
위반 요약을 볼 수 있습니다. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 위반 보고서 및 모든 위반을 누릅니다.
관련 링크
확인
-
작성자 - Alex Kovuru
-
기여자 - Indira Balasundaram
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Use Oracle SQL Firewall with Oracle Data Safe
F91610-02
May 2024