주:

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 Data Safe에 저장합니다. 이 로그는 데이터베이스 플리트 전체에서 온라인 분석 및 보고에 사용할 수 있습니다.

대상

데이터베이스 관리자 및 Oracle Cloud Infrastructure(OCI) 보안 관리자.

목표

간단한 사용 사례에서 Oracle Data Safe와 함께 Oracle SQL Firewall을 사용하는 방법을 이해합니다.

사용 사례: SQL 문 "Select on View"에 권한을 부여하고 지정된 사용자 APP_USER에 대해 다른 SQL을 차단합니다.

필요 조건

주: Oracle Database 23ai 인스턴스가 이미 있는 경우 작업 1을 건너뜁니다.

작업 1: Oracle Database 23ai Compute Instance 생성

  1. OCI 콘솔로 이동하여 컴퓨트, 인스턴스, 인스턴스 생성 순으로 이동합니다. 다음 세부 정보를 입력하여 인스턴스를 생성합니다.

    Database

  2. Oracle Database 23ai 데이터베이스 만들기. 다음 명령을 사용하여 컴퓨트 인스턴스에 접속합니다.

    ssh -i <private-ssh-key> opc@<publicip-computeinstance>
    
  3. 루트 사용자로 전환하고 VM에서 작업할 때 최신 소프트웨어로 시스템을 업데이트합니다.

    sudo su
    yum update
    
  4. Oracle Linux 8 Developer 저장소를 사용으로 설정합니다.

    yum config-manager --set-enabled ol8_developer
    
  5. Oracle Database 23ai Free RPM을 다운로드하여 루트로 설치합니다.

    yum -y install oracle-database-preinstall-23c
    
  6. 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
    
  7. 다음 명령을 실행하여 Oracle Database를 설치합니다.

    yum -y install oracle-database-free-23c-1.0-1.el8.x86_64.rpm
    
  8. Oracle Database 23ai를 구성합니다. 구성 스크립트는 하나의 플러거블 데이터베이스 FREEPDB1를 포함하는 컨테이너 데이터베이스(FREE)를 설정하고 기본 포트 1521에서 리스너를 준비합니다. 서비스 구성 스크립트를 실행합니다.

    /etc/init.d/oracle-free-23c configure
    
  9. 다음 설정을 사용하여 환경 변수를 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
    
  10. 다음 명령을 실행하여 인스턴스가 부트될 때 데이터베이스가 자동으로 시작되도록 합니다.

    systemctl enable oracle-free-23c
    
  11. Linux 방화벽이 사용으로 설정되었는지 확인합니다. 다음 명령을 사용하여 사용 안함으로 설정합니다.

    systemctl status firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    

작업 2: Oracle Data Safe를 통해 대상 데이터베이스에서 SQL 방화벽 상태 사용

  1. 페이지 상단의 이동 경로에서 Oracle 데이터베이스, Data Safe, 보안 센터SQL 방화벽을 누릅니다.

    Oracle Data Safe 탐색

  2. 기본적으로 SQL 방화벽은 새 대상 23ai 데이터베이스에서 사용 안함으로 설정됩니다. 데이터베이스를 누르고 활성화합니다.

    Oracle SQL Firewall 사용

작업 3: 샘플 사용자 및 객체 생성

  1. sys user as sysdba로 Oracle SQL Developer를 사용하여 FREEPDB1 데이터베이스에 연결하십시오.

    데이터베이스 접속

  2. 샘플 유저 및 객체를 생성합니다.

    -- 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 모음 생성 및 시작

  1. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보를 누르고 SQL 수집 생성 및 시작을 누릅니다.

    SQL 모음 시작

  2. 데이터베이스 사용자APP_USER로 입력하고 User issued SQL commands를 사용하여 SQL 수집 레벨을 사용으로 설정하고 SQL 수집 생성 및 시작을 누릅니다.

    데이터베이스 사용자 선택

    작업 요청 CREATE SQL COLLECTION이 SQL 수집을 시작합니다.

    작업 요청

작업 5: 인증된 SQL 문 실행

  1. Oracle SQL Developer를 사용하여 APP_USER@FREEPDB1에 접속합니다.

    데이터베이스에 접속

  2. 권한이 부여된 SQL 문을 실행합니다.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    

    SQL 문 실행

  3. Oracle Data Safe 콘솔에서 SQL 수집 인사이트를 볼 수 있습니다. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보SQL 수집 인사이트를 누릅니다.

    인사이트 보기

작업 6: SQL 수집 정지

  1. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보STOP를 누릅니다.

    SQL 모음 정지

작업 7: 방화벽 정책 생성

  1. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보방화벽 정책 생성을 누릅니다.

    Firewall 정책 생성

    고유한 허용 SQL 문을 볼 수 있으며 정책은 INACTIVE 상태입니다.

    정책 비활성

작업 8: 정책 배치 및 적용

  1. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보, 방화벽 정책 세부정보배치 및 적용을 누릅니다.

    정책 적용

  2. 다음 세부정보를 선택하고 배치 및 적용을 누릅니다.

    • 강제 수행 범위: All
    • 위반 조치: Block and log violations
    • 위반에 대한 감사: On

    정책 적용 선택

    정책 상태는 ACTIVE입니다.

    정책 활성

작업 9: Oracle SQL Firewall 테스트

  1. Oracle SQL Developer를 사용하여 APP_USER@FREEPDB1로 연결합니다.

    select * from APP_OWNER.DEMO_EMPLOYEES_VIEW;
    select * from APP_OWNER.DEMO_EMPLOYEES;
    

    DB 연결

  2. SQL 컬렉션에 없는 두번째 query에 대한 Oracle SQL Firewall 위반을 확인할 수 있습니다.

    질의 검증

작업 10: Oracle SQL Firewall 대시보드 및 위반 보고서 확인

  1. Oracle SQL Firewall Dashboard에서는 Oracle SQL Firewall 위반 및 SQL 모음의 플리트 뷰를 볼 수 있습니다. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 구성 세부정보, SQL 수집 세부정보방화벽 정책 생성을 누릅니다.

    보고서 확인

  2. 위반 요약을 볼 수 있습니다. 페이지 상단의 이동 경로에서 Data Safe, 보안 센터, SQL 방화벽, 위반 보고서모든 위반을 누릅니다.

    요약 확인

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.