本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

密態營運及脫敏

更新時間:2025-03-12 19:25

在資料加密狀態下,非授權營運人員(DBA)只能看到資料密文,無法進行資料內容的營運操作。全密態資料庫支援密態營運,DBA在獲得使用者BCL授權後可以正常營運,並支援資料脫敏,確保DBA無法擷取使用者明文資料。

情境介紹

假設您誤刪了資料庫中的個人資料,提交工單由DBA通過資料追蹤恢複。DBA通常通過抽樣查看,驗證資料是否正確恢複。但由於資料被加密,無法確認恢複的資料是否與原資料一致。

  • 未授權時,DBA嘗試解密密文資料失敗,提示無許可權。

  • 簽發BCL解密和脫敏授權,DBA可以看到脫敏後的明文結果。脫敏後資料可用於驗證資料正確性,同時保護個人敏感資訊。

前提條件

本文以投保人員資訊表(person)為例,請先參見個人隱私保護完成相關配置。

密態營運及脫敏流程樣本

  1. DBA未得到授權,無法查看資料內容,隱私資料得到保護。

    說明

    如下命令需使用ins_data帳號執行。

    SELECT encdb.decrypt(id) FROM person;

    返回結果

     WARNING:  -- encdb -- -- Untrusted log -- 4 - src/core/untrusted/src/encdb_untrusted_enclave.cpp,256,encdb_ecall: Select BCL (subject_mekid: 178079820457738240, issuer_mekid: 178079820457738240) from table fail - returned 0xfa030000
     ERROR:  encdb_ext_enc_text_decrypt: enc_text decrypt errno:fa030000
  2. 資料部門授權DBA脫敏後查看的許可權。

    1. 編輯BCL內容,將目標DEK的授權範圍(包括groupid)更新到BCL中。

      ./setGroupIdBCL.sh -d <groupid>
      說明

      擷取groupid方法:

      SELECT encdb_get_cc_entry_by_name(encdb.keyname_generate('<user_name>', '<database_name>', '<schema_name>', '<table_name>', '<column_name>'));

    2. 簽發BCL。

    ./genEncdbSQLCommand.sh -r BCL_ISSUE --subject_sign --spriv sample/usr_pri_data.pem --spuk sample/usr_puk_data.pem --ipuk sample/usr_puk_data.pem --bcl sample/bcl_data_for_dba_select.txt -c ${cipher_suite}
    ./genEncdbSQLCommand.sh -r BCL_ISSUE --issuer_sign --ipriv sample/usr_pri_data.pem --spuk sample/usr_puk_data.pem --ipuk sample/usr_puk_data.pem --bcl sample/bcl_data_for_dba_select.txt -c ${cipher_suite}

    DBA可以查看脫敏資料並進行營運。

    SELECT encdb.decrypt(id) FROM person;
           decrypt
     --------------------
      11122*********9999
      11122*********8888
     (2 rows)
  3. DBA營運結束後,資料部門可以及時撤銷授權。

    # 撤銷授權
    ./genEncdbSQLCommand.sh -r BCL_REVOKE --puk sample/usr_puk_data.pem --pri sample/usr_pri_data.pem --brl sample/brl_data_for_dba_select.txt -c ${cipher_suite}

    撤銷授權後,DBA執行營運SQL將被拒絕。

    說明

    如下命令需使用ins_data帳號執行。

    SELECT encdb.decrypt(id) FROM person;

    返回結果:

    NOTICE:  -- encdb -- -- Enclave log -- 4 - src/core/trusted/src/key_mgmt.cpp,576,encdb_trusted_import_bcl: BCL (aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa) was invalidated by BRL (1dec8190-3fd6-4de1-9ab7-7c1456933b28)
    NOTICE:  -- encdb -- -- Enclave log -- 4 - src/core/trusted/src/key_mgmt.cpp,596,encdb_trusted_import_bcl: no BCL authorization
    WARNING:  -- encdb -- -- Untrusted log -- 4 - src/core/untrusted/src/encdb_untrusted_enclave.cpp,250,encdb_ecall: Import BCL (subject_mekid: 178079820457738240, issuer_mekid: 178079820457738240) to enclave failed - returned 0xfa020000
    ERROR:  encdb_ext_enc_text_decrypt: enc_text decrypt errno:fa020000
  • 本頁導讀 (1, M)
  • 情境介紹
  • 前提條件
  • 密態營運及脫敏流程樣本
文檔反饋
phone Contact Us