設定 Azure NetApp Files 磁碟區加密的客戶自控密鑰

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

下圖示範客戶管理的金鑰如何與 Azure NetApp Files 搭配運作:

客戶自控金鑰的概念圖。

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

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

  3. 您可以使用 Azure 金鑰保存庫 系統管理員在步驟 1 中授與許可權的受控識別,透過 Microsoft Entra ID 驗證 Azure 金鑰保存庫 的存取權。

  4. Azure NetApp Files 會將帳戶加密密鑰包裝在 Azure 金鑰保存庫 中由客戶管理的密鑰。

    客戶管理的密鑰對 Azure NetApp Files 沒有任何效能影響。 其與平臺管理的金鑰唯一差異在於金鑰的管理方式。

  5. 針對讀取/寫入作業,Azure NetApp Files 會將要求傳送至 Azure 金鑰保存庫,以解除包裝帳戶加密密鑰以執行加密和解密作業。

考量

  • 客戶管理的金鑰只能在新的磁碟區上設定。 您無法將現有的磁碟區移轉至客戶管理的金鑰加密。
  • 若要使用客戶管理的金鑰建立磁碟區,您必須選取 標準 網路功能。 您無法使用客戶管理的金鑰磁碟區搭配使用基本網路功能所設定的磁碟區。 請遵循 中的指示,在 磁碟區建立頁面中設定 [網路功能] 選項
  • 為了提高安全性,您可以在金鑰保存庫的網路設定中選取 [ 停用公用存取 ] 選項。 選取此選項時,您也必須選取 [允許受信任的 Microsoft 服務 略過此防火牆,以允許 Azure NetApp Files 服務存取您的加密金鑰。
  • 客戶管理的金鑰支援自動受控系統識別 (MSI) 憑證更新。 如果您的憑證有效,則不需要手動更新憑證。
  • Azure NetApp Files 客戶管理的金鑰不支援將私人連結子網上的 Azure 網路安全組套用至 Azure 金鑰保存庫。 除非在子網上啟用,否則 Private endpoint network policy 網路安全組不會影響對 Private Link 的連線。 必須停用此選項。
  • 如果 Azure NetApp Files 無法建立客戶管理的金鑰磁碟區,則會顯示錯誤訊息。 如需詳細資訊, 請參閱錯誤訊息和疑難解答 一節。
  • 如果無法存取 Azure Key Vault,Azure NetApp Files 將失去對加密金鑰的存取權,以及對使用客戶自控金鑰啟用的磁碟區讀取或寫入資料的能力。 在此情況下,請建立支援票證,以手動還原受影響磁碟區的存取權。
  • Azure NetApp Files 在具有跨區域複寫或跨區域復寫關聯性的源和數據復寫磁碟區上支持客戶管理的密鑰。

支援的區域

下列區域支援 Azure NetApp Files 客戶管理的金鑰:

  • 澳大利亞中部
  • 澳大利亞中部 2
  • 澳大利亞東部
  • 澳大利亞東南部
  • 巴西南部
  • 巴西東南部
  • 加拿大中部
  • 加拿大東部
  • 印度中部
  • 美國中部
  • 東亞
  • 美國東部
  • 美國東部 2
  • 法國中部
  • 德國北部
  • 德國中西部
  • 日本東部
  • 日本西部
  • 南韓中部
  • 南韓南部
  • 美國中北部
  • 北歐
  • 挪威東部
  • 挪威西部
  • 卡達中部
  • 南非北部
  • 美國中南部
  • 印度南部
  • 東南亞
  • 瑞典中部
  • 瑞士北部
  • 瑞士西部
  • 阿拉伯聯合大公國中部
  • 阿拉伯聯合大公國北部
  • 英國南部
  • 英國西部
  • 西歐
  • 美國西部
  • 美國西部 2
  • 美國西部 3

需求

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

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

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

設定 NetApp 帳戶以使用客戶管理的金鑰

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

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

    加密功能表的螢幕快照。

  2. 當您將 NetApp 帳戶設定為使用客戶管理的金鑰時,有兩種方式可指定金鑰 URI:

    • [ 從金鑰保存庫 選擇] 選項可讓您選取金鑰保存庫和金鑰。 選取金鑰介面的螢幕快照。

    • [ 輸入金鑰 URI ] 選項可讓您手動輸入金鑰 URI。 顯示金鑰 URI 欄位的加密功能表螢幕快照。

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

    • 如果您選擇 [系統指派],請選取 [ 儲存] 按鈕。 Azure 入口網站 會自動使用下列程式設定 NetApp 帳戶:系統指派的身分識別會新增至您的 NetApp 帳戶。 存取原則將在您的 Azure 金鑰保存庫 上建立,並具有密鑰許可權 [取得]、[加密]、[解密]。

    具有系統指派選項之加密功能表的螢幕快照。

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

    使用者指派子功能表的螢幕快照。

    如果您已將 Azure 金鑰保存庫 設定為使用保存庫存取原則,Azure 入口網站 會自動使用下列程式設定 NetApp 帳戶:您選取的使用者指派身分識別會新增至 NetApp 帳戶。 存取原則會在您的 Azure 金鑰保存庫 上建立,並具有取得、加密、解密密鑰許可權。

    如果您已將 Azure 金鑰保存庫 設定為使用 Azure 角色型存取控制,則必須確定選取的使用者指派身分識別在金鑰保存庫上具有動作許可權的角色指派:

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

使用角色型存取控制

您可以使用設定為使用 Azure 角色型存取控制的 Azure 金鑰保存庫。 若要透過 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. 建立自訂角色並可供密鑰保存庫使用之後,您可以將它套用至使用者指派的身分識別。

RBAC 檢閱和指派功能表的螢幕快照。

使用客戶管理的金鑰建立 Azure NetApp Files 磁碟區

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

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

    • 在磁碟區建立頁面中設定 [網路功能] 選項。
    • 磁碟區委派子網的網路安全組必須允許來自NetApp記憶體 VM 的連入流量。
  3. 針對設定為使用客戶管理的密鑰的 NetApp 帳戶,[建立磁碟區] 頁面包含 [加密金鑰來源] 選項。

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

    當您使用客戶管理的密鑰建立磁碟區時,也必須針對 [網络功能] 選項選取 [標準]。 不支援基本網路功能。

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

    建立磁碟區功能表的螢幕快照。

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

重設 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 NetApp Files 無法設定客戶自控密鑰加密或使用客戶自控密鑰建立磁碟區時的錯誤訊息和可能解決方式。

在 NetApp 帳戶上設定客戶管理的金鑰加密時發生錯誤

錯誤條件 解決方法
The operation failed because the specified key vault key was not found 手動輸入金鑰 URI 時,請確定 URI 正確無誤。
Azure Key Vault key is not a valid RSA key 確定選取的金鑰類型為 RSA。
Azure Key Vault key is not enabled 確定選取的金鑰已啟用。
Azure Key Vault key is expired 確定選取的金鑰未過期。
Azure Key Vault key has not been activated 確定選取的索引鍵為使用中。
Key Vault URI is invalid 手動輸入金鑰 URI 時,請確定 URI 正確無誤。
Azure Key Vault is not recoverable. Make sure that Soft-delete and Purge protection are both enabled on the Azure Key Vault 將金鑰儲存庫復原層級更新為:
“Recoverable/Recoverable+ProtectedSubscription/CustomizedRecoverable/CustomizedRecoverable+ProtectedSubscription”
Account must be in the same region as the Vault 請確定金鑰保存庫位於與 NetApp 帳戶相同的區域中。

建立使用客戶自控金鑰加密的磁碟區時發生錯誤

錯誤條件 解決方法
Volume cannot be encrypted with Microsoft.KeyVault, NetAppAccount has not been configured with KeyVault encryption 您的 NetApp 帳戶未啟用客戶自控金鑰加密。 設定 NetApp 帳戶以使用客戶管理的金鑰。
EncryptionKeySource cannot be changed 沒有解決方案。 無法變更磁碟區的 EncryptionKeySource 屬性。
Unable to use the configured encryption key, please check if key is active 請檢查:
-金鑰保存庫上的所有存取原則是否正確:取得、加密、解密?
-金鑰保存庫的私人端點是否存在?
-VNet 中是否有 虛擬網絡 NAT,且已啟用委派的 Azure NetApp Files 子網?
Could not connect to the KeyVault 請確定已正確設定私人端點,且防火牆不會封鎖從您 虛擬網絡 到 KeyVault 的連線。

下一步