✔️ 適用於: 使用 Microsoft.Storage 資源提供者建立的經典 SMB 和 NFS 檔案共享。
✖️ 不適用於:使用 Microsoft.FileShares 資源提供者建立的檔案共用
Azure 會以 AES-256 加密加密儲存帳號中所有資料,包括 Azure 檔案儲存體 資料。 預設情況下,Microsoft 會管理儲存帳號的加密金鑰。 為了更好地控制加密金鑰,您可以使用客戶管理金鑰(CMK)取代Microsoft管理金鑰,以保護並控制加密金鑰的存取權限。 本文說明如何為 Azure 檔案儲存體 工作負載配置客戶管理的金鑰。
當你為儲存帳號設定客戶管理的金鑰時,該儲存帳號中的 Azure 檔案儲存體 資料會自動用客戶金鑰加密。 不需要針對每個共用個別選擇加入。
這些指令用於將客戶管理的金鑰儲存在 Azure Key Vault。
Azure Key Vault Managed HSM(硬體安全模組)的一些步驟與指令可能會略有不同。
請依照以下步驟設定由客戶管理的儲存帳戶金鑰。
要啟用客戶管理金鑰,你需要一個 Azure 儲存帳號,以及啟用清除保護的 Azure Key Vault。 您可以使用現有的金鑰保存庫,或建立新的金鑰保存庫。 儲存帳號和金鑰庫可以位於同一 Microsoft Entra 租戶內的不同區域或訂閱中。 關於跨租戶情境,請參見 「為現有儲存帳號配置跨租戶客戶管理金鑰」。
要透過 Azure 入口建立新的金鑰保險庫,請遵循以下步驟:
- 在Azure入口網站中,搜尋 Key vaults,並選擇 Create。
- 填寫所需欄位(訂閱、資源群組、名稱、地區)。
- 在 復原選項中,選擇 啟用清除保護。
- 選取 審核 + 建立,然後選取 建立。
如果你想使用現有的金鑰保險庫,請依照以下步驟操作:
- 前往 Azure 入口網站中的你的金鑰庫。
- 在服務選單中,在 設定中選擇 屬性。
- 在 清除保護 區塊中,選擇 啟用清除保護,然後選擇 儲存。
- 確保你的金鑰保險庫啟用軟刪除功能。 新金鑰保存庫預設會啟用此功能。
要建立一個啟用清除保護的新金鑰保險庫,請執行以下 cmdlet。 將 <key-vault-name>、<resource-group> 和 <region> 取代為您自己的值。
New-AzKeyVault `
-Name <key-vault-name> `
-ResourceGroupName <resource-group> `
-Location <region> `
-EnablePurgeProtection
要啟用已有的金鑰保存庫的清除保護,請執行下列 cmdlet。 將<key-vault-name> 和 <resource-group> 取代為您自己的值。
Update-AzKeyVault `
-VaultName <key-vault-name> `
-ResourceGroupName <resource-group> `
-EnablePurgeProtection
要建立啟用清除保護的新金鑰保險庫,請執行以下指令。 將 <key-vault-name>、<resource-group> 和 <region> 取代為您自己的值。
az keyvault create \
--name <key-vault-name> \
--resource-group <resource-group> \
--location <region> \
--enable-purge-protection true
要啟用現有金鑰保險庫的清除保護,請執行以下指令。 將<key-vault-name> 和 <resource-group> 取代為您自己的值。
az keyvault update \
--name <key-vault-name> \
--resource-group <resource-group> \
--enable-purge-protection true
指派 金鑰保存庫 加密官角色
要在key vault中建立和管理金鑰,你需要在key vault上擔任金鑰保存庫 Crypto Officer 角色。 你可以透過 Azure 入口網站、PowerShell 或 Azure CLI 自行指派這個角色。 如果你已經在 金鑰保存庫 擔任這個角色,可以跳過這部分,直接進入步驟 2。
你需要在 金鑰保存庫 範圍內擁有Owner或User Access Administrator 的 RBAC 角色,才能指派金鑰保存庫 Crypto Officer 角色。 如有需要,請聯絡你的行政人員。
若要透過Azure入口網站自行指派金鑰保存庫加密官員職務,請依照以下步驟操作:
- 移至您的金鑰保存庫。
- 從服務選單中,選擇存取控制(IAM)。
- 在授與此資源的存取權下方,選取新增角色指派。
- 搜尋並選擇 金鑰保存庫 Crypto Officer,然後選擇 Next。
- 在 [指派存取權] 底下,選取 [使用者、群組或服務主體]。
- 在 「會員」中,選擇 +選擇成員。
- 搜尋並選擇你自己的帳號,然後選擇 「選擇」。
- 選擇 Review + assign,然後再選擇 Review + assign。
要用 Azure PowerShell 來指派 金鑰保存庫 Crypto Officer 角色,請執行以下 cmdlet。 以您自己的值取代 <key-vault-name>。
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
$currentUser = (Get-AzADUser -SignedIn).Id
New-AzRoleAssignment `
-ObjectId $currentUser `
-RoleDefinitionName "Key Vault Crypto Officer" `
-Scope $keyVault.ResourceId
要用 Azure CLI 來指派 金鑰保存庫 Crypto Officer 角色,請執行以下指令。 以您自己的值取代 <key-vault-name>。
KV_RESOURCE_ID=$(az keyvault show --name <key-vault-name> --query id -o tsv)
CURRENT_USER=$(az ad signed-in-user show --query id -o tsv)
az role assignment create \
--assignee-object-id $CURRENT_USER \
--assignee-principal-type User \
--role "Key Vault Crypto Officer" \
--scope $KV_RESOURCE_ID
步驟二:建立或匯入加密金鑰
你需要一把 RSA 或 RSA-HSM 的 2048、3072 或 4096 的鑰匙。 在你的金鑰庫中產生或匯入 RSA 金鑰。 在產生金鑰之前,請確保你在金鑰保存庫上具有金鑰保存庫 Crypto Officer 角色。
要透過 Azure 入口網站產生新的 RSA 加密金鑰,請遵循以下步驟。
- 前往 Azure 入口網站中的你的金鑰庫。
- 在服務選單中,選擇物件後,再選擇金鑰。
- 選取 產生/匯入。 在 選項中,選擇 產生。
- 輸入鑰匙名稱。 鍵名只能包含英文字母、數字和破折號。
- 將 金鑰類型 設為 RSA,RSA金鑰大小 設為 2048 (或 3072/4096)。
- 選取 建立。
要透過 Azure 入口網站匯入現有的 RSA 加密金鑰,請依照以下步驟操作。
- 前往 Azure 入口網站中的你的金鑰庫。
- 在服務選單中,選擇物件後,再選擇金鑰。
- 選取 產生/匯入。 在 選項中,選擇 匯入。
- 選擇你的金鑰上傳。
- 輸入鑰匙名稱。 鍵名只能包含英文字母、數字和破折號。
- 將 [金鑰類型] 設定為 [RSA]。
- 選取 建立。
要使用 Azure PowerShell 建立 RSA 金鑰,請執行以下 cmdlet。 將<key-vault-name> 和 <key-name> 取代為您自己的值。 對於 -Size,你可以指定 2048、3072 或 4096。
Add-AzKeyVaultKey `
-VaultName <key-vault-name> `
-Name <key-name> `
-Destination Software `
-KeyType RSA `
-Size 2048
要使用 Azure PowerShell 匯入現有的 RSA 加密金鑰,請執行以下 cmdlet。 將 <key-vault-name>、<key-name> 和 <key-path> 取代為您自己的值。 如果金鑰檔沒有密碼,就省略該 -KeyFilePassword 參數。
Add-AzKeyVaultKey `
-VaultName <key-vault-name> `
-Name <key-name> `
-KeyFilePath <key-path> `
-KeyFilePassword $password
要使用 Azure CLI 建立 RSA 金鑰,請執行以下指令。 將<key-vault-name> 和 <key-name> 取代為您自己的值。 對於 --size,你可以指定 2048、3072 或 4096。
az keyvault key create \
--vault-name <key-vault-name> \
--name <key-name> \
--kty RSA \
--size 2048
要使用 Azure CLI 匯入現有的 RSA 加密金鑰,請執行以下指令。 將 <key-vault-name>、<key-name> 和 <key-path> 取代為您自己的值。 如果金鑰檔沒有密碼,就省略該 --password 參數。
az keyvault key import \
--vault-name <key-vault-name> \
--name <key-name> \
--pem-file <key-path> \
--password <key-password>
步驟 3:建立受管理身份並分配權限
儲存帳號需要一個 受管理身份 來驗證到金鑰保險庫。 透過使用管理身份,儲存帳號可以安全地存取你金鑰庫中的加密金鑰,而不必儲存憑證。
建立一個由使用者指派的管理身份,並在金鑰保存庫上將該身份授予金鑰保存庫 加密服務用戶角色。
建立使用者指派的管理型身分識別
使用Azure portal、Azure PowerShell或Azure CLI建立用戶指定管理身份。
要透過 Azure 入口建立使用者指派的受管理身份,請遵循以下步驟。
- 搜尋 「受管理身份 」並選擇 「建立」。
- 選擇訂閱、資源群組、地區名稱。
- 選取 審核 + 建立,然後選取 建立。
要使用 Azure PowerShell 建立使用者指派的管理身份,請執行以下 cmdlet。 將 <resource-group>、<identity-name> 和 <region> 取代為您自己的值。
New-AzUserAssignedIdentity `
-ResourceGroupName <resource-group> `
-Name <identity-name> `
-Location <region>
要使用 Azure CLI 建立使用者指派的管理身份,請執行以下指令。 將 <resource-group>、<identity-name> 和 <region> 取代為您自己的值。
az identity create \
--name <identity-name> \
--resource-group <resource-group> \
--location <region>
將 金鑰保存庫 Crypto Service Encryption User 角色指派給受控識別
將 金鑰保存庫 加密服務加密用戶 角色分配給你使用 Azure 入口網站、PowerShell 或 Azure CLI 建立的管理身份。
要透過Azure入口網站將金鑰保存庫加密服務加密用戶角色指派給受管理身份,請遵循以下步驟:
- 前往 Azure 入口網站中的你的金鑰庫。
- 從服務選單中,選擇存取控制(IAM)。
- 在授與此資源的存取權下方,選取新增角色指派。
- 搜尋並選擇 金鑰保存庫 Crypto Service Encryption User,然後選擇 Next。
- 在 [存取權指派對象] 下,選取 [受控識別]。
- 在 「會員」中,選擇 +選擇成員。
-
選取受管理的身分 視窗隨即開啟。 在 [受控識別] 下,選取 [使用者指派的受控識別]。
- 選擇你建立的管理身份,然後選擇 「選擇」。
- 選擇 Review + assign,然後再選擇 Review + assign。
要使用 Azure PowerShell 將 金鑰保存庫 加密服務加密使用者 角色指派給使用者指派的管理身份,請執行以下 cmdlet。 將 <resource-group>、<identity-name> 和 <key-vault-name> 取代為您自己的值。
$identity = Get-AzUserAssignedIdentity `
-ResourceGroupName <resource-group> `
-Name <identity-name>
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
New-AzRoleAssignment `
-ObjectId $identity.PrincipalId `
-RoleDefinitionName "Key Vault Crypto Service Encryption User" `
-Scope $keyVault.ResourceId
要使用 Azure CLI 將 金鑰保存庫 加密服務加密用戶 角色指派給使用者指派的管理身份,請執行以下指令。 將 <resource-group>、<identity-name> 和 <key-vault-name> 取代為您自己的值。
# Get the principal ID of the user-assigned managed identity
IDENTITY_PRINCIPAL_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query principalId -o tsv)
# Get the key vault resource ID
KV_RESOURCE_ID=$(az keyvault show \
--name <key-vault-name> \
--query id -o tsv)
# Assign the Key Vault Crypto Service Encryption User role to the user-assigned managed identity
az role assignment create \
--assignee-object-id $IDENTITY_PRINCIPAL_ID \
--assignee-principal-type ServicePrincipal \
--role "Key Vault Crypto Service Encryption User" \
--scope $KV_RESOURCE_ID
有了金鑰庫、金鑰和受管理身份後,你可以在儲存帳號啟用客戶管理的金鑰。
請依照以下步驟設定儲存帳號使用你的金鑰進行加密。 Azure 入口網站總是自動更新金鑰版本。 若想改用手動金鑰版本管理,請使用 Azure PowerShell 或 Azure CLI 並指定金鑰版本。
Important
對於與 網路安全邊界相關的儲存帳戶,金鑰庫理想上應該位於相同的網路安全邊界內。 如果不是,那你必須設定金鑰保險庫的網路安全邊界設定檔,讓儲存帳號能與它通訊。
你可以透過 Azure 入口網站、Azure PowerShell 或 Azure CLI 在現有儲存帳號上設定客戶管理的金鑰。
要透過 Azure 入口網站在現有儲存帳號上設定客戶管理的金鑰,請遵循以下步驟。 入口網站預設採用自動更新金鑰版本。 你無法指定一個金鑰版本。
- 前往您的儲存帳戶。
- 在服務選單中,在 安全 + 網路中選擇 加密。
- 對於 加密類型,請選擇 Customer-Managed 金鑰。 如果儲存帳號已經設定為 CMK,請選擇 變更鍵。
- 對於 加密金鑰,請選擇 「從金鑰庫中選擇」。
- 選擇「選擇一個金鑰保存庫和金鑰」,然後選擇你的金鑰保存庫和金鑰。
- 在 身份類型中,選擇使用者 指派 ,以使用你先前建立的使用者指派管理身份。
- 搜尋並選擇使用者指派的管理身份,然後選擇 新增。
- 選取 [儲存]。
若要使用 Azure PowerShell 並自動更新金鑰版本(建議)在現有儲存帳戶上設定客戶管理的金鑰,請執行以下 cmdlet。 用你自己的數值替換 <resource-group>、 <identity-name>、 <storage-account-name><key-vault-name><key-name> 、 , 。
以下 cmdlet 使用您先前建立的使用者指派的受管理的身份。 如果你想改用儲存帳號的系統身份,請設 IdentityType 為 SystemAssigned 並省略變 $identity 數 UserAssignedIdentityId,且 KeyVaultUserAssignedIdentityId。
$identity = Get-AzUserAssignedIdentity `
-ResourceGroupName <resource-group> `
-Name <identity-name>
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
$key = Get-AzKeyVaultKey -VaultName <key-vault-name> -Name <key-name>
Set-AzStorageAccount `
-ResourceGroupName <resource-group> `
-Name <storage-account-name> `
-IdentityType UserAssigned `
-UserAssignedIdentityId $identity.Id `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVaultEncryption `
-KeyVaultUserAssignedIdentityId $identity.Id
若要使用手動金鑰版本更新而非自動更新,請將參數加入-KeyVersion $key.Version指令檔。Set-AzStorageAccount
要使用 Azure CLI 並自動更新金鑰版本(建議)在現有儲存帳號上設定客戶管理的金鑰,請執行以下指令。 用你自己的數值替換 <resource-group>、 <identity-name>、 <storage-account-name><key-vault-name><key-name> 、 , 。
以下指令使用你先前建立的使用者指派管理身份。 如果你想改用儲存帳號的系統身份,請設 --identity-type 為 SystemAssigned 並省略變 IDENTITY_RESOURCE_ID 數 --user-identity-id,且 --key-vault-user-identity-id。
# Using user-assigned managed identity. Omit for system assigned.
IDENTITY_RESOURCE_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query id -o tsv)
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <key-name> \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $IDENTITY_RESOURCE_ID \
--identity-type UserAssigned \
--user-identity-id $IDENTITY_RESOURCE_ID
若要使用手動鍵版本更新取代自動更新,請在指令--encryption-key-version <key-version>中新增az storage account update內容。
你可以在建立新儲存帳號時,透過 Azure 入口網站、Azure PowerShell 或 Azure CLI 來設定客戶管理的金鑰。
你不能在儲存帳號建立時使用系統指派的身份,因為該身份直到儲存帳號建立後才存在。 你必須使用使用者指派的管理身份。
要透過 Azure 入口網站設定客戶管理的儲存帳戶金鑰,請遵循以下步驟。 入口網站預設採用自動更新金鑰版本。 你無法指定一個金鑰版本。
- 在儲存帳號建立時的 加密 標籤中,選擇「 客戶管理金鑰」(Customer-managed keys,CMK) 作為 加密類型。
- 在 「加密金鑰」中,選擇「 選擇一個金鑰庫和金鑰」,然後再選擇你的金鑰金庫和金鑰。
- 在 「使用者指派身份」中,選擇 「選擇一個身份」。 「 選擇使用者指派的管理身份 視窗」會打開。
- 搜尋並選擇您預先建立的使用者指派管理身份。 新的儲存帳號無法使用系統指派的管理身份。
- 選取 ,然後新增。
- 完成剩餘的分頁並選擇檢閱 + 建立。
要使用 Azure PowerShell 建立一個由客戶管理的金鑰的新儲存帳號,請執行以下 cmdlet。 用你自己的價值觀取代 <resource-group>、 <identity-name>、 <storage-account-name><key-vault-name><key-name><region> 、 , 你可以為 -Kind 和 -SkuName 指定不同的值。
$identity = Get-AzUserAssignedIdentity `
-ResourceGroupName <resource-group> `
-Name <identity-name>
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
$key = Get-AzKeyVaultKey -VaultName <key-vault-name> -Name <key-name>
New-AzStorageAccount `
-ResourceGroupName <resource-group> `
-Name <storage-account-name> `
-Location <region> `
-SkuName Standard_LRS `
-Kind StorageV2 `
-IdentityType UserAssigned `
-UserAssignedIdentityId $identity.Id `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVaultUserAssignedIdentityId $identity.Id
若要使用手動金鑰版本更新方式取代自動,請將-KeyVersion $key.Version參數加入New-AzStorageAccount cmdlet。
要使用 Azure CLI 建立一個由客戶管理的金鑰的新儲存帳號,請執行以下指令。 用你自己的價值觀取代 <resource-group>、 <identity-name>、 <storage-account-name><key-vault-name><key-name><region> 、 , 你可以為 --kind 和 --sku 指定不同的值。
IDENTITY_RESOURCE_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query id -o tsv)
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
az storage account create \
--name <storage-account-name> \
--resource-group <resource-group> \
--location <region> \
--sku Standard_LRS \
--kind StorageV2 \
--identity-type UserAssigned \
--user-identity-id $IDENTITY_RESOURCE_ID \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <key-name> \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $IDENTITY_RESOURCE_ID
若要使用手動鍵版本更新而非自動,請在指令--encryption-key-version <key-version>中新增az storage account create內容。
步驟五:驗證配置
啟用客戶管理金鑰後,請確認你的儲存帳號加密設定是否正確。 你可以透過使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來達成此目標。
要透過 Azure 入口驗證儲存帳號設定,請遵循以下步驟:
- 請進入 Azure portal 的 storage 帳號。
- 在服務選單中,在 安全 + 網路中選擇 加密。
- 確認 加密類型 顯示 客戶管理的金鑰。
- 請確認 Key 選擇 下的資訊是否正確。
要使用 Azure PowerShell 驗證儲存帳號設定,請執行以下 cmdlet。 將<resource-group> 和 <storage-account-name> 取代為您自己的值。
$account = Get-AzStorageAccount `
-ResourceGroupName <resource-group> `
-Name <storage-account-name>
$account.Encryption.KeySource
$account.Encryption.KeyVaultProperties
確認 KeySource 是 Microsoft.Keyvault,且 KeyVaultProperties 顯示你的金鑰庫 URI 和金鑰名稱。
要使用 Azure CLI 驗證設定,請執行以下指令。 將<resource-group> 和 <storage-account-name> 取代為您自己的值。
az storage account show \
--name <storage-account-name> \
--resource-group <resource-group> \
--query encryption
確認 keySource 是 Microsoft.Keyvault,且 keyVaultProperties 區塊顯示你的金鑰庫 URI 和金鑰名稱。
金鑰輪替
定期輪換加密金鑰可以減少金鑰一旦被洩漏的風險。 針對使用客戶管理金鑰的儲存帳號,有兩種輪替加密金鑰的方式:
-
旋轉鑰匙版本 - 在鑰匙庫中建立同一鑰匙的新版本。 金鑰名稱保持不變,但版本會改變。
-
更改金鑰 - 將儲存帳號切換成在同一或不同的金鑰庫中使用完全不同的金鑰(名稱不同)。
Important
Azure 每天只檢查一次金鑰庫中的新金鑰版本。 更換金鑰後,請等待 24 小時內再停用先前的金鑰版本。
輪替金鑰版本
為了安全最佳實務,至少每兩年輪換一次金鑰版本。
自動密鑰版本輪換(建議)
如果你設定客戶管理的金鑰卻沒有指定金鑰版本(使用Azure入口網站時的預設版本),Azure會自動每天檢查是否有新的金鑰版本。 如果你在金鑰庫中建立新版本的金鑰,Azure 會在 24 小時內接收。 你也可以在 Azure Key Vault 設定 自動金鑰輪替,以排程產生新的金鑰版本。
手動金鑰版本輪替
如果你在使用 PowerShell 或 Azure CLI 設定客戶管理金鑰時指定了金鑰版本,Azure 會使用該特定版本,不會自動檢查新版本。 你必須手動更新儲存帳號設定,指向新的金鑰版本。
Azure 入口網站不支援手動金鑰版本輪換。 若要手動輪換金鑰版本,請使用 Azure PowerShell 或 Azure CLI。
若要使用 Azure PowerShell 手動輪換金鑰版本,請執行以下 cmdlet。 將<resource-group>、<storage-account-name>、<key-vault-name>和<key-name>替換為您自己的值。
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
$key = Get-AzKeyVaultKey -VaultName <key-vault-name> -Name <key-name>
Set-AzStorageAccount `
-ResourceGroupName <resource-group> `
-Name <storage-account-name> `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVersion $key.Version `
-KeyVaultEncryption
若要使用 Azure CLI 手動輪換金鑰版本,請執行以下指令。 將<storage-account-name>、<resource-group>、<key-vault-name>和<key-name>替換為您自己的值。
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
# Get the latest key version
KEY_VERSION=$(az keyvault key show \
--vault-name <key-vault-name> \
--name <key-name> \
--query key.kid -o tsv | sed -e 's|.*/||')
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <key-name> \
--encryption-key-version $KEY_VERSION \
--encryption-key-source Microsoft.Keyvault
變更金鑰
若要切換儲存帳號使用完全不同的金鑰,請在您的金鑰庫中建立或匯入一組新金鑰(參見 建立或匯入加密金鑰),然後更新儲存帳號的加密設定以使用新金鑰。
要透過 Azure 入口網站更改金鑰,請依照以下步驟操作:
- 前往您的儲存帳戶。
- 在服務選單中,在 安全 + 網路中選擇 加密。
- 選取 [變更金鑰]。
- 選擇「 選擇一個鑰匙保險庫和鑰匙,然後選擇你的鑰匙保險庫和新鑰匙。」
- 選取 [儲存]。
要用 Azure PowerShell 更改鍵,請執行以下 cmdlet。 將<resource-group>、<storage-account-name>、<key-vault-name>和<new-key-name>替換為您自己的值。 若要使用自動金鑰版本更新(建議),請省略該 -KeyVersion 參數。
$keyVault = Get-AzKeyVault -VaultName <key-vault-name>
$key = Get-AzKeyVaultKey -VaultName <key-vault-name> -Name <new-key-name>
Set-AzStorageAccount `
-ResourceGroupName <resource-group> `
-Name <storage-account-name> `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVaultEncryption
要使用 Azure CLI 更改金鑰,請執行以下指令。 將<storage-account-name>、<resource-group>、<key-vault-name>和<new-key-name>替換為您自己的值。 若要使用自動金鑰版本更新(建議),請省略該 --encryption-key-version 參數。
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <new-key-name> \
--encryption-key-source Microsoft.Keyvault
停用金鑰來撤銷對檔案分享資料的存取權
你可以立即封鎖加密檔案分享資料,方法是停用或刪除客戶管理的金鑰。 在金鑰被停用時,所有 Azure 檔案儲存體 資料平面操作在 HTTP 403(禁止)下都會失敗,包括:
- 列出目錄與檔案
- 建立/取得/設定目錄或檔案
- 取得/設定檔案元資料
- 輸入範圍、複製檔案、重新命名檔案
若要撤銷對檔案分享資料的存取,請使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 來停用 key vault 中的金鑰。 重新啟用金鑰以恢復存取權限。
要透過 Azure 入口網站停用該金鑰,請遵循以下步驟:
- 前往 Azure 入口網站中的你的金鑰庫。
- 在服務選單中,選擇物件後,再選擇金鑰。
- 以滑鼠右鍵按一下該金鑰,然後選取 [停用]。
要使用 Azure PowerShell 停用該金鑰,請執行以下 cmdlet。 將<key-vault-name> 和 <key-name> 取代為您自己的值。
Update-AzKeyVaultKey `
-VaultName <key-vault-name> `
-Name <key-name> `
-Enable $false
要使用 Azure CLI 停用該金鑰,請執行以下指令。 將<key-vault-name> 和 <key-name> 取代為您自己的值。
az keyvault key set-attributes \
--vault-name <key-vault-name> \
--name <key-name> \
--enabled false
切換回 Microsoft 管理的金鑰
如果你不再需要客戶管理的金鑰,可以透過 Azure 入口網站、Azure PowerShell 或 Azure CLI,將儲存帳號切回 Microsoft 管理的金鑰進行加密。
要透過 Azure 入口網站切換回 Microsoft 管理的金鑰,請遵循以下步驟:
- 請進入 Azure portal 的 storage 帳號。
- 在服務選單中,在 安全 + 網路中選擇 加密。
- 將 Encryption type 改為 Microsoft-Managed Keys。
- 選取 [儲存]。
若要使用 Azure PowerShell 切回 Microsoft 管理的金鑰,請執行以下 cmdlet。 將<resource-group> 和 <storage-account-name> 取代為您自己的值。
Set-AzStorageAccount `
-ResourceGroupName <resource-group> `
-Name <storage-account-name> `
-StorageEncryption
若要使用 Azure CLI 切回 Microsoft 管理的金鑰,請執行以下指令。 將<resource-group> 和 <storage-account-name> 取代為您自己的值。
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-source Microsoft.Storage
相關內容
欲了解更多關於加密與金鑰管理的資訊,請參閱以下文章。