Skip to content

Commit 617fd0e

Browse files
authored
Merge pull request #116307 from kummanish/master
Updating data encryption docs
2 parents fd3d28c + 5a5e773 commit 617fd0e

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

articles/mysql/concepts-data-encryption-mysql.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Data encryption for Azure Database for MySQL provides the following benefits:
4040

4141
The DEKs, encrypted with the KEKs, are stored separately. Only an entity with access to the KEK can decrypt these DEKs. For more information, see [Security in encryption at rest](../security/fundamentals/encryption-atrest.md).
4242

43-
## How data encryption with a customer-managed key works
43+
## How data encryption with a customer-managed key work
4444

4545
![Diagram that shows an overview of Bring Your Own Key](media/concepts-data-access-and-security-data-encryption/mysqloverview.png)
4646

@@ -59,12 +59,12 @@ When the server is configured to use the customer-managed key stored in the key
5959
The following are requirements for configuring Key Vault:
6060

6161
* Key Vault and Azure Database for MySQL must belong to the same Azure Active Directory (Azure AD) tenant. Cross-tenant Key Vault and server interactions aren't supported. Moving resources afterwards requires you to reconfigure the data encryption.
62-
* You must enable the soft-delete feature on the key vault, to protect from data loss if an accidental key (or Key Vault) deletion happens. Soft-deleted resources are retained for 90 days, unless the user recovers or purges them in the meantime. The recover and purge actions have their own permissions associated in a Key Vault access policy. The soft-delete feature is off by default, but you can enable it through PowerShell or the Azure CLI (note that you can't enable it through the Azure portal).
62+
* Enable the soft-delete feature on the key vault, to protect from data loss if an accidental key (or Key Vault) deletion happens. Soft-deleted resources are retained for 90 days, unless the user recovers or purges them in the meantime. The recover and purge actions have their own permissions associated in a Key Vault access policy. The soft-delete feature is off by default, but you can enable it through PowerShell or the Azure CLI (note that you can't enable it through the Azure portal).
6363
* Grant the Azure Database for MySQL access to the key vault with the get, wrapKey, and unwrapKey permissions by using its unique managed identity. In the Azure portal, the unique identity is automatically created when data encryption is enabled on the MySQL. See [Configure data encryption for MySQL](howto-data-encryption-portal.md) for detailed, step-by-step instructions when you're using the Azure portal.
6464

6565
The following are requirements for configuring the customer-managed key:
6666

67-
* The customer-managed key to be used for encrypting the DEK can be only asymmetric, RSA 2028.
67+
* The customer-managed key to be used for encrypting the DEK can be only asymmetric, RSA 2048.
6868
* The key activation date (if set) must be a date and time in the past. The expiration date (if set) must be a future date and time.
6969
* The key must be in the *Enabled* state.
7070
* If you're importing an existing key into the key vault, make sure to provide it in the supported file formats (`.pfx`, `.byok`, `.backup`).
@@ -75,8 +75,10 @@ When you're using data encryption by using a customer-managed key, here are reco
7575

7676
* Set a resource lock on Key Vault to control who can delete this critical resource and prevent accidental or unauthorized deletion.
7777
* Enable auditing and reporting on all encryption keys. Key Vault provides logs that are easy to inject into other security information and event management tools. Azure Monitor Log Analytics is one example of a service that's already integrated.
78+
* Ensure that Key Vault and Azure Database for MySQL reside in the same region, to ensure a faster access for DEK wrap, and unwrap operations.
79+
* Lock down the Azure KeyVault to only **private endpoint and selected networks** and allow only *trusted Microsoft* services to secure the resources.
7880

79-
* Ensure that Key Vault and Azure Database for MySQL reside in the same region, to ensure a faster access for DEK wrap and unwrap operations.
81+
![trusted-service-with-AKV](media/concepts-data-access-and-security-data-encryption/keyvault-trusted-service.png)
8082

8183
Here are recommendations for configuring a customer-managed key:
8284

@@ -86,7 +88,13 @@ Here are recommendations for configuring a customer-managed key:
8688

8789
## Inaccessible customer-managed key condition
8890

89-
When you configure data encryption with a customer-managed key in Key Vault, continuous access to this key is required for the server to stay online. If the server loses access to the customer-managed key in Key Vault, the server begins denying all connections within 10 minutes. The server issues a corresponding error message, and changes the server state to *Inaccessible*. The only action allowed on a database in this state is deleting it.
91+
When you configure data encryption with a customer-managed key in Key Vault, continuous access to this key is required for the server to stay online. If the server loses access to the customer-managed key in Key Vault, the server begins denying all connections within 10 minutes. The server issues a corresponding error message, and changes the server state to *Inaccessible*. Some of the reason why the server can reach this state are:
92+
93+
* If we create a Point In Time Restore server for your Azure Database for MySQL, which has data encryption enabled, the newly created server will be in *Inaccessible* state. You can fix this through [Azure portal](howto-data-encryption-portal.md#using-data-encryption-for-restore-or-replica-servers) or [CLI](howto-data-encryption-cli.md#using-data-encryption-for-restore-or-replica-servers).
94+
* If we create a read replica for your Azure Database for MySQL, which has data encryption enabled, the replica server will be in *Inaccessible* state. You can fix this through [Azure portal](howto-data-encryption-portal.md#using-data-encryption-for-restore-or-replica-servers) or [CLI](howto-data-encryption-cli.md#using-data-encryption-for-restore-or-replica-servers).
95+
* If you delete the KeyVault, the Azure Database for MySQL will be unable to access the key and will move to *Inaccessible* state. Recover the [Key Vault](../key-vault/general/soft-delete-cli.md#deleting-and-purging-key-vault-objects) and revalidate the data encryption to make the server *Available*.
96+
* If we delete the key from the KeyVault, the Azure Database for MySQL will be unable to access the key and will move to *Inaccessible* state. Recover the [Key](../key-vault/general/soft-delete-cli.md#deleting-and-purging-key-vault-objects) and revalidate the data encryption to make the server *Available*.
97+
* If the key stored in the Azure KeyVault expires, the key will become invalid and the Azure Database for MySQL will transition into *Inaccessible* state. Extend the key expiry date using [CLI](https://docs.microsoft.com/cli/azure/keyvault/key?view=azure-cli-latest#az-keyvault-key-set-attributes) and then revalidate the data encryption to make the server *Available*.
9098

9199
### Accidental key access revocation from Key Vault
92100

@@ -96,7 +104,6 @@ It might happen that someone with sufficient access rights to Key Vault accident
96104
* Deleting the key.
97105
* Deleting the key vault.
98106
* Changing the key vault's firewall rules.
99-
100107
* Deleting the managed identity of the server in Azure AD.
101108

102109
## Monitor the customer-managed key in Key Vault
@@ -106,7 +113,7 @@ To monitor the database state, and to enable alerting for the loss of transparen
106113
* [Azure Resource Health](../service-health/resource-health-overview.md): An inaccessible database that has lost access to the customer key shows as "Inaccessible" after the first connection to the database has been denied.
107114
* [Activity log](../service-health/alerts-activity-log-service-notifications.md): When access to the customer key in the customer-managed Key Vault fails, entries are added to the activity log. You can reinstate access as soon as possible, if you create alerts for these events.
108115

109-
* [Action groups](../azure-monitor/platform/action-groups.md): Define these to send you notifications and alerts based on your preferences.
116+
* [Action groups](../azure-monitor/platform/action-groups.md): Define these groups to send you notifications and alerts based on your preferences.
110117

111118
## Restore and replicate with a customer's managed key in Key Vault
112119

@@ -116,7 +123,7 @@ To avoid issues while setting up customer-managed data encryption during restore
116123

117124
* Initiate the restore or read replica creation process from the master Azure Database for MySQL.
118125
* Keep the newly created server (restored/replica) in an inaccessible state, because its unique identity hasn't yet been given permissions to Key Vault.
119-
* On the restored/replica server, revalidate the customer-managed key in the data encryption settings. This ensures that the newly created server is given wrap and unwrap permissions to the key stored in Key Vault.
126+
* On the restored/replica server, revalidate the customer-managed key in the data encryption settings to ensures that the newly created server is given wrap and unwrap permissions to the key stored in Key Vault.
120127

121128
## Next steps
122129

115 KB
Loading

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

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Data encryption for Azure Database for PostgreSQL Single server provides the fol
3939

4040
The DEKs, encrypted with the KEKs, are stored separately. Only an entity with access to the KEK can decrypt these DEKs. For more information, see [Security in encryption at rest](../security/fundamentals/encryption-atrest.md).
4141

42-
## How data encryption with a customer-managed key works
42+
## How data encryption with a customer-managed key work
4343

4444
![Diagram that shows an overview of Bring Your Own Key](media/concepts-data-access-and-security-data-encryption/postgresql-data-encryption-overview.png)
4545

@@ -58,12 +58,12 @@ When the server is configured to use the customer-managed key stored in the key
5858
The following are requirements for configuring Key Vault:
5959

6060
* Key Vault and Azure Database for PostgreSQL Single server must belong to the same Azure Active Directory (Azure AD) tenant. Cross-tenant Key Vault and server interactions aren't supported. Moving resources afterwards requires you to reconfigure the data encryption.
61-
* You must enable the soft-delete feature on the key vault, to protect from data loss if an accidental key (or Key Vault) deletion happens. Soft-deleted resources are retained for 90 days, unless the user recovers or purges them in the meantime. The recover and purge actions have their own permissions associated in a Key Vault access policy. The soft-delete feature is off by default, but you can enable it through PowerShell or the Azure CLI (note that you can't enable it through the Azure portal).
61+
* Enable the soft-delete feature on the key vault, to protect from data loss if an accidental key (or Key Vault) deletion happens. Soft-deleted resources are retained for 90 days, unless the user recovers or purges them in the meantime. The recover and purge actions have their own permissions associated in a Key Vault access policy. The soft-delete feature is off by default, but you can enable it through PowerShell or the Azure CLI (note that you can't enable it through the Azure portal).
6262
* Grant the Azure Database for PostgreSQL Single server access to the key vault with the get, wrapKey, and unwrapKey permissions by using its unique managed identity. In the Azure portal, the unique identity is automatically created when data encryption is enabled on the PostgreSQL Single server. See [Data encryption for Azure Database for PostgreSQL Single server by using the Azure portal](howto-data-encryption-portal.md) for detailed, step-by-step instructions when you're using the Azure portal.
6363

6464
The following are requirements for configuring the customer-managed key:
6565

66-
* The customer-managed key to be used for encrypting the DEK can be only asymmetric, RSA 2028.
66+
* The customer-managed key to be used for encrypting the DEK can be only asymmetric, RSA 2048.
6767
* The key activation date (if set) must be a date and time in the past. The expiration date (if set) must be a future date and time.
6868
* The key must be in the *Enabled* state.
6969
* If you're importing an existing key into the key vault, make sure to provide it in the supported file formats (`.pfx`, `.byok`, `.backup`).
@@ -74,8 +74,10 @@ When you're using data encryption by using a customer-managed key, here are reco
7474

7575
* Set a resource lock on Key Vault to control who can delete this critical resource and prevent accidental or unauthorized deletion.
7676
* Enable auditing and reporting on all encryption keys. Key Vault provides logs that are easy to inject into other security information and event management tools. Azure Monitor Log Analytics is one example of a service that's already integrated.
77+
* Ensure that Key Vault and Azure Database for PostgreSQL Single server reside in the same region, to ensure a faster access for DEK wrap, and unwrap operations.
78+
* Lock down the Azure KeyVault to only **private endpoint and selected networks** and allow only *trusted Microsoft* services to secure the resources.
7779

78-
* Ensure that Key Vault and Azure Database for PostgreSQL Single server reside in the same region, to ensure a faster access for DEK wrap and unwrap operations.
80+
![trusted-service-with-AKV](media/concepts-data-access-and-security-data-encryption/keyvault-trusted-service.png)
7981

8082
Here are recommendations for configuring a customer-managed key:
8183

@@ -85,7 +87,13 @@ Here are recommendations for configuring a customer-managed key:
8587

8688
## Inaccessible customer-managed key condition
8789

88-
When you configure data encryption with a customer-managed key in Key Vault, continuous access to this key is required for the server to stay online. If the server loses access to the customer-managed key in Key Vault, the server begins denying all connections within 10 minutes. The server issues a corresponding error message, and changes the server state to *Inaccessible*. The only action allowed on a database in this state is deleting it.
90+
When you configure data encryption with a customer-managed key in Key Vault, continuous access to this key is required for the server to stay online. If the server loses access to the customer-managed key in Key Vault, the server begins denying all connections within 10 minutes. The server issues a corresponding error message, and changes the server state to *Inaccessible*. Some of the reason why the server can reach this state are:
91+
92+
* If we create a Point In Time Restore server for your Azure Database for PostgreSQL Single server, which has data encryption enabled, the newly created server will be in *Inaccessible* state. You can fix the server state through [Azure portal](howto-data-encryption-portal.md#using-data-encryption-for-restore-or-replica-servers) or [CLI](howto-data-encryption-cli.md#using-data-encryption-for-restore-or-replica-servers).
93+
* If we create a read replica for your Azure Database for PostgreSQL Single server, which has data encryption enabled, the replica server will be in *Inaccessible* state. You can fix the server state through [Azure portal](howto-data-encryption-portal.md#using-data-encryption-for-restore-or-replica-servers) or [CLI](howto-data-encryption-cli.md#using-data-encryption-for-restore-or-replica-servers).
94+
* If you delete the KeyVault, the Azure Database for PostgreSQL Single server will be unable to access the key and will move to *Inaccessible* state. Recover the [Key Vault](../key-vault/general/soft-delete-cli.md#deleting-and-purging-key-vault-objects) and revalidate the data encryption to make the server *Available*.
95+
* If we delete the key from the KeyVault, the Azure Database for PostgreSQL Single server will be unable to access the key and will move to *Inaccessible* state. Recover the [Key](../key-vault/general/soft-delete-cli.md#deleting-and-purging-key-vault-objects) and revalidate the data encryption to make the server *Available*.
96+
* If the key stored in the Azure KeyVault expires, the key will become invalid and the Azure Database for PostgreSQL Single server will transition into *Inaccessible* state. Extend the key expiry date using [CLI](https://docs.microsoft.com/cli/azure/keyvault/key?view=azure-cli-latest#az-keyvault-key-set-attributes) and then revalidate the data encryption to make the server *Available*.
8997

9098
### Accidental key access revocation from Key Vault
9199

@@ -105,7 +113,7 @@ To monitor the database state, and to enable alerting for the loss of transparen
105113
* [Azure Resource Health](../service-health/resource-health-overview.md): An inaccessible database that has lost access to the customer key shows as "Inaccessible" after the first connection to the database has been denied.
106114
* [Activity log](../service-health/alerts-activity-log-service-notifications.md): When access to the customer key in the customer-managed Key Vault fails, entries are added to the activity log. You can reinstate access as soon as possible, if you create alerts for these events.
107115

108-
* [Action groups](../azure-monitor/platform/action-groups.md): Define these to send you notifications and alerts based on your preferences.
116+
* [Action groups](../azure-monitor/platform/action-groups.md): Define these groups to send you notifications and alerts based on your preferences.
109117

110118
## Restore and replicate with a customer's managed key in Key Vault
111119

115 KB
Loading

0 commit comments

Comments
 (0)