在数据加密状态下,非授权DBA仅可见数据密文、无法进行涉及数据内容的运维操作,全密态数据库支持密态运维,允许DBA在获得用户授权后(BCL授权)可以正常运维,支持数据脱敏,确保DBA在提供密态运维的同时,仍然无法获取用户明文数据。
场景介绍
假设您误删了数据库中的个人数据,提交工单由运维人员(DBA)通过数据追踪,恢复误删的数据。为了验证数据正确恢复,DBA一般通过抽样查看的方式,判断数据是否正常。但由于数据被加密,无法确认恢复的数据是否与原数据一致。
未授权时,DBA尝试解密密文数据失败,提示无权限。
签发BCL解密和脱敏授权,DBA可以看到脱敏后的明文结果。脱敏后数据仍然能够用于验证数据正确性与否,同时不泄露个人敏感信息。
密态运维及脱敏流程示例
本文以个密态运维个人隐私保护中的保险公司投保人员信息表(person)为例,请先参见个人隐私保护完成相关配置。
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
数据部门授权DBA脱敏后查看权限。
# 编辑BCL内容,将目标dek的授权范围(包括groupid)更新到BCL中 # 签发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)
DBA运维结束后,数据部门可以及时撤销授权。
# 编辑BCL内容,更新需要撤销的BCL信息 # 签发BCL ./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
文档内容是否对您有帮助?