You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/mysql/concepts-data-encryption-mysql.md
+21-19Lines changed: 21 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
---
2
2
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.
4
4
author: kummanish
5
5
ms.author: manishku
6
6
ms.service: mysql
7
7
ms.topic: conceptual
8
-
ms.date: 01/10/2020
8
+
ms.date: 01/13/2020
9
9
---
10
10
11
11
# Azure Database for MySQL Data Encryption with customer-managed key
@@ -15,34 +15,35 @@ ms.date: 01/10/2020
15
15
16
16
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.
17
17
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).
19
19
20
20
> [!NOTE]
21
21
> This feature is available in all Azure regions where Azure Database for MySQL supports General Purpose and Memory Optimized pricing tiers.
22
22
23
23
## Benefits
24
24
25
25
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.
31
32
32
33
## Terminology and description
33
34
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.
35
36
36
37
**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.
37
38
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).
39
40
40
41
## How Data Encryption with customer-managed key works
41
42
42
43

43
44
44
-
45
45
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
+
46
47
***get** - for retrieving the public part and properties of the key in the Key Vault
47
48
***wrapKey** - to be able to protect (encrypt) DEK
48
49
***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
62
63
* When using firewall with AKV, you must enable option *Allow trusted Microsoft services to bypass the firewall*.
63
64
64
65
### Requirements for configuring customer key
66
+
65
67
* The customer-managed key to be used for encrypting the DEK can be only asymmetric, RSA 2028.
66
68
* 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.
67
69
* The key must be in the *Enabled* state.
68
-
69
70
* If you are importing existing key into the Key Vault, make sure to provide it in the supported file formats (`.pfx`, `.byok`, `.backup`).
70
71
71
72
## 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
75
76
* 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.
76
77
* 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.
77
78
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.
79
80
80
81
### Recommendation for configuring customer-managed key
81
82
82
83
* Keep a copy of the customer-managed key (KEK) on a secure place or escrow it to the escrow service.
83
84
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.
85
86
86
87
## Inaccessible customer-managed key condition
87
88
@@ -90,6 +91,7 @@ When data encryption is configured with customer-managed key in the Azure Key Va
90
91
### Accidental key access revocation from the Azure Key Vault (AKV)
91
92
92
93
It may happen that someone with sufficient access rights to the Key Vault accidentally disables server access to the key by:
94
+
93
95
* revoking Key Vault's get, wrapKey, unwrapKey permissions from the server
94
96
* deleting the key
95
97
* deleting the Key Vault
@@ -104,20 +106,20 @@ To monitor database state and to enable alerting for loss of TDE protector acces
104
106
*[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.
105
107
*[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.
106
108
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.
108
110
109
111
## Restore and replica with customer's managed key in the Key Vault
110
112
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.
112
114
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:
114
116
115
117
* Initiate the restore or read replica creation process from the master Azure Database for MySQL.
116
118
* 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.
118
120
119
121
* 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.
120
122
121
123
## Next steps
122
124
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).
Copy file name to clipboardExpand all lines: articles/mysql/concepts-ssl-connection-security.md
+7-4Lines changed: 7 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,23 +5,26 @@ author: ajlam
5
5
ms.author: andrela
6
6
ms.service: mysql
7
7
ms.topic: conceptual
8
-
ms.date: 12/02/2019
8
+
ms.date: 01/13/2020
9
9
---
10
10
11
11
# SSL connectivity in Azure Database for MySQL
12
+
12
13
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.
13
14
14
15
## 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.
16
18
17
19
When provisioning a new Azure Database for MySQL server through the Azure portal and CLI, enforcement of SSL connections is enabled by default.
18
20
19
21
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.
20
22
21
23
> [!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.
23
25
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).
25
27
26
28
## Next steps
29
+
27
30
[Connection libraries for Azure Database for MySQL](concepts-connection-libraries.md)
0 commit comments