共用方式為


設定由客戶管理的金鑰以加密 Azure NetApp Files 磁碟區

Azure NetApp Files 磁碟區加密的客戶自控金鑰可讓您在建立新磁碟區時使用自己的金鑰,而不是平台代控金鑰。 使用客戶自控金鑰,您可以完全管理金鑰生命週期、金鑰使用權限和金鑰稽核作業之間的關聯性。

下圖示範客戶自控金鑰如何與 Azure NetApp Files 搭配運作:

客戶自控金鑰的概念圖。

  1. Azure NetApp Files 會將加密金鑰的權限授與受控識別。 受控識別可以是您所建立和管理的使用者指派受控識別,或是與 NetApp 帳戶相關聯的系統指派受控識別。

  2. 您可以使用 NetApp 帳戶的客戶自控金鑰來設定加密。

  3. 您使用 Azure Key Vault 系統管理員在步驟 1 中授與權限的受控識別,透過 Microsoft Entra ID 驗證對 Azure Key Vault 的存取。

  4. Azure NetApp Files 使用 Azure Key Vault 中的客戶自控金鑰來包裝帳戶加密金鑰。

    客戶管理的金鑰不會影響 Azure NetApp Files 的效能。 其與平台代控金鑰唯一差異在於金鑰的管理方式。

  5. 若是讀取/寫入作業,Azure NetApp Files 將要求傳送至 Azure Key Vault 以解除包裝帳戶加密金鑰,並執行加密和解密作業。

跨租用戶客戶自控金鑰適用於所有 Azure NetApp 檔案支援的區域。

考量

  • 若要使用客戶管理的金鑰創建容量,您必須選取標準網路功能。 您無法使用客戶自控金鑰磁碟區搭配使用基本網路功能所設定的磁碟區。 請遵循磁碟區建立頁面中的設定網路功能選項中的指示進行操作。
  • 為了提高安全性,您可以在金鑰保存庫的網路設定中選取 [停用公用存取] 選項。 選取此選項時,您也必須選取 [允許受信任的 Microsoft 服務略過此防火牆],以允許 Azure NetApp Files 服務存取您的加密金鑰。
  • 客戶自控金鑰支援自動受控系統識別 (MSI) 憑證更新。 若的憑證有效,則不需要手動更新憑證。
  • 如果 Azure NetApp Files 無法建立客戶自控金鑰磁碟區,則會顯示錯誤訊息。 如需詳細資訊,請參閱 錯誤訊息和疑難解答
  • 建立客戶自控金鑰磁碟區之後,請勿對基礎 Azure Key Vault 或 Azure 私人端點進行任何變更。 進行變更可能會使磁碟區無法存取。 如果您必須進行變更,請參閱 更新客戶自控密鑰的私人端點 IP
  • Azure NetApp Files 支援 在沒有資料遷移的情況下,將現有磁碟區從平臺管理的密鑰 (PMK) 轉換至客戶管理的密鑰 (CMK)。 這為受管制產業需求提供加密密鑰生命週期(更新、輪替)和額外安全性的彈性。
  • 如果無法存取 Azure Key Vault,Azure NetApp Files 將失去對加密金鑰的存取權,以及對使用客戶自控金鑰啟用的磁碟區讀取或寫入資料的能力。 在此情況下,請建立支援票證,以手動還原受影響磁碟區的存取權。
  • Azure NetApp Files 支援來源和資料複寫磁碟區上的客戶自控金鑰,而這些磁碟區具有跨區域複寫或跨可用性區域複寫關聯性。
  • Azure NetApp Files 客戶自控金鑰支援將私人連結子網路上的 Azure 網路安全性群組 (NSG) 套用至 Azure Key Vault。 除非子網上啟用私人端點網路原則,否則 NSG 不會影響私人連結的連線。
  • 不支援包裝/解除包裝。 客戶管理的金鑰會使用加密/解密。 如需詳細資訊,請參閱 RSA 演算法

需求

建立第一個客戶自控金鑰磁碟區之前,您必須先設定:

  • 包含至少一個金鑰的 Azure Key Vault
    • 金鑰保存庫需要啟用軟刪除和清除保護。
    • 金鑰必須是 RSA 類型。
  • 金鑰保存庫必須具有 Azure 私人端點
    • 私人端點必須位於與委派給 Azure NetApp Files 的子網路不同的子網路中。 子網必須與委派給 Azure NetApp 的子網位於相同的虛擬網路中。

如需 Azure 金鑰保存庫 和 Azure 私人端點的詳細資訊,請參閱:

設定 NetApp 帳戶以使用客戶自控金鑰

  1. 在 Azure 入口網站和 Azure NetApp Files 底下,選取 [加密]

    您可使用 [加密] 頁面來管理 NetApp 帳戶的加密設定。 其中包含可將 NetApp 帳戶設定為使用您自己的加密金鑰的選項,該金鑰儲存在 Azure Key Vault 中。 此設定會將系統指派的身分識別提供給 NetApp 帳戶,並為具有所需金鑰權限的身分識別新增存取原則。

    加密功能表的螢幕擷取畫面。

  2. 若將 NetApp 帳戶設定為使用客戶自控金鑰,有兩種方式可指定金鑰 URI:

    • [從金鑰保存庫中選取] 選項可讓您選取金鑰保存庫和金鑰。 選取金鑰介面的螢幕擷取畫面。

    • [輸入金鑰 URI] 選項可讓您手動輸入金鑰 URI。 加密功能表的螢幕擷取畫面,其中顯示金鑰 URI 欄位。

  3. 選取您想要用來向 Azure Key Vault 進行驗證的身分識別類型。 若的 Azure Key Vault 設定為使用保存庫存取原則作為其權限模型,則這兩個選項皆可供使用。 否則,只有使用者指派的選項可用。

    • 若選擇 [系統指派],請選取 [儲存] 按鈕。 Azure 入口網站會將系統指派的身分識別新增至 NetApp 帳戶,以自動設定 NetApp 帳戶。 同時也在 Azure Key Vault 上建立具有金鑰權限 Get、Encrypt、Decrypt 的存取原則。

    具有系統指派選項的加密功能表螢幕擷取畫面。

    • 若選擇 [使用者指派],您必須選取身分識別。 選擇 [選取身分識別] 以開啟內容窗格,您可以在其中選取使用者指派的受控識別。

    使用者指派子功能表的螢幕擷取畫面。

    若已將 Azure Key Vault 設定為使用保存庫存取原則,Azure 入口網站會自動使用下列程序來設定 NetApp 帳戶:您選取的使用者指派身分識別會新增至 NetApp 帳戶。 存取原則會在您的 Azure Key Vault 上建立,並具有 Get、Encrypt、Decrypt 的金鑰權限。

    已將 Azure Key Vault 配置為使用 Azure 角色型存取控制的話,您需要確保選定的使用者指派身分在金鑰保存庫中擁有具備動作權限的角色指派:

    • Microsoft.KeyVault/vaults/keys/read
    • Microsoft.KeyVault/vaults/keys/encrypt/action
    • Microsoft.KeyVault/vaults/keys/decrypt/action 您選取的使用者指派身分識別會新增至 NetApp 帳戶。 由於角色型訪問控制的可自定義本質,Azure 入口網站不會設定密鑰保存庫的存取權。 如需設定 Azure Key Vault 的詳細資訊,請參閱使用 Azure 角色型存取控制提供 Key Vault 金鑰、憑證和祕密的存取權
  4. 選取 [儲存],然後觀察傳達作業狀態的通知。 如果作業未成功,就會顯示錯誤訊息。 如需解決錯誤的協助,請參閱 錯誤訊息和疑難解答

使用角色型存取控制

您可以使用設定為使用 Azure 角色型存取控制的 Azure Key Vault。 若要透過 Azure 入口網站設定客戶自控金鑰,您必須提供使用者指派的身分識別。

  1. 在您的 Azure 帳戶中,瀏覽至 [金鑰保存庫],然後瀏覽至 [存取原則]

  2. 若要建立存取原則,請在 [權限模型] 底下,選取 [Azure 角色型存取控制] 存取設定功能表的螢幕擷取畫面。

  3. 建立使用者指派的角色時,客戶自控金鑰需要三個權限:

    1. Microsoft.KeyVault/vaults/keys/read
    2. Microsoft.KeyVault/vaults/keys/encrypt/action
    3. Microsoft.KeyVault/vaults/keys/decrypt/action

    雖然有包含這些權限的預先定義角色,但這些角色授與的權限比所需要的還多。 建議您只建立具有最低必要權限的自訂角色。 如需詳細資訊,請參閱 Azure 自訂角色

    {
        "id": "/subscriptions/<subscription>/Microsoft.Authorization/roleDefinitions/<roleDefinitionsID>",
        "properties": {
            "roleName": "NetApp account",
            "description": "Has the necessary permissions for customer-managed key encryption: get key, encrypt and decrypt",
            "assignableScopes": [
                "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroup>"
            ],
            "permissions": [
              {
                "actions": [],
                "notActions": [],
                "dataActions": [
                    "Microsoft.KeyVault/vaults/keys/read",
                    "Microsoft.KeyVault/vaults/keys/encrypt/action",
                    "Microsoft.KeyVault/vaults/keys/decrypt/action"
                ],
                "notDataActions": []
                }
            ]
          }
    }
    
  4. 建立自訂角色並可供金鑰保存庫使用之後,您可以將該角色套用至使用者指派的身分識別。

角色型存取控制檢閱和指派功能表的螢幕擷取畫面。

使用客戶自控金鑰建立 Azure NetApp Files 磁碟區

  1. 從 Azure NetApp Files 中,選取 [磁碟區],然後選取 [+ 新增磁碟區]

  2. 請遵循設定 Azure NetApp Files 磁碟區網路功能的指示:

  3. 對於設定為使用客戶自控金鑰的 NetApp 帳戶,[建立磁碟區] 頁面包含 [加密金鑰來源] 選項。

    若要使用金鑰加密磁碟區,請在 [加密金鑰來源] 下拉功能表中選取 [客戶自控金鑰]

    若使用客戶自控金鑰建立磁碟區,您也必須為 [網路功能] 選項選取 [標準]。 不支援基本網路功能。

    您也必須選取金鑰保存庫私人端點。 下拉功能表會顯示所選虛擬網路中的私人端點。 如果選定虛擬網路中的金鑰保存庫沒有私人端點,則下拉式清單是空的,您將無法繼續。 如果您遇到此案例,請參閱 Azure 私人端點

    建立磁碟區選單的截圖。

  4. 繼續完成磁碟區建立程序。 請參閱:

將 Azure NetApp Files 磁碟區轉換為客戶管理的密鑰

Azure NetApp Files 支援將現有磁碟區從使用平台代控金鑰移至客戶自控金鑰。 完成移轉之後,就無法還原為平台代控金鑰。

轉換磁碟區

附註

當您將磁碟區轉換為使用客戶自控金鑰時,必須對 Azure NetApp Files 帳戶具有磁碟區的每個虛擬網路執行轉換。

  1. 請確保將 Azure NetApp Files 帳戶設定為使用客戶自控金鑰
  2. 在 Azure 入口網站中,瀏覽至 [加密]
  3. 選取 CMK 移轉 標籤頁。
  4. 從下拉式功能表中,選取您要使用的虛擬網路和金鑰保存庫私人端點。
  5. Azure 會產生要使用客戶自控金鑰加密的磁碟區清單。
  6. 選取 [確認] 以起始移轉。

重設 NetApp 帳戶下的所有磁碟區

若已針對客戶自控金鑰設定 NetApp 帳戶,並且有一或多個使用客戶自控金鑰加密的磁碟區,您可以變更用來加密 NetApp 帳戶下所有磁碟區的金鑰。 您可以選取位於相同金鑰儲存庫中的任何金鑰。 不支援變更金鑰保存庫。

  1. 在您的 NetApp 帳戶下,瀏覽至 [加密] 功能表。 在 [目前的金鑰] 輸入欄位下,選取 [重設金鑰] 連結。 加密金鑰的螢幕擷取畫面。

  2. 在 [重設金鑰] 功能表中,從下拉功能表中選取其中一個可用的金鑰。 所選的金鑰必須與目前的金鑰不同。 重設金鑰功能表的螢幕擷取畫面。

  3. 選取 [確定] 以儲存。 重設金鑰作業可能需要幾分鐘的時間。

從系統指派的身分識別切換至使用者指派的身分識別

若要從系統指派的身分識別切換至使用者指派的身分識別,您必須為目標身分識別授與金鑰保管庫的存取權,並具有讀取/取得、加密及解密權限。

  1. 使用 az rest 命令傳送 PATCH 要求來更新 NetApp 帳戶:

    az rest -m PATCH -u <netapp-account-resource-id>?api-versions=2022-09-01 -b @path/to/payload.json
    

    有效載荷應該使用以下結構:

    {
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
         "<identity-resource-id>": {}
        }
      },
      "properties": {
        "encryption": {
          "identity": {
            "userAssignedIdentity": "<identity-resource-id>"
          }
        }
      }
    }
    
  2. 使用 az netappfiles account show 命令確認作業成功完成。 輸出包含下列欄位:

        "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.NetApp/netAppAccounts/account",
        "identity": {
            "principalId": null,
            "tenantId": null,
            "type": "UserAssigned",
            "userAssignedIdentities": {
                "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity>": {
                    "clientId": "<client-id>",
                    "principalId": "<principalId>",
                    "tenantId": <tenantId>"
                }
            }
        },
    

    請確定:

    • encryption.identity.principalId 符合 identity.userAssignedIdentities.principalId 中的值
    • encryption.identity.userAssignedIdentity 符合 identity.userAssignedIdentities[] 中的值
    "encryption": {
        "identity": {
            "principalId": "<principal-id>",
            "userAssignedIdentity": "/subscriptions/<subscriptionId>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity>"
        },
        "KeySource": "Microsoft.KeyVault",
    },
    

更新私人端點

在建立客戶自控金鑰磁碟區之後變更 Azure 私人端點,可能會使磁碟區無法存取。 如果您需要進行變更,您必須建立新的端點,並更新磁碟區以指向新的端點。

  1. 在虛擬網路與 Azure Key Vault 之間建立新的端點。
  2. 將使用舊端點的所有磁碟區更新為使用新端點。
    az netappfiles volume update --g $resource-group-name --account-name $netapp-account-name --pool-name $pool-name --name $volume-name --key-vault-private-endpoint-resource-id $newendpoint
    
  3. 刪除舊的私人端點

下一步