启用基础结构加密,对数据进行双重加密
Azure 存储使用 256 位 AES GCM 模式加密(可用的最强大分组加密法之一),在服务级别自动加密存储帐户中的所有数据,并且符合 FIPS 140-2 规范。 如果客户要求更高级别的数据安全保证,则还可以在 Azure 存储基础结构级别启用 256 位 AES CBC 加密,以进行双重加密。 双重加密的 Azure 存储数据在其中一种加密算法或密钥可能已泄露的情况下仍受到保护。 在此方案中,附加的一层加密会继续保护你的数据。
可以为整个存储帐户或帐户内的加密范围启用基础结构加密。 为存储帐户或加密范围启用基础结构加密后,将使用两种不同的加密算法和两个不同的密钥分别对数据进行两次加密:一次在服务级别,另一次在基础架构级别。
服务级别加密支持将 Microsoft 管理的密钥或客户管理的密钥与 Azure Key Vault 配合使用。 基础结构级别的加密依赖于 Microsoft 管理的密钥并始终使用单独的密钥。 有关 Azure 存储加密的密钥管理的详细信息,请参阅关于加密密钥管理。
若要对数据进行双重加密,必须首先创建为基础结构加密配置的存储帐户或加密范围。 本文介绍如何启用基础结构加密。
重要
对于需要对数据进行双重加密以满足合规性要求的场景,建议使用基础结构加密。 对于其他大多数场景,Azure 存储加密提供了足够强大的加密算法,而使用基础结构加密的效果可能不会太好。
创建启用了基础结构加密的帐户
若要为存储帐户启用基础结构加密,必须配置存储帐户,以便在创建帐户时使用基础结构加密。 帐户创建后,无法启用或禁用基础结构加密。 存储帐户必须是常规用途 v2、高级块 blob、高级页 blob 或高级文件共享类型。
若要使用 Azure 门户创建启用了基础结构加密的存储帐户,请执行以下步骤:
在 Azure 门户中,导航到“存储帐户”页。
选择“添加”按钮,添加新的常规用途 v2、高级块 blob、高级页 blob 或高级文件共享帐户。
在“加密”选项卡上,找到“启用基础结构”加密,并选择“已启用”。
选择“查看 + 创建”,完成存储帐户的创建。
若要验证是否通过 Azure 门户为存储帐户启用了基础结构加密,请执行以下步骤:
导航到 Azure 门户中的存储帐户。
在“安全性 + 网络”下,选择“加密”。
若要使用 PowerShell 创建启用了基础结构加密的存储帐户,请确保已安装 Az.Storage PowerShell 模块 2.2.0 或更高版本。 有关详细信息,请参阅安装 Azure PowerShell。
接下来,通过调用 New-AzStorageAccount 命令来创建常规用途 v2、高级块 blob、高级页 blob 或高级文件共享存储帐户。 包括 -RequireInfrastructureEncryption
选项来启用基础结构加密。
下面的示例演示如何创建常规用途 v2 存储帐户,帐户配置用于读取访问异地冗余存储 (RA-GRS) ,并启用基础结构加密用于对数据进行两次加密。 请记得将括号中的占位符值替换为你自己的值:
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
若要使用 Azure CLI 创建启用了基础结构加密的存储帐户,请确保已安装 Azure CLI 2.8.0 或更高版本。 有关详细信息,请参阅安装 Azure CLI。
接下来,通过调用 az storage account create 命令创建常规用途 v2、高级块 blob、高级页 blob 或高级文件共享帐户,并包括 --require-infrastructure-encryption option
来启用基础结构加密。
下面的示例演示如何创建常规用途 v2 存储帐户,帐户配置用于读取访问异地冗余存储 (RA-GRS) ,并启用基础结构加密用于对数据进行两次加密。 请记得将括号中的占位符值替换为你自己的值:
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 storage account show 命令。 此命令返回一组存储帐户属性及其值。 在 encryption
属性内查找 requireInfrastructureEncryption
字段,并验证其是否设置为 true
。
下面的示例检索 requireInfrastructureEncryption
属性的值。 请务必将尖括号中的占位符值替换为你自己的值:
az storage account show /
--name <storage-account> /
--resource-group <resource-group>
下面的 JSON 示例创建了常规用途 v2 存储帐户,帐户配置用于读取访问异地冗余存储 (RA-GRS) ,并启用基础结构加密用于对数据进行两次加密。 请记得将括号中的占位符值替换为你自己的值:
"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 Policy 提供了一个内置策略,要求为存储帐户启用基础结构加密。 有关详细信息,请参阅 Azure Policy 内置策略定义中的“存储”部分。
创建启用了基础结构加密的加密范围
如果为帐户启用了基础架构加密,则在该帐户上创建的任何加密范围都会自动使用基础结构加密。 如果未在帐户级别启用基础结构加密,则可以选择在创建加密范围时为该范围启用它。 创建范围后,无法更改加密范围的基础结构加密设置。 有关详细信息,请参阅创建加密范围。
后续步骤