오브젝트 스토리지로 익스포트하는 동안 데이터 암호화

오브젝트 스토리지로 익스포트하는 동안 테이블 데이터를 암호화할 수 있습니다.

자율운영 AI 데이터베이스에서 오브젝트 스토리지로 익스포트할 때 데이터를 암호화하려면 format 매개변수와 encryption 옵션을 DBMS_CLOUD.EXPORT_DATA와 함께 사용합니다.

암호화된 데이터를 Object Storage로 내보낼 때 다음 사항에 유의하십시오.

DBMS_CRYPTO 암호화 알고리즘을 사용하여 데이터 암호화

클라우드 오브젝트 스토리지로 익스포트하는 동안 DBMS_CRYPTO 암호화 알고리즘을 사용하여 데이터를 암호화하는 단계를 보여줍니다.

클라우드 오브젝트 스토리지로 익스포트하는 동안 데이터를 암호화하려면 다음 단계를 수행하십시오(이 예에서는 테이블 데이터를 CSV 파일로 익스포트).

  1. 자율운영 AI 데이터베이스 인스턴스에 접속합니다.

  2. DBMS_CLOUD.CREATE_CREDENTIAL를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다.

    예:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
         credential_name => 'OBJ_STORE_CRED',
         username        => 'user1@example.com',
         password        => 'password'
       );
     END;
     /
    

    usernamepassword에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.

    자세한 내용은 CREATE_CREDENTIAL Procedure를 참조하십시오.

  3. 암호화 키(데이터 암호화에 사용할 암호화 키)를 저장할 인증서를 생성합니다.

    DBMS_CRYPTO 암호화 알고리즘을 사용하여 데이터를 암호화하는 경우 인증서에 암호화 키를 저장합니다. 키는 DBMS_CLOUD.CREATE_CREDENTIAL로 생성하는 인증서의 password 필드에 지정됩니다.

    예:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL (
         credential_name => 'ENC_CRED_NAME',
         username        => 'Any_username',
         password        => 'password'
       );
     END;
     /
    
  4. DBMS_CLOUD.EXPORT_DATA를 실행합니다.

    encryption 옵션과 함께 format 매개변수를 사용합니다. encryption 유형은 테이블 데이터를 암호화하는 데 사용할 DBMS_CRYPTO 암호화 알고리즘을 지정하고, credential_name 값은 암호(암호화 키)를 지정하는 인증서입니다.

    예:

     BEGIN
         DBMS_CLOUD.EXPORT_DATA (
             credential_name => 'OBJ_STORE_CRED',
             file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namepace-string/b/bucketname/o/encrypted.csv',
             query           => 'SELECT * FROM ADMIN.employees',
             format          => json_object(
                    'type' value 'csv',
                    'encryption' value  json_object(
                            'type' value DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5,
                            'credential_name' value 'ENC_CRED_NAME'))
           );
     END;
     /
    

    그러면 EMPLOYEES 테이블의 데이터가 암호화되고 CSV 파일로 익스포트됩니다.

    암호화 알고리즘에 대한 자세한 내용은 DBMS_CRYPTO 알고리즘을 참조하십시오.

    이 예에서 namespace-string은 Oracle Cloud Infrastructure 오브젝트 스토리지 네임스페이스이고 bucketname은 버킷 이름입니다. 자세한 내용은 객체 스토리지 네임스페이스 이해를 참조하십시오.

    자세한 내용은 EXPORT_DATA 프로시저EXPORT_DATA용 DBMS_CLOUD 패키지 형식 옵션을 참조하십시오.

DBMS_CLOUD.EXPORT_DATA로 파일을 암호화한 후 DBMS_CRYPTO 암호화 알고리즘을 사용하여 파일을 암호화하면 익스포트한 파일을 사용하거나 임포트할 수 있는 다음 옵션이 제공됩니다.

사용자 정의 암호화 기능으로 데이터 암호화

클라우드 오브젝트 스토리지로 익스포트하는 동안 사용자 정의 암호화 기능을 사용하여 데이터를 암호화하는 단계를 보여줍니다.

클라우드 오브젝트 스토리지로 익스포트하는 동안 데이터를 암호화하려면 다음 단계를 수행하십시오(이 예에서는 테이블 데이터를 CSV 파일로 익스포트).

  1. 자율운영 AI 데이터베이스 인스턴스에 접속합니다.

  2. DBMS_CLOUD.CREATE_CREDENTIAL를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다.

    예:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
         credential_name => 'OBJ_STORE_CRED',
         username        => 'user1@example.com',
         password        => 'password'
       );
     END;
     /
    

    usernamepassword에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.

    자세한 내용은 CREATE_CREDENTIAL Procedure를 참조하십시오.

  3. 데이터를 암호화하는 유저 정의 콜백 함수를 생성합니다.

    예:

     CREATE OR REPLACE FUNCTION encryption_func (data IN BLOB)
       RETURN BLOB
       IS
           l_encrypted_data BLOB;
            BEGIN
          DBMS_LOB.CREATETEMPORARY (l_encrypted_data, TRUE, DBMS_LOB.CALL);
          DBMS_CRYPTO.ENCRYPT (
              dst => l_encrypted_data,
              src => data,
              typ => DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5,
              key => 'encryption key'
           );
          RETURN l_encrypted_data;
     END encryption_func;
     /
    

    그러면 ENCRYPTION_FUNC 암호화 함수가 생성됩니다. 이 기능은 사용자가 제공한 키를 사용하여 스트림 또는 블록 암호화를 사용하여 데이터를 암호화합니다.

    주: KEY 매개변수에서 값으로 사용할 암호화 키를 생성해야 합니다. 암호화 키 생성에 대한 자세한 내용은 DBMS_CRYPTO Operational Notes를 참조하십시오.

  4. format 매개변수를 사용하여 DBMS_CLOUD.EXPORT_DATA를 실행하고, encryption 옵션을 포함하고, user_defined_function를 지정합니다.

    예:

     BEGIN
           DBMS_CLOUD.EXPORT_DATA (
             credential_name => 'OBJ_STORE_CRED',
             file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namepace-string/b/bucketname/o/encrypted.csv',
             query           => 'SELECT * FROM ADMIN.emp',
             format          => json_object(
                                   'type' value 'csv',
                                   'encryption' value json_object('user_defined_function' value 'admin.encryption_func'))
           );
     END;
     /
    

    EMP 테이블에서 지정된 질의의 데이터를 암호화하고 Cloud Object Storage에서 데이터를 CSV 파일로 익스포트합니다. format 매개변수와 encryption 값은 데이터를 암호화하는 데 사용할 사용자 정의 암호화 함수를 지정합니다.

    주: 암호화 함수에 대한 EXECUTE 권한이 있어야 합니다.

    이 예에서 namespace-string은 Oracle Cloud Infrastructure 오브젝트 스토리지 네임스페이스이고 bucketname은 버킷 이름입니다. 자세한 내용은 객체 스토리지 네임스페이스 이해를 참조하십시오.

    자세한 내용은 EXPORT_DATA 프로시저EXPORT_DATA용 DBMS_CLOUD 패키지 형식 옵션을 참조하십시오.

관련 콘텐츠

오브젝트 스토리지에서 임포트하는 동안 데이터 해독