ECS中的跨帳號密鑰共用

更新時間:
Copy as MD

如果您希望將使用者主要金鑰共用至其他阿里雲主帳號,並確保被共用的密鑰能夠在ECS加密情境中正常使用,請參考本文檔。本文詳細介紹了共用方如何共用使用者主要金鑰,以及被共用方如何在ECS情境中使用共用密鑰的步驟。

使用情境

  • 多部門統一密鑰管理,滿足合規需求

    在企業組織架構中,由於行業監管政策或內部安全性原則的要求,某些部門需要對敏感性資料的加密金鑰進行集中控制,共用密鑰可以保證密鑰許可權集中在一個帳號中,以便於密鑰的審計、追溯和統一管理。

  • 密鑰共用,最佳化成本

    在實際業務中,為了降低成本,企業可以選擇在一個阿里雲主帳號中集中購買KMS執行個體,建立密鑰,並將密鑰共用給企業內其他不同團隊或專案的阿里雲主帳號。其他主帳號無需購買執行個體,即可實現加密資源的建立及使用。

使用流程

在跨帳號密鑰共用機制中,共用方通過將密鑰共用給其他阿里雲主帳號下的 RAM 角色,實現密鑰的跨帳號共用。不同使用情境需要授權的RAM角色不同,經過共用祕密金鑰加密的快照和鏡像依舊可以共用。

前提條件

角色

前提條件

共用方

  • 已記錄被共用方的阿里雲主帳號UID。

  • 請確保共用方已滿足以下條件:

    • 已在KMS(Key Management Service)3.0 執行個體中建立使用者主要金鑰

    • KMS執行個體訪問管理數量需要大於密鑰被共用的總次數,購買後您可通過升配KMS執行個體重新設定。

      訪問管理數量是指一個KMS執行個體可以關聯的VPC數量以及共用給其他阿里雲主帳號的數量配額。該配額直接影響KMS執行個體的使用範圍和資源共用能力。

被共用方

被共用方需要根據不同使用需求,建立不同RAM角色。

  1. 使用阿里雲帳號(主帳號)或擁有Resource Access Management員許可權(AliyunRAMFullAccess)的RAM使用者登入RAM控制台

    選擇身份管理 > 角色,搜尋是否存在目標角色。

    • 如果需要利用共用密鑰建立加密雲端硬碟、複製加密快照和加密鏡像,則需要建立AliyunECSDiskEncryptDefaultRole角色。

    • 如果需要將加密鏡像再次共用至其他帳號,則需要建立AliyunECSShareEncryptImageDefaultRole角色。

    • 如果需要將加密快照再次共用至其他帳號,則需要建立AliyunECSShareEncryptSnapshotDefaultRole角色。

  2. 如果您不存在目標角色,請選擇許可權管理 > 权限策略,單擊创建权限策略,在指令碼編輯介面新增策略。

    • AliyunECSDiskEncryptDefaultRole角色的許可權。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "kms:List*",
                      "kms:DescribeKey",
                      "kms:TagResource",
                      "kms:UntagResource"
                  ],
                  "Resource": [
                      "acs:kms:*:*:*",
                      "acs:kms:*:*:*/*"
                  ],
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:GenerateDataKey"
                  ],
                  "Resource": [
                      "acs:kms:*:*:*/*"
                  ],
                  "Effect": "Allow"
              }
          ]
      }
    • AliyunECSShareEncryptImageDefaultRoleAliyunECSShareEncryptSnapshotDefaultRole角色的策略。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "kms:List*",
                  "Resource": "acs:kms:<密鑰歸屬地區ID>:<密鑰歸屬使用者UID>:key",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "kms:DescribeKey",
                      "kms:TagResource",
                      "kms:UntagResource",
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:GenerateDataKey"
                  ],
                  "Resource": "acs:kms:<密鑰歸屬地區ID>:<密鑰歸屬使用者UID>:key/<關聯的KMS加密金鑰Key>",
                  "Effect": "Allow"
              }
          ]
      }
      說明

      其中<密鑰歸屬地區ID><密鑰歸屬使用者UID><關聯的KMS加密金鑰Key>為變數,您需要分別修改為KMS密鑰所在的地區ID、密鑰共用方的阿里雲主帳號IDKMS密鑰的密鑰ID。

  3. 選擇身份管理 > 角色,單擊創建角色,信任主體類型選擇雲端服務,信任主體名稱選擇Elastic Compute Service/ECS,輸入目標角色名稱後,單擊確定

  4. 單擊角色名稱,進入目標角色的詳情頁下,單擊許可權管理 > 新增授權,選擇建立的策略,並確認新增授權

  5. (條件必選)對於AliyunECSShareEncryptImageDefaultRoleAliyunECSShareEncryptSnapshotDefaultRole角色需要配置信任策略,在角色詳情頁中,單擊信任策略 > 編輯信任策略,在指令碼編輯後單擊確定

    AliyunECSShareEncryptImageDefaultRoleAliyunECSShareEncryptSnapshotDefaultRole角色的信任策略。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "<UID>@ecs.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
    說明

    其中<UID>為變數,您需要修改為資源被共用方阿里雲帳號UID。

共用方配置跨帳號密鑰共用

  1. 登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊资源 > 密钥管理

  2. 密鑰管理頁面,選擇用户主密钥頁簽,單擊密鑰ID,進入密鑰詳情頁。

  3. 在密鑰詳情頁,單擊密钥策略,選擇设置密钥策略

  4. 單擊添加其他账号使用者ARN,輸入授權主體ARN,單擊確定。

    acs:ram::<被共用方阿里雲主帳號UID>:role/<ramrole>

    以將密鑰共用至阿里雲主帳號UID119285303511**下的AliyunECSDiskEncryptDefaultRole為例,授權主體ARN應填寫為:

    acs:ram::119285303511**:role/AliyunECSDiskEncryptDefaultRole

被共用方使用共用密鑰

以單獨建立加密雲端硬碟為例,加密複製快照複製鏡像時選擇密鑰的操作步驟與此類似

在建立的加密資源詳情頁中,受到共用方給予的許可權限制,僅可查看所使用的KMS密鑰ID,不會展示KMSARN 或別名資訊。該顯示限制不會影響加密資源的正常使用。

控制台

本步驟僅描述建立雲端硬碟時如何配置加密選項,其餘配置說明,請參見建立空資料盤

  1. 訪問ECS-Block Storage

  2. 在頁面左側頂部,選擇目標資源所在的資源群組和地區。

  3. 單擊建立雲端硬碟。在雲端硬碟設定中勾選加密,下拉選擇指定自訂KMS密鑰 後手動輸入共用密鑰ID。

API

您可通過調用API介面CreateDisk 建立資料盤時,設定Encrypted值和KMSKeyId值,加密資料盤。

常見問題

密鑰共用方配置密鑰策略時,顯示Rejected.ShareQuotaExceedLimit。

原因及解決方案:KMS執行個體訪問管理數量需要大於密鑰被共用的總次數,購買後您可通過升配KMS執行個體重新設定。

訪問管理數量是指一個KMS執行個體可以關聯的VPC數量以及共用給其他阿里雲主帳號的數量配額。該配額直接影響KMS執行個體的使用範圍和資源共用能力。

密鑰共用方配置密鑰策略時,顯示InvalidParameter。

原因及解決方案:被共用方相關角色未被建立,可參看前提條件建立並授權角色。

相關文檔

  • 如果需要將加密快照再次共用至其他帳號,可參考共用快照

  • 如果需要將加密鏡像再次共用至其他帳號,可參考共用自訂鏡像