Skip to content

Commit 3e4c6af

Browse files
Merge pull request #220971 from GennadNY/gennadyk897
Gennadyk897
2 parents f0767a2 + 6f19f3d commit 3e4c6af

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

articles/postgresql/flexible-server/concepts-data-encryption.md

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,12 @@ Some of the reasons why server state can become *Inaccessible* are:
158158
- If you setup overly restrictive Azure KeyVault firewall rules that cause Azure Database for PostgreSQL- Flexible Server inability to communicate with Azure KeyVault to retrieve keys. If you enable [KeyVault firewall](../../key-vault/general/overview-vnet-service-endpoints.md#trusted-services), make sure you check an option to *'Allow Trusted Microsoft Services to bypass this firewall.'*
159159

160160

161+
> [!NOTE]
162+
> CLI examples below are based on 2.43.0 version of Azure Database for PostgreSQL - Flexible Server CLI libraries, which are in preview and may be subject to changes.
163+
161164
## Setup Customer Managed Key during Server Creation
162165

163-
### From portal
166+
### Portal
164167

165168
Prerequisites:
166169

@@ -181,7 +184,7 @@ Follow the steps below to enable CMK while creating Postgres Flexible Server usi
181184
1. Once it's finished, you should be able to navigate to Data Encryption (preview) screen for the server and update identity or key if necessary
182185

183186

184-
### From CLI:
187+
### CLI:
185188

186189
Prerequisites:
187190

@@ -192,31 +195,30 @@ Follow the steps below to enable CMK while creating Postgres Flexible Server usi
192195
1. Create a key vault and a key to use for a customer-managed key. Also enable purge protection and soft delete on the key vault.
193196

194197
```azurecli-interactive
195-
az keyvault create -g <resource_group> -n <vault_name> --location <azure_region> --enable-purge-
196-
protection true
198+
az keyvault create -g <resource_group> -n <vault_name> --location <azure_region> --enable-purge-protection true
197199
```
198200

199201
2. In the created Azure Key Vault, create the key that will be used for the data encryption of the Azure Database for PostgreSQL - Flexible server.
200202

201203
```azurecli-interactive
202-
az keyvault key create --name <key_name> -p software --vault-name <vault_name>
204+
keyIdentifier=$(az keyvault key create --name <key_name> -p software --vault-name <vault_name> --query key.kid -o tsv)
203205
```
204206
3. Create Managed Identity which will be used to retrieve key from Azure Key Vault
205207
```azurecli-interactive
206-
az identity create -g <resource_group> --name <identity_name> --location <azure_region>
208+
identityPrincipalId=$(az identity create -g <resource_group> --name <identity_name> --location <azure_region> --query principalId -o tsv)
207209
```
210+
208211
4. Add access policy with key permissions of *wrapKey*,*unwrapKey*, *get*, *list* in Azure KeyVault to the managed identity we created above
209212
```azurecli-interactive
210-
az keyvault set-policy -g <resource_group> -n <vault_name> --object-id '<principalID of managed_identity>' --key-permissions wrapKey unwrapKey get list
213+
az keyvault set-policy -g <resource_group> -n <vault_name> --object-id $identityPrincipalId --key-permissions wrapKey unwrapKey get list
211214
```
212215
5. Finally, lets create Azure Database for PostgreSQL - Flexible Server with CMK based encryption enabled
213216
```azurecli-interactive
214-
az postgres flexible-server create -g <resource_group> -n <postgres_server_name> --location <azure_region> \
215-
--key '<key identifier of key created above>' --identity <identity_name>
217+
az postgres flexible-server create -g <resource_group> -n <postgres_server_name> --location <azure_region> --key $keyIdentifier --identity <identity_name>
216218
```
217219
## Update Customer Managed Key on the CMK enabled Flexible Server
218220

219-
### From portal
221+
### Portal
220222

221223
Prerequisites:
222224

@@ -235,17 +237,20 @@ Follow the steps below to update CMK on CMK enabled Flexible Server using Azure
235237
1. Select different key by choosing subscription, Key Vault and key from dropdowns provided.
236238

237239

238-
### From CLI
240+
### CLI
239241

240242
Prerequisites:
241243
- You must have an Azure subscription and be an administrator on that subscription.
242244
- Key Vault with key in region where Postgres Flex Server will be created. Follow this [tutorial](../../key-vault/general/quick-create-portal.md) to create Key Vault and generate key.
243245

244246
Follow the steps below to change\rotate key or identity after creation of server with data encryption.
245-
1. Change key/identity for data encryption for existing server
247+
1. Change key/identity for data encryption for existing server, first lets get new key identifier
248+
```azurecli-interactive
249+
newKeyIdentifier=$(az keyvault key show --vault-name <vault_name> --name <key_name> --query key.kid -o tsv)
250+
```
251+
2. Update server with new key and\or identity
246252
```azurecli-interactive
247-
az postgres flexible-server update --resource-group <resource_group> --name <server_name> \
248-
--key '<key identifier of new AKV key>' --identity <identity_name>
253+
<!-- az postgres flexible-server update --resource-group <resource_group> --name <server_name> --key $newKeyIdentifier --identity <identity_name> -->
249254
```
250255
## Limitations
251256

0 commit comments

Comments
 (0)