共用方式為


建立和管理 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器,並使用 Azure CLI 以客戶管理金鑰 (CMK) 加密的數據

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

注意

下列 CLI 範例是以 2.45.0 版 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器 CLI 連結庫為基礎

在本文中,您將瞭解如何使用 Azure CLI 建立和管理 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器,並使用客戶管理的密鑰加密數據。 若要深入瞭解具有 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器的客戶管理密鑰 (CMK) 功能,請參閱概

在伺服器建立期間設定客戶管理的金鑰

先決條件:

  • 您必須具有 Azure 訂用帳戶,並且是該訂用帳戶的系統管理員。

請遵循下列步驟,在使用 Azure CLI 建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例時啟用 CMK。

  1. 建立金鑰保存庫和金鑰,以用於客戶自控金鑰。 此外,在金鑰保存庫上啟用清除保護和虛刪除。
     az keyvault create -g <resource_group> -n <vault_name> --location <azure_region> --enable-purge-protection true
  1. 在建立的 Azure 金鑰保存庫 中,建立將用於 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例數據加密的密鑰。
     keyIdentifier=$(az keyvault key create --name <key_name> -p software --vault-name <vault_name> --query key.kid -o tsv)
  1. 建立受控識別,以用來從 Azure 金鑰保存庫 擷取密鑰。
 identityPrincipalId=$(az identity create -g <resource_group> --name <identity_name> --location <azure_region> --query principalId -o tsv)
  1. 將具有 wrapKey、unwrapKey、get 金鑰許可權的存取原則,新增至您在上面建立的受控識別中 Azure KeyVault 中的清單
az keyvault set-policy -g <resource_group> -n <vault_name>  --object-id $identityPrincipalId --key-permissions wrapKey unwrapKey get list
  1. 最後,建立已啟用 CMK 型加密的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。
az postgres flexible-server create -g <resource_group> -n <postgres_server_name> --location <azure_region>  --key $keyIdentifier --identity <identity_name>

在啟用 CMK 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例上更新客戶管理的金鑰

先決條件:

  • 您必須具有 Azure 訂用帳戶,並且是該訂用帳戶的系統管理員。
  • 金鑰保存庫,其中會建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的區域索引鍵。 請遵循本教學課程來建立 金鑰保存庫 併產生金鑰。

請遵循下列步驟,在建立具有數據加密的伺服器之後,變更\輪替密鑰或身分識別。

  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>

下一步