Demander à Learn
Demander à Learn
Mode focus
Table des matières
Lire en anglais
Partager via
微博
在 Azure Database for PostgreSQL 中配置数据加密
Dans cet article
本文提供了为 Azure Database for PostgreSQL 灵活服务器实例配置数据加密的分步说明。
重要
只能在创建服务器时决定是使用系统管理的密钥还是客户管理的密钥进行数据加密。 一旦做出决定并创建服务器,便无法在两个选项之间切换。
本文介绍如何创建新服务器并配置其数据加密选项。 对于配置为使用客户管理的加密密钥进行数据加密的现有服务器,你将了解:
如何选择其他用户分配的托管标识供服务访问加密密钥之用。
如何指定其他加密密钥,或者如何轮换当前用于数据加密的加密密钥。
若要了解 Azure Database for PostgreSQL 上下文中的数据加密,请参阅 数据加密 。
使用 Azure 门户 :
在预配新的 Azure Database for PostgreSQL 灵活服务器实例期间,数据加密在 “安全 ”选项卡中进行配置。对于 数据加密密钥 ,请选择 服务管理的密钥 单选按钮。
如果要将异地冗余备份存储与服务器一起预配,则“安全性”选项卡方面略有变化,因为服务器使用两个单独的加密密钥 。 一个用于部署服务器的主要区域,另一个用于将服务器备份异步复制到的配对区域。
可以通过 az postgres flexible-server create 命令,在预配新服务器时使用系统分配的加密密钥进行数据加密。
az postgres flexible-server create \
--resource-group <resource_group> \
--name <server> ...
注释
前述命令中没有特殊的参数来指定在创建服务器时必须使用系统分配的密钥进行数据加密。 原因是使用系统分配的密钥进行数据加密为默认选项。
另请注意,必须使用其他参数来完成提供的命令,所使用的参数及其取值会有所不同,具体取决于要如何为预配的服务器配置其他功能。
使用 Azure 门户 :
创建一个用户分配的托管标识 (如果尚未创建)。 如果服务器启用了异地冗余备份,则需要创建其他标识。 上述每个标识用于访问每一个数据加密密钥(共两个)。
注释
为了保持区域复原能力,我们建议在服务器所在的同一区域中创建用户托管标识,尽管这并非强制性操作。 如果服务器启用了异地备份冗余,建议在服务器的配对区域 中创建用于访问异地冗余备份数据加密密钥的第二个用户托管标识。
创建一个 Azure Key Vault (如果尚未创建一个密钥存储)。 请确保满足 要求 。 此外,请在配置密钥存储之前以及创建密钥并将所需的权限分配给用户分配的托管标识之前,按照建议 进行操作。 如果服务器启用了异地冗余备份,则需要创建第二个密钥存储。 这第二个密钥存储用于保存数据加密密钥,复制到服务器配对区域 的备份使用该密钥进行加密。
注释
用于保存数据加密密钥的密钥存储必须部署在与服务器相同的区域中。 如果服务器启用了异地备份冗余,则必须在服务器的配对区域 中创建用于保存异地冗余备份数据加密密钥的密钥存储。
在密钥存储中创建一个密钥 。 如果服务器启用了异地冗余备份,则每个密钥存储都需要一个密钥。 使用其中一个密钥加密所有服务器数据,包括所有系统和用户数据库、临时文件、服务器日志、预写日志段和备份。 使用第二个密钥,我们将加密异步复制到服务器配对区域 的备份副本。
在预配新的 Azure Database for PostgreSQL 灵活服务器实例期间,数据加密在 “安全 ”选项卡中进行配置。对于 数据加密密钥 ,请选择 “客户管理的密钥 ”单选按钮。
如果要将异地冗余备份存储与服务器一起预配,则“安全性”选项卡方面略有变化,因为服务器使用两个单独的加密密钥 。 一个用于部署服务器的主要区域,另一个用于将服务器备份异步复制到的配对区域。
在“用户分配的托管标识”中,选择“更改标识” 。
在用户分配的托管标识列表中,选择希望服务器用来访问 Azure Key Vault 中存储的数据加密密钥的那个托管标识。
选择 并添加 。
选择“选择密钥” 。
订阅会自动填充为要在其上创建服务器的订阅的名称。 保存数据加密密钥的密钥存储必须与服务器位于同一订阅中。
展开 Key Vault ,然后选择数据加密密钥所在的实例。
注释
展开下拉框时,它会显示“无可用项”。 需要几秒钟时间才能列出部署在服务器所在的同一区域中的密钥保管库的所有实例。
展开“密钥”,然后选择要用于数据加密的密钥的名称。
展开 “版本” ,然后选择要用于数据加密的密钥版本的标识符。
选择 选择 。
配置新服务器的所有其他设置,然后选择“查看 + 创建” 。
可以通过 az postgres flexible-server create 命令,在预配新服务器时使用用户分配的加密密钥进行数据加密。
如果服务器未启用异地冗余备份:
az postgres flexible-server create \
--resource-group <resource_group> \
--name <server> \
--geo-redundant-backup Disabled \
--identity <managed_identity_to_access_primary_encryption_key> \
--key <resource_identifier_of_primary_encryption_key> ...
注释
前述命令需要结合使用其他参数来完成,所使用的参数及其取值会有所不同,具体取决于要如何为预配的服务器配置其他功能。
如果服务器已启用异地冗余备份:
az postgres flexible-server create \
--resource-group <resource_group> \
--name <server> \
--geo-redundant-backup Enabled \
--identity <managed_identity_to_access_primary_encryption_key> \
--key <resource_identifier_of_primary_encryption_key> \
--backup-identity <managed_identity_to_access_geo_backups_encryption_key> \
--backup-key <resource_identifier_of_geo_backups_encryption_key> ...
注释
前述命令需要结合使用其他参数来完成,所使用的参数及其取值会有所不同,具体取决于要如何为预配的服务器配置其他功能。
只能在创建服务器时决定是使用系统管理的密钥还是客户管理的密钥进行数据加密。 一旦做出决定并创建服务器,便无法在两个选项之间切换。 如果想要从一个选项更改为另一选项,则只能将服务器的现有备份还原到新的服务器 。 配置还原时,可以更改新服务器的数据加密配置。
对于部署了使用客户管理的密钥进行数据加密的现有服务器,可以进行多项配置更改。 可以更改的内容是对以下内容的引用:用于加密的密钥,以及供服务用来访问密钥存储中保留的密钥的用户分配的托管标识。
您的 Azure Database for PostgreSQL 灵活服务器实例中对于密钥的引用必须更新。
当密钥存储中的密钥轮换时(无论是手动还是自动),您的 Azure Database for PostgreSQL 灵活服务器实例便会指向该密钥的特定版本。
当你想要使用存储在不同密钥存储中的相同或不同密钥时。
必须更新 Azure Database for PostgreSQL 灵活服务器实例使用的用户分配的托管标识,以便在使用其他标识时访问加密密钥。
使用 Azure 门户 :
选择你的 Azure Database for PostgreSQL 灵活服务器实例。
在资源菜单中的“安全性”下,选择“数据加密”。
若要更改服务器访问密钥所在的密钥存储时使用的用户分配的托管标识,请展开“用户分配的托管标识”下拉列表,然后选择任何可用的标识。
注释
组合框中显示的标识只是为 Azure Database for PostgreSQL 灵活服务器实例分配的标识。
为了保持区域复原能力,我们建议在服务器所在的同一区域中选择用户托管标识,尽管这并非强制性操作。 如果服务器启用了异地备份冗余,建议将用于访问异地冗余备份数据加密密钥的第二个用户托管标识放在服务器的配对区域 中。
如果您希望用于访问数据加密密钥的用户分配的托管标识尚未分配给 Azure Database for PostgreSQL 灵活服务器实例,并且在 Microsoft Entra ID 中对应的 Azure 资源对象也不存在,可以通过选择“创建 ”来创建该标识。
在 “创建用户分配的托管标识 ”面板中,完成要创建的用户分配的托管标识的详细信息,并自动分配给 Azure Database for PostgreSQL 灵活服务器实例以访问数据加密密钥。
如果用于访问数据加密密钥的用户分配的托管标识未分配到您的 Azure Database for PostgreSQL 灵活服务器实例,但它作为一个 Azure 资源与在 Microsoft Entra ID 中的相应对象存在,您可以通过选择 选择 来进行分配。
在用户分配的托管标识列表中,选择希望服务器用来访问 Azure Key Vault 中存储的数据加密密钥的那个托管标识。
选择 并添加 。
如果轮换密钥或使用其他密钥,则必须更新 Azure Database for PostgreSQL 灵活服务器实例,使其指向新的密钥版本或新密钥。 为此,可以复制密钥的资源标识符,并将其粘贴到“密钥标识符”框中 。
如果访问 Azure 门户的用户有权访问密钥存储中存储的密钥,则可以使用其他方法选择新密钥或新密钥版本。 为此,请在“密钥选择方法”中,选择“选择密钥”单选按钮 。
选择“选择密钥”。
订阅会自动填充为要在其上创建服务器的订阅的名称。 保存数据加密密钥的密钥存储必须与服务器位于同一订阅中。
展开 Key Vault ,然后选择数据加密密钥所在的实例。
注释
展开下拉框时,它会显示“无可用项”。 需要几秒钟时间才能列出部署在服务器所在的同一区域中的密钥保管库的所有实例。
展开“密钥”,然后选择要用于数据加密的密钥的名称。
展开 “版本” ,然后选择要用于数据加密的密钥版本的标识符。
选择 选择 。
对所做的更改感到满意后,选择“保存” 。
可以通过 az postgres flexible-server update 命令,将现有服务器配置为使用用户分配的加密密钥进行数据加密。
az postgres flexible-server update \
--resource-group <resource_group> \
--name <server> \
--identity <managed_identity_to_access_primary_encryption_key> \
--key <resource_identifier_of_primary_encryption_key> ...
注释
前述命令可能需要补充其他参数来完成,这些参数的存在与取值会有所不同,具体取决于如何配置现有服务器的其他功能。
无论是仅更改用于访问密钥的用户分配的托管标识,还是仅更改用于数据加密的密钥,或是要同时更改两者,都需要同时提供 --identity 和 --key 参数(对于异地冗余备份则为 --backup-identity 和 --backup-key)。 如果只提供其一而并非两者,则会收到以下任一错误:
User assigned identity and keyvault key need to be provided together. Please provide --identity and --key together.
User assigned identity and keyvault key need to be provided together. Please provide --backup-identity and --backup-key together.
如果传递给 --key 参数(对于异地冗余备份则为 --backup-key)的值指向的密钥不存在,或者其资源标识符传递给 --identity 参数(对于异地冗余备份则为 --backup-identity)的用户分配的托管标识没有访问密钥所需的权限,则会出现以下错误:
Code: AzureKeyVaultKeyNameNotFound
Message: The operation could not be completed because the Azure Key Vault Key name '<key_vault_resource>' does not exist or User Assigned Identity does not have Get access to the Key (/postgresql/flexible-server/concepts-data-encryption#requirements-for-configuring-data-encryption-for-azure-database-for-postgresql-flexible-server).
如果服务器启用了异地冗余备份,则可以配置用于加密异地冗余备份的密钥,以及用于访问该密钥的标识。 为此,可以使用 --backup-identity 和 --backup-key 参数。
az postgres flexible-server update \
--resource-group <resource_group> \
--name <server> \
--backup-identity <managed_identity_to_access_georedundant_encryption_key> \
--backup-key <resource_identifier_of_georedundant_encryption_key> ...
如果将参数 --backup-identity 和 --backup-key 传递给 az postgres flexible server update 命令,并引用未启用异地冗余备份的现有服务器,则会出现以下错误:
Geo-redundant backup is not enabled. You cannot provide Geo-location user assigned identity and keyvault key.
传递给--identity和--backup-identity参数的标识(如果存在且有效)将自动添加到与您的 Azure Database for PostgreSQL 灵活服务器实例关联的用户分配托管标识列表中。 即使命令稍后失败并出现其他错误,也是如此。 在这种情况下,你可能想要使用 az postgres flexible-server identity 命令列出、分配或删除分配给 Azure Database for PostgreSQL 灵活服务器实例的用户分配的托管标识。 若要详细了解如何在 Azure Database for PostgreSQL 灵活服务器实例中配置用户分配的托管标识,请参阅 将用户分配的托管标识关联到现有服务器 , 将用户分配的托管标识取消关联到现有服务器 ,并 显示关联的用户分配的托管标识 。
相关内容
Ressources supplémentaires
Last updated on
2026-01-09