日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數據存儲加密

本文為您介紹如何在Hologres中對數據進行加密處理,本文包括數據加密機制、使用限制及操作步驟。

背景信息

Hologres支持通過密鑰管理服務KMS(Key Management Service)對數據進行加密存儲,提供數據靜態保護能力,滿足企業監管和安全合規需求。開啟加密存儲后,由于涉及加密和解密操作,所以會影響查詢和寫入性能,大約有20%-40%的性能損耗,具體情況根據查詢特征有不同程度的影響。

使用限制

  • 僅Hologres V1.1及以上版本支持數據加密存儲,如果您的實例是V1.1以下版本,請您使用自助升級或加入Hologres釘釘交流群反饋,詳情請參見如何獲取更多的在線支持?。

  • 使用數據存儲加密功能時,如果您的實例版本低于V1.3.31需要添加后臺配置。Hologres從V1.3.31版本開始無需添加后臺配置,如需使用該功能,建議您升級實例,詳情請參見實例升級。

  • 您在KMS上對自帶密鑰(BYOK)的操作(例如禁用或刪除),會影響Hologres對數據的加密或解密操作。由于Hologres服務涉及緩存,您在KMS的相關操作會在24小時內生效。

  • 存儲加密僅會對開啟存儲加密后的數據表生效,對于開啟存儲加密前創建的數據表,系統不會對其進行存儲加密。

  • 開啟存儲加密功能后,仍然可以在MaxCompute中創建Hologres外部表進行數據讀寫。

  • 開啟存儲加密功能后,再使用如下SQL關閉數據庫的存儲加密,關閉前的表數據仍然是被加密的,只有關閉后新創建的表才不會使用存儲加密。

    ALTER DATABASE <database_name> set hg_experimental_encryption_options='';
  • 開啟存儲加密表使用的KMS密鑰被禁用或者失效,會導致該表的數據無法讀寫。

  • Hologres從 V2.0版本開始支持為每張表設置單獨的加密規則,即對于不同的表設置不同的KMS密鑰進行加密。

  • 僅支持對列存表以及行列共存模式中的列存表開啟數據存儲加密,其余表類型不支持。開啟存儲加密功能后,您仍然可以在MaxCompute中創建Hologres外部表以進行數據讀寫,且僅列存表、及行列共存中的列存表為加密模式,其余表類型不進行加密。

數據加密機制

Hologres通過KMS托管密鑰,實現數據加密或解密功能,數據加密機制如下。

  • Hologres以數據庫為單位,通過KMS加密或解密存儲在Hologres的數據。在使用數據加密功能前,請確保您所在區域已開通KMS服務。

  • KMS生成和管理您的密鑰并保障密鑰的安全性。

  • Hologres支持的加密算法有AES256、AESCTR、RC4和SM4。

  • Hologres僅支持自帶密鑰(BYOK)加密或解密數據,同時支持兩類密鑰材料,包括創建用戶主密鑰CMK時由KMS生成的密鑰材料以及用戶導入的密鑰材料。

    您可以通過KMS創建自帶密鑰(BYOK),并在Hologres中針對數據庫,選擇該密鑰作為密鑰進行數據加密。在KMS上創建BYOK的詳情請參見創建密鑰

  • 在數據讀寫時,Hologres會調用KMS的API獲取相關的密鑰信息,獲取相關的密鑰信息系統默認會緩存24小時。因此在使用數據加密功能時會產生相關的KMS費用,KMS相關計費說明請參見KMS計費說明

操作步驟

  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. 創建密鑰

    具體操作,請參見密鑰管理快速入門。

    重要

    Hologres只支持使用對稱密鑰,其密鑰類型為Aliyun_AES_256。

  4. 設置加密規則

    1. 登錄需要進行存儲數據加密的數據庫實例,登錄數據庫請參見登錄數據庫。

    2. 臨時Query查詢頁面,選擇已創建的實例名數據庫后,請您在SQL查詢的編輯框輸入如下語句,單擊運行。

      以下SQL語句用于設置數據存儲加密規則。

      ALTER DATABASE <db_name> SET hg_experimental_encryption_options='<encryption_type>,<cmk_id>,<ram_role>,<uid>';

      參數說明

      參數

      說明

      db_name

      需要進行加密存儲的數據庫名稱。

      encryption_type

      加密類型。僅支持AES256、AESCTR、RC4類型。

      cmk_id

      密鑰ID。登錄密鑰管理服務控制臺,密鑰詳情頁獲取。

      ram_role

      創建的Hologres代理角色名稱。

      uid

      阿里云賬號ID。獲取詳情請參見賬號ID

    一個設置加密規則并查詢數據的簡單使用示例如下。

    1. 對數據庫開啟存儲加密。

      ALTER DATABASE hoxxxx set hg_experimental_encryption_options=
      'AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,187xxxxxxxxxxxxx';
    2. 創建表并寫入數據。

      DROP TABLE IF EXISTS a;
      
      CREATE TABLE a(id int);
      
      INSERT INTO a values(1);
      
      SELECT hg_admin_command('flush'); -- 僅對測試使用,為了馬上查詢到效果使用
    3. 查詢數據。

      SELECT * FROM a;

      運行結果如下。示例結果

    若此時禁用了KMS,在實例重啟或者24小時后,查詢a表數據會報錯。

表級別存儲加密設置

Hologres從V2.0版本開始支持在對數據庫開啟存儲加密后,再針對單表設置加密規則,即可以針對不同的表使用不同的KMS密鑰進行加密。

設置表級別存儲加密規則

  • 注意事項:

    • 若不對表單獨設置加密規則,系統會使用hg_experimental_encryption_options設置的加密規則作為表的加密規則。

    • 設置必須要在建表時設置,不支持在表創建后再設置加密規則。

  • 使用語法:

    CALL SET_TABLE_PROPERTY('<table_name>', 'encryption_options', '<encryption_type>,<cmk_id>,<ram_role>,<uid>');

    參數說明如下:

    參數

    說明

    table_name

    需要進行加密存儲的表名稱。

    encryption_type

    加密類型。僅支持AES256、AESCTR、RC4類型。

    cmk_id

    密鑰ID。登錄密鑰管理服務控制臺,密鑰詳情頁獲取。

    ram_role

    創建的Hologres代理角色名稱。

    uid

    阿里云賬號ID。獲取詳情請參見賬號ID。

  • 使用示例:

    創建表lineitem,并使用AES256加密類型、623c26ee-xxxx-xxxx-xxxx-91d323cc4855密鑰加密。

    BEGIN;
    CREATE TABLE LINEITEM
    (
        L_ORDERKEY      BIGINT      NOT NULL,
        L_PARTKEY       INT         NOT NULL,
        L_SUPPKEY       INT         NOT NULL,
        L_LINENUMBER    INT         NOT NULL,
        L_QUANTITY      DECIMAL(15,2) NOT NULL,
        L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,
        L_DISCOUNT      DECIMAL(15,2) NOT NULL,
        L_TAX           DECIMAL(15,2) NOT NULL,
        L_RETURNFLAG    TEXT        NOT NULL,
        L_LINESTATUS    TEXT        NOT NULL,
        L_SHIPDATE      TIMESTAMPTZ NOT NULL,
        L_COMMITDATE    TIMESTAMPTZ NOT NULL,
        L_RECEIPTDATE   TIMESTAMPTZ NOT NULL,
        L_SHIPINSTRUCT  TEXT        NOT NULL,
        L_SHIPMODE      TEXT        NOT NULL,
        L_COMMENT       TEXT        NOT NULL,
        PRIMARY KEY (L_ORDERKEY,L_LINENUMBER)
    );
    CALL SET_TABLE_PROPERTY('LINEITEM', 'encryption_options', 'AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,153xxxxxxxxxxxxx');
    COMMIT;

查看存儲加密規則

Hologres從V2.0版本開始,您可以使用如下SQL查看每張表的加密規則。

SELECT
    *
FROM
    hologres.hg_table_properties
WHERE
    property_key = 'encryption_options';

示例返回結果:查看存儲加密規則