你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过 Azure CLI 使用客户管理的密钥 (CMK) 加密的数据创建和管理 Azure Database for PostgreSQL - 灵活服务器

适用于: Azure Database for PostgreSQL 灵活服务器

注意

以下 CLI 示例基于 Azure Database for PostgreSQL 灵活服务器 CLI 库的 2.45.0 版本

本文介绍如何使用 Azure CLI 通过客户管理的密钥加密的数据创建和管理 Azure Database for PostgreSQL 灵活服务器。 若要详细了解 Azure Database for PostgreSQL 灵活服务器的客户托管密钥 (CMK) 功能,请参阅概述

在创建服务器期间设置客户管理的密钥

先决条件:

  • 必须有一个 Azure 订阅,并且是该订阅的管理员。

按照以下步骤在使用 Azure CLI 创建 Azure Database for PostgreSQL 灵活服务器实例时启用 CMK。

  1. 创建密钥保管库和用于客户托管密钥的密钥。 同时启用密钥保管库上的清除保护和软删除。
     az keyvault create -g <resource_group> -n <vault_name> --location <azure_region> --enable-purge-protection true
  1. 在已创建的 Azure Key Vault 中,创建要用于 Azure Database for PostgreSQL 灵活服务器实例的数据加密的密钥。
     keyIdentifier=$(az keyvault key create --name <key_name> -p software --vault-name <vault_name> --query key.kid -o tsv)
  1. 创建用于从 Azure Key Vault 检索密钥的托管标识。
 identityPrincipalId=$(az identity create -g <resource_group> --name <identity_name> --location <azure_region> --query principalId -o tsv)
  1. 将 Azure KeyVault 中具有密钥权限 wrapKeyunwrapKeygetlist 的访问策略添加到上面创建的托管标识。
az keyvault set-policy -g <resource_group> -n <vault_name>  --object-id $identityPrincipalId --key-permissions wrapKey unwrapKey get list
  1. 最后,创建已启用基于 CMK 加密的 Azure Database for PostgreSQL 灵活服务器实例。
az postgres flexible-server create -g <resource_group> -n <postgres_server_name> --location <azure_region>  --key $keyIdentifier --identity <identity_name>

更新启用了 CMK 的 Azure Database for PostgreSQL 灵活服务器上的客户关联的密钥

先决条件:

  • 必须有一个 Azure 订阅,并且是该订阅的管理员。
  • 将在其中创建 Azure Database for PostgreSQL 灵活服务器实例的区域中的具有密钥的 Key Vault。 按照此教程创建 Key Vault 并生成密钥。

在创建具有数据加密的服务器后,按照以下步骤更改\轮换密钥或标识。

  1. 更改现有服务器的数据加密的密钥/标识。 首先获取新的密钥标识符:
 newKeyIdentifier=$(az keyvault key show --vault-name <vault_name> --name <key_name>  --query key.kid -o tsv)
  1. 使用新的密钥和/或标识更新服务器。
  az postgres flexible-server update --resource-group <resource_group> --name <server_name> --key $newKeyIdentifier --identity <identity_name>

后续步骤