배포 선택 및 구현

이 섹션에 나와 있는 방법을 사용하여 Oracle Autonomous Database Serverless@Azure를 보안합니다.

  1. 투명한 데이터 암호화 및 Azure Key Vault 사용
  2. Oracle Database Vault 구성 및 사용
  3. Oracle Data Safe에 데이터베이스 등록
  4. Entra ID와 통합하여 사용자 인증 및 권한 부여 중앙 집중화
  5. 감사 및 데이터베이스 파이프라인을 통합하여 Azure Blob Storage로 데이터 내보내기
  6. Oracle Database 23ai용 Oracle SQL Firewall 사용

옵션 1: 투명한 데이터 암호화 및 Azure Key Vault 사용

Oracle TDE(투명한 데이터 암호화)는 모든 Oracle Autonomous Database Serverless 데이터베이스에서 기본적으로 구성 및 활성화됩니다.

다음 단계에서는 기본 TDE 설정을 검증하는 방법을 보여줍니다. 그런 다음 Oracle Autonomous Database Serverless용 Azure Key Vault를 사용하여 고객 관리 암호화를 구현하는 단계를 안내합니다.



adbs-키-볼트-arch-oracle.zip

여기에 제시된 계획을 구현하려면 먼저 다음 필요 조건을 충족해야 합니다.

  • Microsoft Azure 콘솔을 사용하여 Oracle Autonomous Database Serverless 인스턴스 배포
  • Azure Key Vault 생성(표준 또는 프리미엄)
  • Azure Key Vault에서 RSA 2048비트 키 만들기
  • Autonomous Database용 서비스 주체 생성

TDE 및 Azure 키 볼트를 사용하려면 다음 단계를 수행하십시오.

  1. Oracle Autonomous Database Serverless 인스턴스의 Azure 서비스 주체에 서비스 주체 저장소 액세스 정책을 지정합니다.
    1. Azure Key Vault 인스턴스로 이동합니다.
    2. 설정을 누른 다음 구성 액세스를 누릅니다.
    3. 저장소 액세스 정책을 누릅니다.
    4. 정책에 액세스하려면 이동을 누릅니다.
  2. 저장소 액세스 정책 생성:
    1. 다음 권한 선택:
      • 가져오기
      • 나열
      • 암호화
      • Sign
      • 확인
    2. 다음을 누릅니다.
  3. Oracle Autonomous Database Serverless 인스턴스에 대해 생성된 서비스 주체를 선택합니다.
    1. 검토 및 생성까지 계속해서 다음을 누릅니다.
    2. 생성을 누릅니다.
  4. Oracle Cloud Infrastructure(OCI)에서 키 관리를 위해 Oracle Autonomous Database Serverless를 구성하는 데 사용할 다음 정보를 수집합니다.
    • 저장소 URI
    • 키 이름
  5. Azure Key Vault 인스턴스 내에서 키 이름을 복사합니다.
  6. OCI에서 Oracle Autonomous Database Serverless 인스턴스로 이동합니다.
    1. 추가 작업을 누릅니다.
    2. 암호화 키 관리를 누릅니다.
    3. 고객 관리 키를 사용하여 암호화를 누릅니다.
    4. 키 유형 메뉴에서 Azure를 선택합니다.
    5. 다음 필드를 Azure의 정보로 채웁니다.
      • 저장소 URI(후행 슬래시는 포함하지 않음)
      • 키 이름
    6. 저장을 누릅니다.
      Autonomous Database가 다시 [사용 가능]으로 표시되는 시기를 업데이트하는 데 시간이 걸리며 Autonomous Database 세부정보에서 새로 지정된 키를 확인할 수 있습니다.

      핵심 이력에서는 고객 관리형 키(Microsoft Azure)가 이제 TDE에 사용되는 마스터 암호화 키임을 보여야 합니다.

  7. 관리자로 데이터베이스에 사인인하고 TDE를 검증합니다.

    데이터베이스 클라이언트를 열고 새로 프로비저닝된 데이터베이스에 연결합니다. 연결되면 CloudShell 또는 이와 유사한 SQL 질의를 실행하여 데이터베이스에 TDE 마스터 키가 있고 테이블스페이스가 AES256를 사용하여 암호화되었는지 검증합니다.

    SQL> set page 900
    SQL> set linesize 900
    column activation_time format a40
    column tag format a150
    column pdb_name format a40
    column tablespace_name format a30
    column algorithm format a10SP2-0158: unknown SET option "page"
    SQL> SQL> SQL> SQL> SQL> SQL>
    SQL> select KEY_ID,ACTIVATION_TIME,KEY_USE from V$ENCRYPTION_KEYS;
    
    KEY_ID
    ------------------------------------------------------------
    ACTIVATION_TIME                          KEY_USE
    ---------------------------------------- -----------------
    ATAQECQ0Q8NaSEBa0dDOQ8EPMAAAAAAAAAAAAAAAAAA== 06-MAY-25 01.41.04.516182 PM +00:00  TDE IN PDB
    AVAK/QOQ6Bac3xAJEBAQDAUAAAAAAAAAAAAAAAAAAA== 06-MAY-25 01.58.34.616781 PM +00:00  TDE IN PDB
    
    SQL> select a.name pdb_name, b.name tablespace_name, c.ENCRYPTIONALG algorithm
      2    from v$pdbs a, v$tablespace b, v$encrypted_tablespaces c
      3   where a.con_id = b.con_id
      4     and b.con_id = c.con_id
      5     and b.ts# = c.ts#;
         2    3    4    5
    
    PDB_NAME                                 TABLESPACE_NAME                ALGORITHM
    ---------------------------------------- ------------------------------ ----------
    G283BFEA6ED35C8_MULTICLOUDWEBINAR01      SYSTEM                         AES256
    G283BFEA6ED35C8_MULTICLOUDWEBINAR01      SYSAUX                         AES256
    G283BFEA6ED35C8_MULTICLOUDWEBINAR01      UNDOTBS1                       AES256
    G283BFEA6ED35C8_MULTICLOUDWEBINAR01      USERS                          AES256
    G283BFEA6ED35C8_MULTICLOUDWEBINAR01      DBFS_DATA                      AES256
    G283BFEA6ED35C8_MULTICLOUDWEBINAR01      TEMP                           AES256
    
    6 rows selected.
    
    SQL>

옵션 2: Oracle Database Vault 구성 및 사용

Oracle Autonomous Database Serverless 인스턴스에서 Oracle Database Vault를 구성하고 사용으로 설정하여 권한이 부여되지 않은 계정 액세스로부터 데이터를 보호합니다.

Oracle Database Vault의 업무 분리를 용이하게 하기 위해 몇 가지 추가 데이터베이스 계정을 생성해야 합니다. Oracle Database Vault가 사용으로 설정된 후 Oracle Database Vault 영역을 생성하여 중요한 데이터를 데이터베이스 내의 권한이 높은 계정과 분리합니다.

Oracle Database Vault를 구성하고 사용으로 설정하려면 다음을 수행합니다.

  1. Oracle Database Vault 구성에 필요한 계정을 생성합니다.

    Oracle은 사용자가 데이터를 잠그지 않도록 여러 계정을 생성할 것을 권장합니다. 이러한 계정의 암호를 잃어버리면 데이터에 액세스할 수 없게 됩니다.

    Oracle Autonomous Database Serverless 데이터베이스에 사인인하고 네 개의 데이터베이스 계정을 생성합니다. 두 개의 계정에 Database Vault 소유자 롤이 지정되고 두 개의 계정에 Database Vault 계정 관리자 롤이 지정됩니다.

    다음 예제 코드를 사용하여 계정을 생성합니다. 여기서 <user_name>는 연관된 계정을 식별하는 데 사용되는 이름입니다.

    Connected to:
    Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
    Version 23.8.0.25.05
    
    SQL> create user DBOWNER identified by "<user_name>";
    User created.
    
    SQL> create user DBVACCTMGR identified by "<user_name>";
    User created.
    
    SQL> create user DBOWNER_BACKUP identified by "<user_name>";
    User created.
    
    SQL> create user DBVACCTMGR_BACKUP identified by "<user_name>";
    User created.
    
    SQL> grant connect, resource to DBOWNER;
    Grant succeeded.
    
    SQL> grant connect, resource to DBOWNER_BACKUP;
    Grant succeeded.
    
    SQL> grant connect, resource to DBVACCTMGR;
    Grant succeeded.
    
    SQL> grant connect, resource to DBVACCTMGR_BACKUP;
    Grant succeeded.
    
    SQL> show con_name;
    
    CON_NAME
    ------------------------------
    G283BFEA6ED35C8_MULTICLOUDWEBI
    NAR01
    
    SQL> select * from dba_dv_status;
    
    NAME                STATUS
    ------------------  ----------------
    DV_APP_PROTECTION   NOT CONFIGURED
    DV_CONFIGURE_STATUS FALSE
    DV_ENABLE_STATUS    FALSE
    SQL>
    
  2. Oracle Database Vault를 구성하고 사용으로 설정합니다.
    1. 데이터베이스에 admin로 로그인하고 다음 패키지를 실행하여 Oracle Database Vault를 구성합니다.
      SQL>
      SQL> EXEC DBMS_CLOUD_MCADM.CONFIGURE_DATABASE_VAULT('DBVOWNER', 'DBVACCTMGR');
       
      PL/SQL procedure successfully completed.
      Oracle Database Vault를 구성한 후 사용으로 설정합니다. Oracle Database Vault가 사용으로 설정된 후 Database Vault 소유자 롤이 있는 계정은 저장소 구성을 관리할 수 있으며 Database Vault 계정 관리자 롤이 있는 계정은 데이터베이스에서 계정을 생성하고 관리할 수 있습니다. 이제 데이터베이스의 책임 구분을 활용할 수 있습니다.
    2. 데이터베이스를 재시작합니다.
      OCI의 데이터베이스 인스턴스 페이지에서 작업 더 보기를 누르고 다시 시작을 선택합니다.
    3. 다음 예제 코드를 사용하여 Oracle Database Vault가 구성 및 사용으로 설정되었는지 검증합니다.
      Connected to:
      Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
      Version 23.0.0.25.0
      
      SQL> SELECT * FROM DBA_DV_STATUS;
      
      NAME                     STATUS
      ------------------------ ----------------
      DV_APP_PROTECTION        NOT CONFIGURED
      DV_CONFIGURE_STATUS      TRUE
      DV_ENABLE_STATUS         TRUE
      
      SQL>
    4. Oracle Database Vault 롤을 백업 계정에 부여합니다.
      
      SQL> grant DV_OWNER to DBOWNER_BACKUP;
      
      Grant succeeded.
      
      SQL> grant DV_ACCTMGR to DBVACCTMGR_BACKUP;
      
      Grant succeeded.
      
      SQL>  
  3. 권한 있는 계정과 중요한 데이터를 구분할 영역을 생성합니다.
    1. 영역을 생성하기 전에 admin로 로그인하고 권한 있는 계정이 민감한 데이터(이 경우 HR(인적 자원) 데이터에 액세스할 수 있는지 검증합니다.
      SQL> show user;
      USER is "ADMIN"
      SQL> select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY from HR.EMPLOYEES where ROWNUM < 8;
      
      EMPLOYEE_ID FIRST_NAME      LAST_NAME                 SALARY
      ----------- --------------- ------------------------- ----------
              100 Steven          King                         24000
              101 Neena           Yang                         17000
              102 Lex             Garcia                       17000
              103 Alexander       James                         9000
              104 Bruce           Miller                        6000
              105 David           Williams                      4800
              106 Valli           Jackson                       4800
      
      7 rows selected.
      
      SQL>
    2. Database Vault 소유자 롤을 가진 사용자로 Oracle Autonomous Database Serverless에 사인인합니다. 이 PL/SQL 블록을 실행하여 Protect HR Data이라는 영역을 생성합니다.
      SQL> begin
        2  DVSYS.DBMS_MACADM.CREATE_REALM(
        3     realm_name => 'Protect HR Data'
        4    , description => 'This Realm will protect HR data from unauthorized privileged user access'
        5    , enabled => 'Y'
        6    , realm_type => DBMS_MACADM.MANDATORY_REALM );
        7  end;
        8  /
      PL/SQL procedure successfully completed.
      
      SQL>
    3. 영역으로 보호할 데이터베이스 객체를 추가합니다. 이 PL/SQL 블록을 실행하여 HR 스키마의 모든 테이블을 Protect HR Data 영역에 추가합니다.
      SQL> begin
        DVSYS.DBMS_MACADM.ADD_OBJECT_TO_REALM(
          realm_name => 'Protect HR Data',
          object_owner => 'HR',
          object_name => '%',
          object_type => 'TABLE');
      end;
      / 
      2    3    4    5    6    7    8
      
      PL/SQL procedure successfully completed.
      
      SQL>
    4. 이 PL/SQL 블록을 실행하여 HR 스키마 계정과 HR Manager hr_debra를 Realm Authorized Participants로 추가합니다. 이렇게 하면 HR 관리자와 응용 프로그램 서비스 계정만 HR 스키마의 데이터에 액세스할 수 있습니다. 데이터베이스 내 DBA 계정 또는 기타 권한이 높은 계정은 Database Vault 영역으로 보호되는 데이터에 액세스할 수 없습니다.
      SQL> begin
        DVSYS.DBMS_MACADM.ADD_OBJECT_TO_REALM(
          realm_name => 'Protect HR Data',
          object_owner => 'HR',
          object_name => '%',
          object_type => 'TABLE');
      end;
      /  2    3    4    5    6    7    8
      
      PL/SQL procedure successfully completed.
      
      SQL>
    5. ADMIN 검증은 더 이상 HR 데이터에 액세스할 수 없습니다.
      SQL> 
      SQL> show user;
      USER is "ADMIN"
      SQL> select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY from HR.EMPLOYEES where ROWNUM < 8;
      select EMPLOYEE_ID,FIRST_NAME,LAST_NAME,SALARY from HR.EMPLOYEES where ROWNUM < 8
                                                                                       *
      ERROR at line 1:
      ORA-01031: insufficient privileges
      
      
      SQL>

옵션 3: Oracle Data Safe에 데이터베이스 등록

Oracle Data Safe는 데이터의 민감도를 파악하고, 데이터의 위험을 평가하고, 중요한 데이터를 마스크하고, 보안 제어를 구현 및 모니터하고, 사용자 보안 평가하고, 사용자 작업을 모니터하고, 데이터 보안 준수 요구사항을 해결하는 데 유용한 Oracle 데이터베이스의 통합 제어 센터입니다.

이 옵션에서는 Oracle Data Safe에 대상 인스턴스를 등록합니다. 성공적으로 등록한 후 보안 평가 및 사용자 평가 결과를 검토하고 각각에 대한 기준을 구성합니다.

Oracle Data Safe에 데이터베이스를 등록하려면 다음 단계를 수행합니다.

  1. Oracle Data Safe로 대상 데이터베이스 등록:
    1. OCI 콘솔에서 Oracle Database, Data Safe에서 개요를 차례로 누릅니다. 왼쪽 탐색 창에서 대상 데이터베이스를 누르고 데이터베이스 등록을 누릅니다.
    2. Oracle Autonomous Database Serverless를 선택하고 필요한 정보를 입력한 다음 등록을 누릅니다.
    3. 성공적인 대상 등록 시 Oracle Data Safe는 보안 평가 스캔과 사용자 평가 스캔을 모두 시작합니다.
  2. 보안 평가 검토:
    1. Data Safe 개요 페이지의 왼쪽 탐색 창에서 보안 평가를 누릅니다. 대상 요약 탭을 선택한 다음 데이터베이스에 대한 대상 요약을 누릅니다.
    2. 아래로 이동하여 각 결과를 검토합니다. 필요한 경우 수정 조치를 취하고 다른 스캔을 시작합니다. 현재 스캔 결과에 만족하고 결과를 수락하는 경우 기준 요소로 설정을 누릅니다. 이후의 모든 스캔은 Baseline과 비교되며, 데이터베이스 구성이 설정된 Baseline에서 벗어나면 통지를 받게 됩니다.
  3. 사용자 평가 검토:
    1. Data Safe 개요 페이지의 왼쪽 탐색 창에서 보안 평가를 누릅니다. 대상 요약 탭을 선택한 다음 데이터베이스에 대한 대상 요약을 누릅니다.
    2. 아래로 이동하여 각 결과를 검토합니다. 필요한 경우 수정 조치를 취하고 다른 스캔을 시작합니다. 현재 스캔 결과에 만족하고 결과를 수락하는 경우 기준 요소로 설정을 누릅니다. 이후의 모든 스캔은 Baseline과 비교되며, 데이터베이스 구성이 설정된 Baseline에서 벗어나면 통지를 받게 됩니다.

옵션 4: Entra ID와 통합하여 유저 인증 및 권한 부여 중앙화

Oracle Database 사용자를 위한 사용자 및 자격 증명을 관리하는 것은 데이터베이스 인스턴스의 수가 증가함에 따라 빠르게 까다로운 관리 부담이 될 수 있습니다.

Oracle은 수십 년 동안 이러한 문제를 완화할 수 있는 혁신적인 솔루션을 개발해 왔습니다. Oracle Autonomous Database는 Microsoft의 클라우드 ID 플랫폼인 Entra ID(이전의 Active Directory)에서 발행한 OAuth2 토큰을 지원합니다. 이 기능을 사용하면 중앙 클라우드 ID 솔루션에서 사용자 및 역할을 관리할 수 있으며, Oracle Autonomous Database는 정책 기반 액세스 제어를 위해 해당 자격 증명을 사용합니다.

인증 흐름은 아래 다이어그램에 나와 있으며 다음 단계에 설명되어 있습니다.



azure 인증-oracle.zip

  1. Azure 사용자가 Oracle Autonomous Database Serverless 인스턴스에 대한 액세스를 요청합니다.
  2. 데이터베이스 클라이언트 또는 응용 프로그램이 Entra ID에서 권한 부여 코드를 요청합니다.
  3. Entra ID는 사용자를 인증하고 인증 코드를 반환합니다.
  4. 도우미 도구 또는 응용 프로그램은 Entra ID와 함께 권한 부여 코드를 사용하여 OAuth2 토큰과 교환합니다.
  5. 데이터베이스 클라이언트는 OAuth2 액세스 토큰을 Oracle 데이터베이스로 보냅니다. 토큰에는 데이터베이스에 대한 Entra ID 앱 등록에서 사용자가 지정한 데이터베이스 앱 롤이 포함됩니다.
  6. Oracle Autonomous Database Serverless 인스턴스는 Entra ID 퍼블릭 키를 사용하여 액세스 토큰이 Entra ID에 의해 생성되었는지 확인합니다.

여기에 제시된 계획을 구현하려면 먼저 다음 필요 조건을 충족해야 합니다.

  • Oracle Autonomous Database Serverless를 Microsoft Azure Entra ID 엔터프라이즈 애플리케이션으로 설정합니다(자세히 탐색 섹션에서 자습서 참조).
  • 원활한 Azure Entra ID 인증을 위해 SQL Developer Client를 설정합니다.

인증을 Microsoft Entra ID와 통합하려면 다음 단계를 수행하십시오.

  1. 인증을 위해 Azure Entra ID의 엔터프라이즈 애플리케이션을 사용하도록 Oracle Autonomous Database Serverless를 구성합니다.

    다음 절차는 Entra ID 테넌시를 ID 제공자로 사용하도록 Oracle Autonomous Database Serverless에 지시하고, 특히 데이터베이스 권한 부여를 위해 엔터프라이즈 애플리케이션에서 발행한 OAuth2 토큰을 바인딩합니다.

    1. Oracle Database Actions(SQL Developer Web) 인스턴스에 사인인합니다.
    2. 왼쪽 패널에서 적절한 연결을 선택합니다.
    3. 검색 표시줄 위의 메뉴에서 를 누릅니다.
    4. 검색 표시줄에 뷰 이름(예: MULTICLOUD_DEMO_AZURE_CONFIGS)을 입력하여 뷰를 빠르게 찾은 다음 뷰 이름을 누릅니다.
    5. 연관된 테넌트 ID 및 애플리케이션 URI와 함께 다음 SQL 코드를 입력합니다.
      BEGIN
          DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
              type   => 'AZURE_AD',
              params => JSON_OBJECT('tenant_id' VALUE '<tenant_id>',
                                    'application_id' VALUE 'f2c359b4-c3f9-4415-a333-332340376e59',
                                    'application_id_uri' VALUE '<application_id_uri>'),
              force => TRUE
          );
      END;
  2. 사용자 연관을 생성합니다.
    1. Oracle Autonomous Database Serverless에서 사용자 스키마를 생성하고 해당 사용자를 Entra ID의 사용자 주체 ID와 연관시킵니다. 전역 사용자를 정의하면 Entra ID 토큰 주체가 데이터베이스 사용자의 ID를 검증하는 데 사용됨을 나타냅니다.
      이 사용 사례의 경우 Entra ID Subject to Database의 일대일 매핑이 사용됩니다. 대규모 배포의 경우 관리자는 Entra ID의 역할 및 그룹 멤버쉽을 기반으로 공유 스키마 사용자 매핑을 구성하도록 선택할 수 있습니다.
    2. Oracle Database Actions(SQL Developer Web) 인스턴스에서 데이터베이스 사용자에게 연결 기능을 부여합니다.
      CREATE USER <azure_user_name> IDENTIFIED GLOBALLY AS 'AZURE_USER=<azure_user_name>';
      
      grant connect to <azure_user_name>;
  3. Oracle SQL Developer 및 Entra ID를 사용하여 데이터베이스에 사인인합니다.
    Oracle SQL Developer를 열고 Azure Entra ID와의 대화식 로그인을 허용하는 최신 JDBC 라이브러리를 사용하여 Oracle Autonomous Database Serverless 인스턴스에 대한 연결을 구성합니다.
    1. Oracle SQL Developer 접속 패널에서 새 접속을 누릅니다.
    2. 접속 이름을 지정하십시오.
    3. 인증 유형으로 OS를 선택합니다.
    4. 접속 유형으로 사용자정의 JDBC를 선택합니다.
    5. JDBC URL 입력:
      jdbc:oracle:thin:@config=<jdbc_url>
    6. Entra ID에 대한 대화식 로그인을 위해 브라우저를 여는 테스트를 눌러 접속을 확인합니다.
    7. Database Global User로 매핑한 유저를 사용하여 인증합니다.
      로그인에 성공하면 열린 SQL 연결이 설정됩니다.
    8. show user를 실행하여 스키마 사용자를 반환합니다.
      show user;
      select sys_context('USERENV', 'AUTHENTICATED_IDENTITY') from dual;
    9. 세션 컨텍스트에서 인증된 주체가 Entra ID 주체를 보유함을 확인합니다.
      통합 감사 추적에서 Entra ID 사용자를 인증된 주체가 수행한 트랜잭션과 연관시키는 데 사용됩니다.
    10. 데이터베이스 접속 창에서 저장을 누릅니다.

옵션 5: 감사 및 데이터베이스 파이프라인을 통합하여 Azure Blob Storage로 데이터 내보내기

강력한 예방 보안 제어 기능은 전투의 절반에 불과합니다. 또한 공격 대상이 아닌 경우에도 시스템을 감사 및 모니터링해야 합니다.

데이터베이스 트랜잭션의 Audit Trail을 생성하는 것은 추적 가능성을 보장하는 강력한 방법입니다. Oracle Autonomous Database에는 구성 및 배포할 준비가 되어 있으며 이러한 감사 로그를 선택한 멀티클라우드 스토리지에 푸시할 수 있는 파이프라인이 포함되어 있습니다. 이 섹션에서는 이전 섹션에서 생성한 기존 Entra ID 서비스 주체를 사용하여 감사 추적을 연속적인 시간 간격으로 Azure Blob Storage에 푸시하는 방법을 보여줍니다.



adbs-파이프라인-익스포트-arch-oracle.zip

여기에 제시된 계획을 구현하려면 먼저 다음 필요 조건을 충족해야 합니다.

  • Oracle Data Safe로 통합 감사 추적을 사용으로 설정합니다.
  • Oracle Autonomous Database Serverless에 대한 서비스 주체를 생성합니다.
  • Azure Storage 계정을 만듭니다.
  • Oracle Autonomous Database Serverless 감사 로그에 대한 프라이빗 컨테이너를 Azure 스토리지 계정에 생성합니다.

감사 로그를 사용하고 저장하려면 다음 단계를 수행하십시오.

  1. Oracle Autonomous Database Serverless 서비스 주체에 스토리지 Blob 데이터 제공자 롤 지정:
    1. In the Azure portal, select the storage account you created previously.
    2. 액세스 제어(IAM)를 누릅니다.
    3. 추가를 누른 후 롤 지정 추가를 누릅니다.
    4. 검색 표시줄을 사용하여 Storage Blob Data Contributor를 검색합니다.
    5. 저장소 Blob 데이터 제공자 역할을 누릅니다.
    6. 다음을 누릅니다.
  2. 롤 지정에 Oracle Autonomous Database Serverless 서비스 주체를 추가합니다.
    1. [멤버] 섹션에서 Oracle Autonomous Database Serverless 서비스 주체를 검색합니다.
    2. 멤버쉽을 지정합니다.
    3. 검토 + 지정을 누릅니다.
  3. Azure Storage Container 위치에서 파이프라인 속성을 구성합니다.

    SQL Worksheet를 열고 <storage_location_url>가 Azure 저장 영역 위치의 URL인 다음 SQL 프로시저를 실행합니다.

    BEGIN
    DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'ORA$AUDIT_EXPORT',
      attribute_name => 'credential_name',
      attribute_value => 'AZURE$PA' );
    
    DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'ORA$AUDIT_EXPORT',
      attribute_name => 'location',
      attribute_value => '<storage_location_url>' );
    
    DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE( pipeline_name => 'ORA$AUDIT_EXPORT',
      attribute_name => 'interval',
      attribute_value => '15' );
    
    END;
    /
  4. 엑스포트 파이프라인을 테스트하여 실행되도록 설정하려면 다음 명령문을 실행합니다.
    /* THIS RUNS THE PIPELINE ONCE*/
    /
    BEGIN DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE( pipeline_name => 'ORA$AUDIT_EXPORT' );
    END;
    /
    
    /* IF SUCCESSFUL - THIS WILL RESET THE PIPELINE*/
    /
    BEGIN DBMS_CLOUD_PIPELINE.RESET_PIPELINE( pipeline_name => 'ORA$AUDIT_EXPORT', purge_data => TRUE);
    END;
    /
    
    /* THIS WILL MAKE IT ACTIVE AND RUNNING ON THE SET INTERVAL */
    /
    BEGIN DBMS_CLOUD_PIPELINE.START_PIPELINE( pipeline_name => 'ORA$AUDIT_EXPORT' );
    END;
    /
    파이프라인이 제대로 구성된 경우 파이프라인 속성에 구성된 Azure Blob 스토리지 컨테이너에 파일이 표시됩니다. 시간이 지남에 따라 스토리지 컨테이너에 최신 통합 감사 추적 레코드만 포함된 증분 파일이 생성됩니다.

옵션 6: Oracle Autonomous Database Serverless 23ai용 Oracle SQL Firewall 사용

Oracle Autonomous Database Serverless 23ai는 가상 네트워킹 보안 목록 및 네트워크 보안 그룹 외에도 Oracle SQL Firewall과 함께 제공됩니다.

Oracle SQL Firewall은 데이터베이스 런타임 내에서 실행되며 데이터에 대한 정책 기반 및 컨텍스트 기반 액세스 제어를 시행하는 심층 방어 기능입니다.

Oracle Database@Azure의 경우 SQL 방화벽 정책은 수신 지점과 관계없이 무단 액세스로부터 라스트 마일 보호를 제공할 수 있습니다.



adbs-sqlfirewall-플로우-oracle.zip



adbs-sqlfirewall-arch-oracle.zip

여기에 제시된 계획을 구현하려면 먼저 다음 필요 조건을 충족해야 합니다.

  • Oracle Data SafeOracle Autonomous Database Serverless 23ai 인스턴스에 등록합니다.
  • Oracle Data Safe에서 SQL 방화벽을 사용으로 설정합니다(자세히 탐색 섹션에서 지침 링크가 제공됨).

Oracle Autonomous Database Serverless 23ai용 Oracle SQL Firewall을 사용하려면 다음 단계를 수행하세요.

  1. Entra ID 인증을 위해 만든 사용자에 대한 SQL 트래픽 수집을 시작합니다.
    1. SQL 방화벽 대시보드에서 SQL 모음을 누릅니다.
    2. SQL 방화벽 정책을 생성할 사용자를 지정합니다.
    3. SQL 모음 생성 및 시작하기를 누릅니다.
  2. 선택한 사용자와 일부 SQL 트래픽을 생성한 후 캡처된 SQL 문을 기반으로 정책을 구성합니다.
    1. SQL 모음 세부정보 페이지에서 중지를 누릅니다.
    2. 방화벽 정책 생성을 누릅니다.
    3. 필요에 따라 허용된 SQL 세션 컨텍스트 값을 검토하고 선택적으로 갱신합니다.
      예를 들어 허용된 명령문의 경우 행을 선택하고 업데이트를 누른 다음 행 끝에 있는 X를 눌러 허용된 명령문을 제거합니다. 튜포즈 테스트의 경우 허용되는 모든 명령문에 대해 이 작업을 수행할 수 있습니다.
    4. 배치 및 적용을 눌러 정책을 사용으로 설정합니다.
  3. 사용으로 설정된 SQL 방화벽 정책을 테스트합니다.
    SQL Developer(또는 임의의 SQL 클라이언트)를 사용하여 데이터베이스에 사인인하고 SQL 방화벽 정책 시행을 위해 생성된 Entra ID 사용자로 인증합니다(모든 허용된 SQL 문이 제거됨). 인증 후 오류 메시지는 데이터베이스가 보안 목록 및 네트워크 보안 그룹을 성공적으로 통과했음을 나타내지만 SQL 연결 레벨에서 요청이 거부됩니다.
  4. 위반 보고서를 보려면 SQL 방화벽 대시보드의 왼쪽 탐색 창에서 위반 보고서를 누릅니다.