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

數據加密

為了保證表數據安全,表格存儲提供了數據落盤加密功能。您可以在創建數據表時配置數據表加密。

背景信息

創建數據表時默認不加密,如果要配置數據表加密,需要在創建數據表時配置加密相關參數。表格存儲提供基于密鑰管理服務(Key Management Service,簡稱KMS)密鑰加密和基于自帶密鑰(Bring Your Own Key,簡稱BYOK)自定義密鑰加密兩種加密方式。兩種加密方式的加密密鑰均需在KMS獲取,請根據實際需要選擇。

密鑰管理服務KMS是一站式密鑰管理和數據加密服務平臺、一站式憑據安全管理平臺,提供簡單、可靠、安全、合規的數據加密保護和憑據管理能力。KMS幫助您降低在密碼基礎設施、數據加解密產品和憑據管理產品上的采購、運維、研發開銷,以便您只需關注業務本身。更多信息,請參見什么是密鑰管理服務

加密方式

使用方式

說明

基于KMS服務密鑰加密

  • 表格存儲管理控制臺

  • SDK

表格存儲使用默認的KMS CMK生成密鑰來加密數據,并且在讀取數據時自動解密。首次使用時,表格存儲會在KMS控制臺創建一個KMS CMK。您無需購買KMS實例即可直接使用。

基于BYOK自定義密鑰加密

  • 表格存儲管理控制臺

  • SDK

KMS控制臺使用BYOK材料生成CMK后,表格存儲基于您自定義的密鑰進行數據加密。您可以自行管理使用的加密密鑰。

適用場景

適用于對數據存儲有高安全性或者合規性要求的應用場景。

注意事項

  • 數據加密功能只支持在創建數據表時配置。

  • 數據加密功能開啟后不支持關閉,請謹慎操作。

  • 目前支持數據加密功能的地域包括華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、華南1(深圳)、中國香港、日本(東京)、新加坡、印度尼西亞(雅加達)、德國(法蘭克福)、英國(倫敦)、美國(硅谷)、美國(弗吉尼亞)、華東1 金融云、華北2 阿里政務云1

使用方式

使用控制臺

通過控制臺創建數據表時,支持使用基于KMS服務密鑰加密和基于BYOK自定義密鑰加密中的任意一種方式進行數據加密。

基于KMS服務密鑰加密

  1. 登錄表格存儲管理控制臺

  2. 在頁面上方,選擇地域。

  3. 概覽頁面,單擊實例名稱或在操作列單擊實例管理

  4. 實例詳情頁簽,單擊創建數據表

  5. 創建數據表對話框,配置數據表參數。

    說明

    關于數據表參數說明的更多信息,請參見創建數據表

    1. 配置數據表名稱、表主鍵、是否允許更新等。

    2. 打開是否加密開關,選擇加密類型kms服務主密鑰

    kms_1.jpg

  6. 單擊確定

    創建數據表后,單擊數據表名稱,您可以在表管理頁面中基本詳情頁簽,確認數據表的是否加密取值為是-kms服務主密鑰,表示數據表已配置數據加密功能。

    kms_2.jpg

基于BYOK自定義密鑰加密

  1. 已通過KMS控制臺創建軟件密鑰。具體操作,請參見密鑰管理快速入門

  2. 創建自定義角色并配置權限。

    1. 創建自定義角色。具體操作,請參見創建可信實體為阿里云賬號的RAM角色

      配置角色名稱為AliyunOTSAccessingKMS。

    2. 創建自定義權限策略,配置為KMS加解密權限。具體操作,請參見通過腳本編輯模式創建自定義權限策略

      配置權限策略名稱為otskmspolicytest。權限策略示例如下:

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "kms:Decrypt",
                      "kms:GenerateDataKey"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
    3. 為自定義角色(AliyunOTSAccessingKMS)授予KMS加解密權限策略(otskmspolicytest)。具體操作,請參見RAM角色授權

      授權完成后,記錄角色的ARN,即需要扮演角色的ID。

      image..png

    4. 修改自定義角色的信任策略。具體操作,請參見修改RAM角色的信任策略

      角色的信任策略示例如下:

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "ots.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. 創建數據表并配置加密。

    1. 登錄表格存儲管理控制臺

    2. 在頁面上方,選擇地域。

    3. 概覽頁面,單擊實例名稱或在操作列單擊實例管理

    4. 實例詳情頁簽,單擊創建數據表

    5. 創建數據表對話框,配置數據表參數。

      說明

      關于數據表參數說明的更多信息,請參見創建數據表

      1. 配置數據表名稱、表主鍵、是否允許更新等。

      2. 打開是否加密開關,選擇加密類型BYOK自定義密鑰,然后配置密鑰IDARN。

        BYOK_1.jpg

    6. 單擊確定

      創建數據表后,單擊數據表名稱,您可以在表管理頁面中基本詳情頁簽,確認數據表的是否加密取值為是-BYOK自定義密鑰,表示數據表已配置數據加密功能。

      byok_2.jpg

使用SDK

通過SDK創建數據表時支持使用基于KMS服務密鑰加密和基于BYOK自定義密鑰加密中的任意一種方式進行數據加密。您可以通過Java SDK實現數據加密。

基于KMS服務密鑰加密

創建數據表并配置KMS服務密鑰,只要開通KMS即可,無需創建KMS實例。創建數據表后,您可以通過DescribeTable接口查詢數據表的加密配置。

以下示例用于創建數據表時使用基于KMS服務密鑰加密表中數據。該表的主鍵為pk(String類型),屬性列值只保留最新版本數據以及數據永不過期。

private static void createTable(SyncClient client) {
    //設置數據表名稱。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    //如果要配置表加密,需要對建表請求配置加密相關參數,支持KMS服務密鑰或BYOK自定義密鑰兩種類型。此處為使用KMS服務密鑰。
    SSESpecification sseKms = new SSESpecification(true, SSEKeyType.SSE_KMS_SERVICE);
    //為數據表添加主鍵列。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk", PrimaryKeyType.STRING)); 
    //數據的過期時間,單位為秒,-1表示永不過期。帶索引表的數據表數據生命周期必須設置為-1。
    int timeToLive = -1; 
    //保存的最大版本數,1表示每列上最多保存一個版本即保存最新的版本。帶索引表的數據表最大版本數必須設置為1。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    //設置預留讀寫吞吐量,容量型實例中的數據表只能設置為0,高性能實例中的數據表可以設置為非零值。
    request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(0, 0))); 
    request.setSseSpecification(sseKms);
    client.createTable(request);
}

基于BYOK自定義密鑰加密

  1. 已通過KMS控制臺創建軟件密鑰。具體操作,請參見密鑰管理快速入門

  2. 創建自定義角色并配置權限。

    1. 創建自定義角色。具體操作,請參見創建可信實體為阿里云賬號的RAM角色

      配置角色名稱為AliyunOTSAccessingKMS。

    2. 創建自定義權限策略,配置為KMS加解密權限。具體操作,請參見通過腳本編輯模式創建自定義權限策略

      配置權限策略名稱為otskmspolicytest。權限策略示例如下:

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "kms:Decrypt",
                      "kms:GenerateDataKey"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
    3. 為自定義角色(AliyunOTSAccessingKMS)授予KMS加解密權限策略(otskmspolicytest)。具體操作,請參見RAM角色授權

      授權完成后,記錄角色的ARN,即需要扮演角色的ID。

      image..png

    4. 修改自定義角色的信任策略。具體操作,請參見修改RAM角色的信任策略

      角色的信任策略示例如下:

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "ots.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. 創建數據表時配置加密參數。

    創建數據表并配置BYOK密鑰。創建數據表后,您可以通過DescribeTable接口查詢數據表的加密配置。

    以下示例用于創建數據表時使用BYOK密鑰加密表中數據。該表的主鍵為pk(String類型),屬性列值只保留最新版本數據以及數據永不過期。

    private static void createTable(SyncClient client) {
        //設置數據表名稱。
        TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
        //如果要配置表加密,需要對建表請求配置加密相關參數,支持KMS服務密鑰或BYOK自定義密鑰兩種類型。
        //設置為步驟1中通過KMS控制臺創建的軟件密鑰ID。
        String keyId="key-hzz65****************";
        //設置為步驟2中記錄的角色ARN信息。
        String roleArn="acs:ram::****************:role/aliyunotsaccessingkms";
        //此處使用BYOK自定義密鑰。
        //keyIdKMS自定義服務密鑰的ID。roleArn為角色ARN,您需要創建一個角色,然后獲取roleArn作為參數填寫到建表請求中。
        SSESpecification sseByok = new SSESpecification(true, SSEKeyType.SSE_BYOK, keyId, roleArn);
        //為數據表添加主鍵列。
        tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk", PrimaryKeyType.STRING)); 
        //數據的過期時間,單位為秒,-1表示永不過期。帶索引表的數據表數據生命周期必須設置為-1。
        int timeToLive = -1; 
        ////保存的最大版本數,1表示每列上最多保存一個版本即保存最新的版本。帶索引表的數據表最大版本數必須設置為1。
        int maxVersions = 1; 
        TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
        CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
        request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(0, 0))); //設置預留讀寫吞吐量,容量型實例中的數據表只能設置為0,高性能實例中的數據表可以設置為非零值。
        request.setSseSpecification(sseByok);
        client.createTable(request);
    }

計費說明

數據加密費用由密鑰管理服務KMS進行收取。更多信息,請參見密鑰管理服務產品計費