針對資料的雙重加密啟用基礎結構加密
Azure 儲存體會使用 256 位元 AES 搭配 GCM 模式加密 (其中一種最強且可用的區塊編碼器),自動加密服務層級儲存體帳戶中的所有資料,且符合 FIPS 140-2 規範。 需要較高層級保證其資料安全的客戶,也可以在 Azure 儲存體基礎結構層級啟用 256 位元 AES 搭配 CBC 加密,進行雙重加密。 Azure 儲存體資料的雙重加密可防範其中一種加密演算法或金鑰可能遭洩漏的情況。 在此案例中,額外的加密層會繼續保護您的資料。
您可以針對整個儲存體帳戶,或針對帳戶內的加密範圍啟用基礎結構加密。 針對儲存體帳戶或加密範圍啟用基礎結構加密時,其中的資料會加密兩次;一次在服務等級,一次在基礎結構等級,且會使用兩種不同的加密演算法和兩個不同的金鑰。
服務層級加密支援使用 Microsoft 受控金鑰或客戶自控金鑰搭配 Azure Key Vault 或金鑰保存庫受控硬體安全性模型 (HSM)。 基礎結構等級的加密相依於 Microsoft 管理的金鑰,而且一律使用個別的金鑰。 如需使用 Azure 儲存體加密進行金鑰管理的詳細資訊,請參閱關於加密金鑰管理。
若要雙重加密您的資料,您必須先建立儲存體帳戶,或針對基礎結構加密方式設定的加密範圍。 本文說明如何啟用基礎結構加密。
重要
針對合規性需求需要雙重加密資料的案例,建議使用基礎結構加密。 對於大部分的其他案例,Azure 儲存體加密提供了足夠強大的加密演算法,而且使用基礎結構加密不太可能有任何好處。
建立已啟用基礎結構加密的帳戶
若要針對儲存體帳戶啟用基礎結構加密,您必須設定儲存體帳戶,才能在建立帳戶時使用基礎結構加密。 建立帳戶之後,無法啟用或停用基礎結構加密。 儲存體帳戶必須是一般用途 v2 類型或進階區塊 Blob。
若要使用 Azure 入口網站建立已啟用基礎結構加密的儲存體帳戶,請遵循下列步驟:
在 Azure 入口網站中瀏覽至 [儲存體帳戶] 頁面。
選擇 [新增] 按鈕以新增一般用途 v2 或進階區塊 Blob 儲存體帳戶。
在 [加密] 索引標籤上,找出 [啟用基礎結構加密],然後選取 [已啟用]。
選取 [檢閱 + 建立] 來完成建立儲存體帳戶。
若要透過 Azure 入口網站確認是否已針對儲存體帳戶啟用基礎結構加密,請遵循下列步驟:
瀏覽至您的儲存體帳戶。
在 [安全性 + 網路] 下,選擇 [加密]。
若要使用 PowerShell 建立已啟用基礎結構加密的儲存體帳戶,請確認您已安裝 Az.Storage PowerShell 模組版本 2.2.0 或更新版本。 如需詳細資訊,請參閱安裝 Azure PowerShell (英文)。
接下來呼叫 New-AzStorageAccount 命令,來建立一般用途 v2 或進階區塊 Blob 儲存體帳戶。 包含 -RequireInfrastructureEncryption
選項來啟用基礎結構加密。
下列範例會示範如何針對讀取權限異地備援儲存體設定 (RA-GRS) 的一般用途 v2 儲存體帳戶,並會啟用基礎結構加密以進行資料的雙重加密。 請記得將括弧中的預留位置值取代為您自己的值:
New-AzStorageAccount -ResourceGroupName <resource_group> `
-AccountName <storage-account> `
-Location <location> `
-SkuName "Standard_RAGRS" `
-Kind StorageV2 `
-AllowBlobPublicAccess $false `
-RequireInfrastructureEncryption
若要確認儲存體帳戶已啟用基礎結構加密,請呼叫 Get-AzStorageAccount 命令。 此命令會傳回一組儲存體帳戶屬性及其值。 擷取 Encryption
屬性中的 RequireInfrastructureEncryption
欄位,並確認此欄位已設定為 True
。
下列範例會擷取 RequireInfrastructureEncryption
屬性的值。 請記得使用您自己的值來取代角括弧中的預留位置值:
$account = Get-AzStorageAccount -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account>
$account.Encryption.RequireInfrastructureEncryption
若要使用 Auzre CLI 來建立已啟用基礎結構加密的儲存體帳戶,請確認您已安裝 Azure CLI 版本 2.8.0 或更新版本。 如需詳細資訊,請參閱 安裝 Azure CLI。
接下來,請呼叫 az 儲存體帳戶建立命令來建立一般用途 v2 或進階區塊 Blob 儲存體帳戶,並包含 --require-infrastructure-encryption option
來啟用基礎結構加密。
下列範例會示範如何針對讀取權限異地備援儲存體設定 (RA-GRS) 的一般用途 v2 儲存體帳戶,並會啟用基礎結構加密以進行資料的雙重加密。 請記得將括弧中的預留位置值取代為您自己的值:
az storage account create \
--name <storage-account> \
--resource-group <resource-group> \
--location <location> \
--sku Standard_RAGRS \
--kind StorageV2 \
--allow-blob-public-access false \
--require-infrastructure-encryption
若要確認儲存體帳戶已啟用基礎結構加密,請呼叫 az 儲存體帳戶顯示命令。 此命令會傳回一組儲存體帳戶屬性及其值。 查詢 encryption
屬性中的 requireInfrastructureEncryption
欄位,並確認此欄位以設定為 true
。
下列範例會擷取 requireInfrastructureEncryption
屬性的值。 請記得使用您自己的值來取代角括弧中的預留位置值:
az storage account show /
--name <storage-account> /
--resource-group <resource-group>
下列 JSON 範例會建立讀取權限異地備援儲存體設定 (RA-GRS) 的一般用途 v2 儲存體帳戶,並會啟用基礎結構加密以進行資料的雙重加密。 請記得將括弧中的預留位置值取代為您自己的值:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('<storage-account>')]",
"location": "[parameters('<location>')]",
"dependsOn": [],
"tags": {},
"sku": {
"name": "[parameters('Standard_RAGRS')]"
},
"kind": "[parameters('StorageV2')]",
"properties": {
"accessTier": "[parameters('<accessTier>')]",
"supportsHttpsTrafficOnly": "[parameters('supportsHttpsTrafficOnly')]",
"largeFileSharesState": "[parameters('<largeFileSharesState>')]",
"encryption": {
"keySource": "Microsoft.Storage",
"requireInfrastructureEncryption": true,
"services": {
"blob": { "enabled": true },
"file": { "enabled": true }
}
}
}
}
],
Azure 原則會提供內建原則,才能要求針對儲存體帳戶啟用基礎結構加密。 如需詳細資訊,請參閱 Azure 原則內建原則定義中的儲存體一節。
建立已啟用基礎結構加密的加密範圍
如果已針對帳戶啟用基礎結構加密,則在該帳戶上建立的任何加密範圍都會自動使用基礎結構加密。 如果未在帳戶層級啟用基礎結構加密,則您可以在建立領域時,選擇針對加密範圍啟用它。 建立範圍之後,便無法變更加密範圍的基礎結構加密設定。 如需詳細資訊,請參閱建立加密範圍。
下一步