Skip to content

Commit a77bc25

Browse files
Merge pull request #100979 from JasonWHowell/fix100856
Edits for post-review on PR #100856
2 parents 01fad11 + 85e305d commit a77bc25

24 files changed

+112
-97
lines changed

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

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Azure Database for MySQL Data Encryption with customer-managed key
3-
description: Azure Database for MySQL Data Encryption with customer-managed key
3+
description: Azure Database for MySQL Data Encryption with customer-managed key enables you to Bring Your Own Key (BYOK) for data protection at rest, and allows organizations to implement separation of duties in the management of keys and data.
44
author: kummanish
55
ms.author: manishku
66
ms.service: mysql
77
ms.topic: conceptual
8-
ms.date: 01/10/2020
8+
ms.date: 01/13/2020
99
---
1010

1111
# Azure Database for MySQL Data Encryption with customer-managed key
@@ -15,34 +15,35 @@ ms.date: 01/10/2020
1515
1616
Azure Database for MySQL Data Encryption with customer-managed key enables you to Bring Your Own Key (BYOK) for data protection at rest, and allows organizations to implement separation of duties in the management of keys and data. With customer-managed encryption, you are responsible for and in a full control of a key's lifecycle (key creation, upload, rotation, deletion), key usage permissions, and auditing of operations on keys.
1717

18-
For Azure Database for MySQL, the Data Encryption is set at the server-level. With this form of data encryption, the key is used to in the encryption of the Database Encryption Key (DEK), which is a customer-managed asymmetric key stored in a customer-owned and customer-managed [Azure Key Vault (AKV)](https://docs.microsoft.com/azure/key-Vault/key-Vault-secure-your-key-Vault), a cloud-based external key management system. AKV is highly available and provides scalable secure storage for RSA cryptographic keys, optionally backed by FIPS 140-2 Level 2 validated hardware security modules (HSMs). It doesn't allow direct access to a stored key but provides services of encryption/decryption using the key to the authorized entities. The key can be generated by the Key Vault, imported, or [transferred to the Key Vault from an on-prem HSM device](https://docs.microsoft.com/azure/key-Vault/key-Vault-hsm-protected-keys).
18+
For Azure Database for MySQL, the Data Encryption is set at the server-level. With this form of data encryption, the key is used to in the encryption of the Database Encryption Key (DEK), which is a customer-managed asymmetric key stored in a customer-owned and customer-managed [Azure Key Vault (AKV)](../key-vault/key-Vault-secure-your-key-Vault.md), a cloud-based external key management system. AKV is highly available and provides scalable secure storage for RSA cryptographic keys, optionally backed by FIPS 140-2 Level 2 validated hardware security modules (HSMs). It doesn't allow direct access to a stored key but provides services of encryption/decryption using the key to the authorized entities. The key can be generated by the Key Vault, imported, or [transferred to the Key Vault from an on-prem HSM device](../key-vault/key-Vault-hsm-protected-keys.md).
1919

2020
> [!NOTE]
2121
> This feature is available in all Azure regions where Azure Database for MySQL supports General Purpose and Memory Optimized pricing tiers.
2222
2323
## Benefits
2424

2525
Data Encryption for Azure Database for MySQL provides the following benefits:
26-
* Increased transparency, granular control and management for the encryption key
27-
* Central management and organization of keys by hosting them in Azure Key Vault.
28-
* Ability to implement separation of duties in the management of keys and data within the organization
29-
* Separate key management from data management within an organization, so Key Vault administrator can revoke key access permissions to make encrypted database inaccessible
30-
* Greater trust from your end customers, since Azure Key Vault is designed such that Microsoft cannot see nor extract encryption keys
26+
27+
* Increased transparency, granular control, and management for the encryption key.
28+
* Central management and organization of keys by hosting them in Azure Key Vault.
29+
* Ability to implement separation of duties in the management of keys and data within the organization.
30+
* Separate key management from data management within an organization, so Key Vault administrator can revoke key access permissions to make encrypted database inaccessible.
31+
* Greater trust from your end customers, since Azure Key Vault is designed such that Microsoft cannot see nor extract encryption keys.
3132

3233
## Terminology and description
3334

34-
**Data Encryption Key (DEK)** – A symmetric AES256 key used to encrypt a partition or block of data. Encrypting each block of data with a different key makes crypto analysis attacks more difficult. Access to DEKs is needed by the resource provider or application instance that is encrypting and decrypting a specific block. When a DEK is replaced with a new key only the data in its associated block must be re-encrypted with the new key.
35+
**Data Encryption Key (DEK)** – A symmetric AES256 key used to encrypt a partition or block of data. Encrypting each block of data with a different key makes crypto analysis attacks more difficult. Access to DEKs is needed by the resource provider or application instance that is encrypting and decrypting a specific block. When a DEK is replaced with a new key, only the data in its associated block must be re-encrypted with the new key.
3536

3637
**Key Encryption Key (KEK)** - An encryption key used to encrypt the Data Encryption Keys. Use of a Key Encryption Key that never leaves Key Vault, allows the data encryption keys themselves to be encrypted and controlled. The entity that has access to the KEK may be different than the entity that requires the DEK. Since the KEK is required to decrypt the DEKs, the KEK is effectively a single point by which DEKs can be effectively deleted by deletion of the KEK.
3738

38-
The Data Encryption Keys, encrypted with the Key Encryption Keys are stored separately and only an entity with access to the Key Encryption Key can decrypt these Data Encryption Keys. For details please refer to [security in encryption at rest](https://docs.microsoft.com/azure/security/azure-security-encryption-atrest).
39+
The Data Encryption Keys, encrypted with the Key Encryption Keys are stored separately and only an entity with access to the Key Encryption Key can decrypt these Data Encryption Keys. For more information, see [security in encryption at rest](../security/fundamentals/encryption-atrest.md).
3940

4041
## How Data Encryption with customer-managed key works
4142

4243
![Bring your own key overview](media/concepts-data-access-and-security-data-encryption/mysqloverview.png)
4344

44-
4545
For a MySQL server to be able to use customer-managed keys stored in AKV for encryption of the DEK, a Key Vault administrator needs to give the following access rights to the server using its unique identity:
46+
4647
* **get** - for retrieving the public part and properties of the key in the Key Vault
4748
* **wrapKey** - to be able to protect (encrypt) DEK
4849
* **unwrapKey** - to be able to unprotect (decrypt) DEK
@@ -62,10 +63,10 @@ When the server is configured to use the customer-managed key that is stored in
6263
* When using firewall with AKV, you must enable option *Allow trusted Microsoft services to bypass the firewall*.
6364

6465
### Requirements for configuring customer key
66+
6567
* The customer-managed key to be used for encrypting the DEK can be only asymmetric, RSA 2028.
6668
* The key activation date (if set) must be a date and time in the past. Expiration date (if set) must be a future date and time.
6769
* The key must be in the *Enabled* state.
68-
6970
* If you are importing existing key into the Key Vault, make sure to provide it in the supported file formats (`.pfx`, `.byok`, `.backup`).
7071

7172
## Recommendations when using Data Encryption using customer-managed key
@@ -75,13 +76,13 @@ When the server is configured to use the customer-managed key that is stored in
7576
* Set a resource lock on the Key Vault to control who can delete this critical resource and prevent accidental or unauthorized deletion. Learn more about resource locks.
7677
* 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 is already integrated.
7778

78-
* Ensure that the Key Vault and the Azure Database for MySQL reside in the same region to ensure a faster access for DEK wrap/unwrap operations.
79+
* Ensure that the Key Vault and the Azure Database for MySQL reside in the same region to ensure a faster access for DEK wrap/unwrap operations.
7980

8081
### Recommendation for configuring customer-managed key
8182

8283
* Keep a copy of the customer-managed key (KEK) on a secure place or escrow it to the escrow service.
8384

84-
* If the key is generated in the Key Vault, create a key backup before using the key in AKV for the first time. Backup can be restored to an Azure Key Vault only. Learn more about the [Backup-AzKeyVaultKey](https://docs.microsoft.com/powershell/module/az.keyVault/backup-azkeyVaultkey) command.
85+
* If the key is generated in the Key Vault, create a key backup before using the key in AKV for the first time. Backup can be restored to an Azure Key Vault only. Learn more about the [Backup-AzKeyVaultKey](https://docs.microsoft.com/powershell/module/az.keyVault/backup-azkeyVaultkey) command.
8586

8687
## Inaccessible customer-managed key condition
8788

@@ -90,6 +91,7 @@ When data encryption is configured with customer-managed key in the Azure Key Va
9091
### Accidental key access revocation from the Azure Key Vault (AKV)
9192

9293
It may happen that someone with sufficient access rights to the Key Vault accidentally disables server access to the key by:
94+
9395
* revoking Key Vault's get, wrapKey, unwrapKey permissions from the server
9496
* deleting the key
9597
* deleting the Key Vault
@@ -104,20 +106,20 @@ To monitor database state and to enable alerting for loss of TDE protector acces
104106
* [Azure Resource Health](../service-health/resource-health-overview.md) - An inaccessible database that has lost access to the customer key will show as "Inaccessible" after the first connection to the database has been denied.
105107
* [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. Creating alerts for these events will enable you to reinstate access as soon as possible.
106108

107-
* [Action groups](../azure-monitor/platform/action-groups.md) can be defined to send you notifications and alerts based on your preferences, e.g. Email/SMS/Push/Voice, Logic App, Webhook, ITSM, or Automation Runbook.
109+
* [Action groups](../azure-monitor/platform/action-groups.md) can be defined to send you notifications and alerts based on your preferences, for example Email/SMS/Push/Voice, Logic App, Webhook, ITSM, or Automation Runbook.
108110

109111
## Restore and replica with customer's managed key in the Key Vault
110112

111-
Once an Azure Database for MySQL is encrypted with customer's managed key stored in the Key Vault, any newly created copy of the server either though local or geo-restore operation or through read replicas is also encrypted with the same customer's managed key. However, they can be changed to reflect new customer's managed key for encryption. When the customer-managed key is changed, old backups of the server will start using the latest key.
113+
Once an Azure Database for MySQL is encrypted with customer's managed key stored in the Key Vault, any newly created copy of the server (either though local or geo-restore operation or through read replicas) is also encrypted with the same customer's managed key. However, they can be changed to reflect new customer's managed key for encryption. When the customer-managed key is changed, old backups of the server will start using the latest key.
112114

113-
To avoid issues while establishing setting up customer-managed data encryption during restore or read replica creation it is important to follow these steps on the master and restores/replica server:
115+
To avoid issues while establishing setting up customer-managed data encryption during restore or read replica creation, it is important to follow these steps on the master and restores/replica server:
114116

115117
* Initiate the restore or read replica creation process from the master Azure Database for MySQL.
116118
* The newly created server (restored/replica) is kept an Inaccessible state since its unique identity has not yet been given permissions to the Azure Key Vault (AKV)
117-
* On the restored/replica server, re-validate the customer-managed key in the data encryption settings to ensure that the newly created server is given wrap/unwrap permissions to the key stored in AKV.
119+
* On the restored/replica server, revalidate the customer-managed key in the data encryption settings to ensure that the newly created server is given wrap/unwrap permissions to the key stored in AKV.
118120

119121
* Both the steps above must be done to ensure that the data encryption is preserved on the master as well as the restored/replica server.
120122

121123
## Next steps
122124

123-
Learn how to setup data encryption with customer-managed key for your Azure database for MySQL using [Azure portal](howto-data-encryption-portal.md).
125+
Learn how to [setup data encryption with customer-managed key for your Azure database for MySQL using the Azure portal](howto-data-encryption-portal.md).

articles/mysql/concepts-ssl-connection-security.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,26 @@ author: ajlam
55
ms.author: andrela
66
ms.service: mysql
77
ms.topic: conceptual
8-
ms.date: 12/02/2019
8+
ms.date: 01/13/2020
99
---
1010

1111
# SSL connectivity in Azure Database for MySQL
12+
1213
Azure Database for MySQL supports connecting your database server to client applications using Secure Sockets Layer (SSL). Enforcing SSL connections between your database server and your client applications helps protect against "man in the middle" attacks by encrypting the data stream between the server and your application.
1314

1415
## Default settings
15-
By default, the database service should be configured to require SSL connections when connecting to MySQL. We recommend to avoid disabling the SSL option whenever possible.
16+
17+
By default, the database service should be configured to require SSL connections when connecting to MySQL. We recommend to avoid disabling the SSL option whenever possible.
1618

1719
When provisioning a new Azure Database for MySQL server through the Azure portal and CLI, enforcement of SSL connections is enabled by default.
1820

1921
Connection strings for various programming languages are shown in the Azure portal. Those connection strings include the required SSL parameters to connect to your database. In the Azure portal, select your server. Under the **Settings** heading, select the **Connection strings**. The SSL parameter varies based on the connector, for example "ssl=true" or "sslmode=require" or "sslmode=required" and other variations.
2022

2123
> [!NOTE]
22-
> Currently the TLS version supported for Azure Database for MySQL are TLS 1.0, TLS 1.1, TLS 1.2
24+
> Currently the TLS version supported for Azure Database for MySQL are TLS 1.0, TLS 1.1, TLS 1.2.
2325
24-
To learn how to enable or disable SSL connection when developing application, refer to [How to configure SSL](howto-configure-ssl.md).
26+
To learn how to enable or disable SSL connection when developing application, refer to [How to configure SSL](howto-configure-ssl.md).
2527

2628
## Next steps
29+
2730
[Connection libraries for Azure Database for MySQL](concepts-connection-libraries.md)

0 commit comments

Comments
 (0)