訓練
認證
Microsoft Certified: Azure Security Engineer Associate - Certifications
示範實作安全性控制、維護組織的安全性狀態以及識別和修復安全性漏洞所需的技能。
適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集
Azure 磁碟儲存體可讓您在針對受控磁碟使用伺服器端加密 (SSE) 時,選擇管理自己的金鑰。 如需 SSE 與客戶自控金鑰及其他受控磁碟加密類型的概念資訊,請參閱磁碟加密文章的客戶自控金鑰一節。
目前,客戶管理的金鑰具有下列限制:
啟用此功能之後,您必須設定 DiskEncryptionSet 和 Azure Key Vault 或 Azure Key Vault 受控 HSM。
建立 Key Vault 時,您必須啟用清除保護。 清除保護可確保已刪除的金鑰在保留期限結束之前,無法永久刪除。 這些設定可防止您因為意外刪除而遺失資料。 使用 Key Vault 來加密受控磁碟時,必須使用這些設定。
重要
對區域請勿混用大小寫,如果您這麼做,當您將其他磁碟指派給 Azure 入口網站中的資源時,可能會發生問題。
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az group create --resource-group $rgName --location $location
az keyvault create -n $keyVaultName \
-g $rgName \
-l $location \
--enable-purge-protection true
az keyvault key create --vault-name $keyVaultName \
-n $keyName \
--protection software
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
注意
Azure 可能需要幾分鐘的時間,才能在您的 Microsoft Entra ID 中建立 DiskEncryptionSet 的身分識別。 如果您在執行以下命令時收到「找不到 Active Directory 物件」之類的錯誤,請稍候幾分鐘再重試。
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault set-policy -n $keyVaultName \
-g $rgName \
--object-id $desIdentity \
--key-permissions wrapkey unwrapkey get
或者,您可以使用受控 HSM 來處理金鑰。
若要這樣做,您必須完成下列必要條件:
建立受控 HSM 並新增權限之後,請啟用清除保護並建立加密金鑰。
subscriptionId=yourSubscriptionID
rgName=yourResourceGroupName
location=westcentralus
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
diskName=yourDiskName
az account set --subscription $subscriptionId
az keyvault update-hsm --subscription $subscriptionId -g $rgName --hsm-name $keyVaultName --enable-purge-protection true
az keyvault key create --hsm-name $keyVaultName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 2048
然後,建立 DiskEncryptionSet。
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set create -n $diskEncryptionSetName \
-l $location \
-g $rgName \
--key-url $keyVaultKeyUrl \
--enable-auto-key-rotation false
最後,授與對受控 HSM 的 DiskEncryptionSet 存取權。
desIdentity=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [identity.principalId] -o tsv)
az keyvault role assignment create --hsm-name $keyVaultName --role "Managed HSM Crypto Service Encryption User" --assignee $desIdentity --scope /keys
現在您已建立並設定這些資源,接下來即可使用這些資源來保護受控磁碟。 下列連結包含範例指令碼,每個指令碼都有個別的案例,可用來保護受控磁碟。
rgName=yourResourceGroupName
vmName=yourVMName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vm create -g $rgName -n $vmName -l $location --image $image --size $vmSize --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 128 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
您的現有磁碟不能連結至執行中的 VM,您可以使用下列指令碼,以加密這些磁碟:
rgName=yourResourceGroupName
diskName=yourDiskName
diskEncryptionSetName=yourDiskEncryptionSetName
az disk update -n $diskName -g $rgName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId
rgName=yourResourceGroupName
vmssName=yourVMSSName
location=westcentralus
vmSize=Standard_DS3_V2
image=LinuxImageURN
diskEncryptionSetName=yourDiskencryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az vmss create -g $rgName -n $vmssName --image $image --upgrade-policy automatic --admin-username azureuser --generate-ssh-keys --os-disk-encryption-set $diskEncryptionSetId --data-disk-sizes-gb 64 128 --data-disk-encryption-sets $diskEncryptionSetId $diskEncryptionSetId
vmName=yourVMName
rgName=yourResourceGroupName
diskName=yourDiskName
diskSkuName=Premium_LRS
diskSizeinGiB=30
location=westcentralus
diskLUN=2
diskEncryptionSetName=yourDiskEncryptionSetName
diskEncryptionSetId=$(az disk-encryption-set show -n $diskEncryptionSetName -g $rgName --query [id] -o tsv)
az disk create -n $diskName -g $rgName -l $location --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId --size-gb $diskSizeinGiB --sku $diskSkuName
diskId=$(az disk show -n $diskName -g $rgName --query [id] -o tsv)
az vm disk attach --vm-name $vmName --lun $diskLUN --ids $diskId
rgName=yourResourceGroupName
keyVaultName=yourKeyVaultName
keyName=yourKeyName
diskEncryptionSetName=yourDiskEncryptionSetName
keyVaultId=$(az keyvault show --name $keyVaultName--query [id] -o tsv)
keyVaultKeyUrl=$(az keyvault key show --vault-name $keyVaultName --name $keyName --query [key.kid] -o tsv)
az disk-encryption-set update -n keyrotationdes -g keyrotationtesting --key-url $keyVaultKeyUrl --source-vault $keyVaultId
az disk show -g yourResourceGroupName -n yourDiskName --query [encryption.type] -o tsv
重要
客戶自控金鑰須依賴 Azure 資源受控識別,這是 Microsoft Entra ID 的一項功能。 當您設定客戶管理的金鑰時,受控識別會在幕後自動指派給您的資源。 如果您之後將訂用帳戶、資源群組或受控磁碟從一個 Microsoft Entra 目錄移至另一個目錄,與受控磁碟相關聯的受控識別不會移轉至新的租用戶,因此,客戶自控金鑰可能無法再運作。 如需詳細資訊,請參閱在 Microsoft Entra 目錄之間移轉訂用帳戶 (部分機器翻譯)。
訓練
認證
Microsoft Certified: Azure Security Engineer Associate - Certifications
示範實作安全性控制、維護組織的安全性狀態以及識別和修復安全性漏洞所需的技能。
文件
Azure 入口網站 - 使用 SSE 啟用客戶自控金鑰 - 受控磁碟 - Azure Virtual Machines
透過 Azure 入口網站在受控磁碟上啟用客戶自控金鑰。
Azure PowerShell - 使用 SSE 受控磁碟啟用客戶自控金鑰 - Azure Virtual Machines
使用受控磁碟上的客戶自控金鑰搭配 Azure PowerShell 來啟用伺服器端加密。
Azure 受控磁碟的伺服器端加密 - Azure Virtual Machines
Azure 儲存體可以先加密待用資料來保護您的資料,然後再將資料保存在儲存體叢集。 您可以使用客戶自控金鑰來以自己的金鑰管理加密,或是也能依賴由 Microsoft 管理的金鑰來加密您的受控磁碟。