建立和管理 適用於 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。
- 建立金鑰保存庫和金鑰,以用於客戶自控金鑰。 此外,在金鑰保存庫上啟用清除保護和虛刪除。
az keyvault create -g <resource_group> -n <vault_name> --location <azure_region> --enable-purge-protection true
- 在建立的 Azure 金鑰保存庫 中,建立將用於 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例數據加密的密鑰。
keyIdentifier=$(az keyvault key create --name <key_name> -p software --vault-name <vault_name> --query key.kid -o tsv)
- 建立受控識別,以用來從 Azure 金鑰保存庫 擷取密鑰。
identityPrincipalId=$(az identity create -g <resource_group> --name <identity_name> --location <azure_region> --query principalId -o tsv)
- 將具有 wrapKey、unwrapKey、get 金鑰許可權的存取原則,新增至您在上面建立的受控識別中 Azure KeyVault 中的清單。
az keyvault set-policy -g <resource_group> -n <vault_name> --object-id $identityPrincipalId --key-permissions wrapKey unwrapKey get list
- 最後,建立已啟用 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 資料庫 彈性伺服器實例的區域索引鍵。 請遵循本教學課程來建立 金鑰保存庫 併產生金鑰。
請遵循下列步驟,在建立具有數據加密的伺服器之後,變更\輪替密鑰或身分識別。
- 變更現有伺服器數據加密的金鑰/身分識別。 首先,取得新的金鑰識別碼:
newKeyIdentifier=$(az keyvault key show --vault-name <vault_name> --name <key_name> --query key.kid -o tsv)
- 使用新的金鑰和\或身分識別來更新伺服器。
az postgres flexible-server update --resource-group <resource_group> --name <server_name> --key $newKeyIdentifier --identity <identity_name>