오브젝트 스토리지로 익스포트하는 동안 데이터 암호화
오브젝트 스토리지로 익스포트하는 동안 테이블 데이터를 암호화할 수 있습니다.
자율운영 AI 데이터베이스에서 오브젝트 스토리지로 익스포트할 때 데이터를 암호화하려면 format 매개변수와 encryption 옵션을 DBMS_CLOUD.EXPORT_DATA와 함께 사용합니다.
암호화된 데이터를 Object Storage로 내보낼 때 다음 사항에 유의하십시오.
-
encryption옵션은 자율운영 AI 데이터베이스에서 오브젝트 스토리지로 CSV, JSON 또는 XML로 데이터를 익스포트할 때만 지원됩니다. -
내보내기에 암호화와 압축이 모두 포함된 경우 먼저 데이터가 압축되고, 그 다음 데이터가 암호화되고, 오브젝트 스토리지에 업로드되는 작업 순서가 결정됩니다.
-
다음 두 가지 암호화 방법이 지원됩니다.
-
사용자 정의 함수 사용.
-
DBMS_CRYPTO지정 암호화 알고리즘을 사용합니다.암호화 기능 및 암호화/암호 해독 절차에 대한 자세한 내용은 DBMS_CRYPTO를 참조하십시오.
-
DBMS_CRYPTO 암호화 알고리즘을 사용하여 데이터 암호화
클라우드 오브젝트 스토리지로 익스포트하는 동안 DBMS_CRYPTO 암호화 알고리즘을 사용하여 데이터를 암호화하는 단계를 보여줍니다.
클라우드 오브젝트 스토리지로 익스포트하는 동안 데이터를 암호화하려면 다음 단계를 수행하십시오(이 예에서는 테이블 데이터를 CSV 파일로 익스포트).
-
자율운영 AI 데이터베이스 인스턴스에 접속합니다.
-
DBMS_CLOUD.CREATE_CREDENTIAL를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다.예:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /username및password에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.자세한 내용은 CREATE_CREDENTIAL Procedure를 참조하십시오.
-
암호화 키(데이터 암호화에 사용할 암호화 키)를 저장할 인증서를 생성합니다.
DBMS_CRYPTO암호화 알고리즘을 사용하여 데이터를 암호화하는 경우 인증서에 암호화 키를 저장합니다. 키는DBMS_CLOUD.CREATE_CREDENTIAL로 생성하는 인증서의password필드에 지정됩니다.예:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', username => 'Any_username', password => 'password' ); END; / -
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 암호화 알고리즘을 사용하여 파일을 암호화하면 익스포트한 파일을 사용하거나 임포트할 수 있는 다음 옵션이 제공됩니다.
-
DBMS_CLOUD.COPY_DATA또는DBMS_CLOUD.COPY_COLLECTION를 동일한 암호화 알고리즘 옵션과 키를 사용하여 파일을 해독할 수 있습니다.자세한 내용은 DBMS_CRYPTO 알고리즘을 사용하여 데이터 해독 및 로드를 참조하십시오.
-
다음 프로시저 중 하나를 사용하여 동일한 암호화 알고리즘 옵션과 파일을 해독하는 키를 제공하여 External Table의 데이터를 query할 수 있습니다.
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEDBMS_CLOUD.CREATE_HYBRID_PART_TABLE의 경우 이 옵션은 오브젝트 스토리지 파일에만 적용할 수 있습니다.
자세한 내용은 DBMS_CRYPTO 알고리즘을 사용하여 데이터 해독 및 로드를 참조하십시오.
-
-
자율운영 AI 데이터베이스가 아닌 시스템에서는 동일한 알고리즘 옵션과 키를 사용하여
DBMS_CRYPTO패키지를 사용하여 파일을 해독할 수 있습니다.키는 자율운영 AI 데이터베이스의 인증서에
VARCHAR2로 저장되지만,DBMS_CRYPTO는 키 매개변수에RAW유형을 사용합니다.암호화 알고리즘에 대한 자세한 내용은 DBMS_CRYPTO 알고리즘을 참조하십시오.
사용자 정의 암호화 기능으로 데이터 암호화
클라우드 오브젝트 스토리지로 익스포트하는 동안 사용자 정의 암호화 기능을 사용하여 데이터를 암호화하는 단계를 보여줍니다.
클라우드 오브젝트 스토리지로 익스포트하는 동안 데이터를 암호화하려면 다음 단계를 수행하십시오(이 예에서는 테이블 데이터를 CSV 파일로 익스포트).
-
자율운영 AI 데이터베이스 인스턴스에 접속합니다.
-
DBMS_CLOUD.CREATE_CREDENTIAL를 사용하여 클라우드 오브젝트 스토리지 인증서를 저장합니다.예:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /username및password에 대해 제공하는 값은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다.자세한 내용은 CREATE_CREDENTIAL Procedure를 참조하십시오.
-
데이터를 암호화하는 유저 정의 콜백 함수를 생성합니다.
예:
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를 참조하십시오. -
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 패키지 형식 옵션을 참조하십시오.