全部產品
Search
文件中心

Hologres:查詢MaxCompute加密資料(BYOK模式)

更新時間:Jun 30, 2024

本文為您介紹Hologres如何使用外部表格查詢MaxCompute BYOK加密資料。

背景資訊

MaxCompute支援通過Key Management Service(Key Management Service)對資料進行加密儲存,提供資料靜態保護能力,滿足企業監管和安全合規需求。本文為您介紹在Hologres中使用外部表格查詢MaxCompute的加密資料的限制條件和完整步驟。

使用限制

  • 僅Hologres V1.1及以上版本支援使用外部表格查詢MaxCompute的加密資料,如果您的執行個體是V1.1以下版本,請您參見執行個體升級或加入線上支援DingTalk群申請升級執行個體。

  • 查詢MaxCompute的加密資料時,如果您的執行個體版本低於V1.3.31需要添加後台配置。Hologres從V1.3.31版本開始無需添加後台配置,如需使用該功能,建議您升級執行個體,詳情請參見執行個體升級

  • 僅支援查詢BYOK方式加密的MaxCompute資料,同時支援兩類密鑰材料,包括建立使用者主要金鑰CMK時由KMS產生的密鑰材料以及使用者匯入的密鑰材料。對於使用DataWorks Default Key方式加密的MaxCompute的加密資料無法查詢。

  • 查詢資料時,Hologres會調用KMS的API擷取相關的密鑰資訊,擷取相關的密鑰資訊系統預設會緩衝24小時。

操作步驟

  1. 建立自訂權限原則

    1. 登入RAM控制台,單擊左側導覽列的權限原則,進入權限原則頁面,單擊建立權限原則

      權限原則

    2. 進入建立權限原則頁面,單擊指令碼編輯配置指令碼如下所示且名稱命名為AliyunHologresEncryptionDefaultRolePolicy

      建立權限原則

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:GenerateDataKey",
                      "kms:DescribeKey"
                  ],
                  "Resource": "acs:kms:*:*:*/*",
                  "Effect": "Allow"
              }
          ]
      }
    3. 單擊確定,完成自訂權限原則的建立。

  2. 建立Hologres代理角色並授權

    1. 登入RAM控制台,單擊左側導覽列的角色

    2. 進入角色頁面,單擊建立角色,進入建立角色對話方塊,選擇可信實體類型阿里雲服務

    3. 單擊下一步角色類型選擇普通服務角色角色名稱命名為AliyunHologresEncryptionDefaultRole,設定選擇受信服務互動式分析,單擊完成建立角色

    4. 進入建立完成頁面,單擊為角色授權

    5. 進入添加許可權頁面,授權範圍選擇整個雲帳號選擇許可權自訂策略中第一步建立的自訂角色策略(AliyunHologresEncryptionDefaultRolePolicy)。添加許可權

    6. 單擊確定,完成角色建立和授權操作。

      在建立完角色後,單擊建立的角色,在信任策略管理頁簽,可以查看信任策略的設定。

  3. 修改資料庫層級配置

    由於HQE暫時不支援訪問MaxCompute的儲存加密的資料,所以需要使用如下SQL命令將外部表格的執行引擎修改為SQE。

    ALTER DATABASE <dbname> SET hg_experimental_enable_access_odps_orc_via_holo = false;

    以上配置需要重新建立串連才會生效。您可以使用如下SQL命令查看使用SQE查詢外部表格的配置是否生效,如果顯示為false,表示配置生效。

    SHOW hg_experimental_enable_access_odps_orc_via_holo;
  4. 查詢資料

    完成以上操作後,您便可以同使用Hologres的外部表格查詢MaxCompute的普通資料一樣查詢加密資料,詳情請參見通過建立外部表格加速查詢MaxCompute資料

常見問題

  • 問題現象

    查詢報錯,報錯資訊類似如下資訊。

    ERROR: status { code: SERVER_INTERNAL_ERROR message: "hos_exception: IO error: Failed to execute pangu open normal file pangu://xxx:xxx/product/odps/xxx/data/xxxx/xxx/xxx, errorcode: 9, errorcode_description: invalid argument, err_msg: PanguParameterInvalidException
  • 問題原因

    可能是因為使用HQE查詢了MaxCompute的加密資料導致的報錯,並且HQE暫時不支援訪問MaxCompute的儲存加密的資料。

  • 解決方案

    1. 您需要將外表的執行引擎改為SQE,修改資料庫層級的配置。

      相關SQL如下:

      ALTER DATABASE <DB_Name> SET hg_experimental_enable_access_odps_orc_via_holo = false;
    2. 以上配置需要建立串連中才會生效。您可以使用如下SQL代碼,查看通過SQE查詢外表的配置是否生效,如果顯示false,表示配置生效。

      SHOW hg_experimental_enable_access_odps_orc_via_holo;
    3. 改完配置且配置生效後,重新執行查詢。