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
@@ -35,7 +35,7 @@ Managing the TDE protector at the database level in Azure SQL Database is availa
35
35
> [!NOTE]
36
36
> In this article, the terms Customer Managed Key (CMK) and Bring Your Own Key (BYOK) are used interchangeably, but they represent some differences.
37
37
> -**Customer Managed Key (CMK)** - The customer manages the key lifecycle, including key creation, rotation, and deletion. The key is stored in [Azure Key Vault](/azure/key-vault/general/overview) or [Azure Key Vault Managed HSM](/azure/key-vault/managed-hsm/overview) and used for encryption of the Database Encryption Key (DEK) in Azure SQL, SQL Server on Azure VM, and SQL Server on-premises.
38
-
> -**Bring Your Own Key (BYOK)** - The customer securely brings or imports their own key from an on-premises hardware security module (HSM) into Azure Key Vault or Azure Key Vault Managed HSM. Such imported keys may be used as any other key in Azure Key Vault, including as a Customer Managed Key for encryption of the DEK. For more information, see [Import HSM-protected keys to Managed HSM (BYOK)](/azure/key-vault/managed-hsm/hsm-protected-keys-byok).
38
+
> -**Bring Your Own Key (BYOK)** - The customer securely brings or imports their own key from an on-premises hardware security module (HSM) into Azure Key Vault or Azure Key Vault Managed HSM. Such imported keys might be used as any other key in Azure Key Vault, including as a Customer Managed Key for encryption of the DEK. For more information, see [Import HSM-protected keys to Managed HSM (BYOK)](/azure/key-vault/managed-hsm/hsm-protected-keys-byok).
39
39
40
40
Customer-managed TDE provides the following benefits to the customer:
41
41
@@ -106,7 +106,7 @@ Auditors can use Azure Monitor to review key vault AuditEvent logs, if logging i
106
106
107
107
### Requirements for configuring TDE protector
108
108
109
-
- TDE protector can only be an asymmetric, RSA, or RSA HSM key. The supported key lengths are 2048 bits and 3072 bits.
109
+
- TDE protector can only be an asymmetric, RSA, or RSA HSM key. The supported key lengths are 2,048 bits and 3,072 bits.
110
110
111
111
- 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.
112
112
@@ -244,7 +244,7 @@ Once a database is encrypted with TDE using a key from Key Vault, any newly gene
244
244
To restore a backup encrypted with a TDE protector from Key Vault, make sure that the key material is available to the target server. Therefore, we recommend that you keep all the old versions of the TDE protector in key vault, so database backups can be restored.
245
245
246
246
> [!IMPORTANT]
247
-
> At any moment there can be not more than one TDE protector set for a server. It's the key marked with "Make the key the default TDE protector" in the Azure portal pane. However, multiple additional keys can be linked to a server without marking them as a TDE protector. These keys aren't used for protecting DEK, but can be used during restore from a backup, if backup file is encrypted with the key with the corresponding thumbprint.
247
+
> There can't be more than one TDE protector set for a server at any moment. The key marked with **Make the key the default TDE protector** in the Azure portal pane is the TDE protector. However, multiple keys can be linked to a server without marking them as a TDE protector. These keys aren't used for protecting the DEK, but can be used during restore from a backup, if the backup file is encrypted with the key with the corresponding thumbprint.
248
248
249
249
If the key that is needed for restoring a backup is no longer available to the target server, the following error message is returned on the restore try:
250
250
"Target server `<Servername>` doesn't have access to all AKV URIs created between \<Timestamp #1> and \<Timestamp #2>. Retry operation after restoring all AKV URIs."
@@ -25,7 +25,7 @@ The tool will also digitally sign the column master properties with the column m
25
25
The `ENCLAVE_COMPUTATIONS` is immutable, meaning, you can't change it once you define the column master key in the metadata. To enable enclave computations using a column encryption key, that a given column master key encrypts, you need to rotate the column master key and replace it with an enclave-enabled column master key. See [Rotate enclave-enabled keys](always-encrypted-enclaves-rotate-keys.md).
26
26
27
27
> [!NOTE]
28
-
> Currently, both SSMS and PowerShell support enclave-enabled column master keys stored in Azure Key Vault or Windows Certificate Store. Hardware security modules (using CNG or CAPI) are not supported.
28
+
> Currently, both SSMS and PowerShell support enclave-enabled column master keys stored in Azure Key Vault or Windows Certificate Store. Hardware security modules (using CNG or CAPI) aren't supported.
29
29
30
30
To create an enclave-enabled column encryption key, you need to ensure that you select an enclave-enabled column master key to encrypt the new key.
31
31
@@ -49,14 +49,14 @@ To provision an enclave-enabled column master key, follow the steps in [Provisio
> The **Allow enclave computations** checkbox appears only if a secure enclave is configured for your database. If you are using [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)], see [Configure the secure enclave in SQL Server](always-encrypted-enclaves-configure-enclave-type.md). If you are using [!INCLUDE [ssazure-sqldb](../../../includes/ssazure-sqldb.md)], see [Enable Always Encrypted with secure enclaves for your Azure SQL Database](/azure/azure-sql/database/always-encrypted-enclaves-enable).
52
+
> The **Allow enclave computations** checkbox appears only if a secure enclave is configured for your database. If you're using [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)], see [Configure the secure enclave in SQL Server](always-encrypted-enclaves-configure-enclave-type.md). If you're using [!INCLUDE [ssazure-sqldb](../../../includes/ssazure-sqldb.md)], see [Enable Always Encrypted with secure enclaves for your Azure SQL Database](/azure/azure-sql/database/always-encrypted-enclaves-enable).
53
53
54
54
> [!TIP]
55
55
> To check if a column master key is enclave-enabled, right-click on it in Object Explorer and select **Properties**. If the key is enclave-enabled, **Enclave Computations: Allowed** appears in the window showing the properties of the key. Alternatively, you can use the [sys.column_master_keys (Transact-SQL)](../../system-catalog-views/sys-column-master-keys-transact-sql.md) view.
56
56
57
57
### Provision enclave-enabled column encryption keys with the New Column Encryption Key dialog
58
58
59
-
To provision an enclave-enabled column encryption key, follow the steps in [Provision Column Encryption Keys with the New Column Encryption Key Dialog](configure-always-encrypted-keys-using-ssms.md#provision-column-encryption-keys-with-the-new-column-encryption-key-dialog). When selecting a column master key, make sure it is enclave-enabled.
59
+
To provision an enclave-enabled column encryption key, follow the steps in [Provision Column Encryption Keys with the New Column Encryption Key Dialog](configure-always-encrypted-keys-using-ssms.md#provision-column-encryption-keys-with-the-new-column-encryption-key-dialog). When selecting a column master key, make sure it's enclave-enabled.
60
60
61
61
> [!TIP]
62
62
> To check if a column encryption key is enclave-enabled, right-click on it in Object Explorer and select **Properties**. If the key is enclave-enabled, **Enclave Computations: Allowed** appears in the window showing the properties of the key.
@@ -72,7 +72,7 @@ The SqlServer PowerShell module extends the [**New-SqlCertificateStoreColumnMas
72
72
Provisioning enclave-enabled column encryption keys is no different from provisioning column encryption keys that aren't enclave-enabled. You just need to make sure that a column master key used to encrypt the new column encryption key is enclave-enabled.
73
73
74
74
> [!NOTE]
75
-
> The SqlServer PowerShell module does not currently support provisioning enclave-enabled keys stored in hardware security modules (using CNG or CAPI).
75
+
> The SqlServer PowerShell module doesn't currently support provisioning enclave-enabled keys stored in hardware security modules (using CNG or CAPI).
76
76
77
77
### Example - provision enclave-enabled keys using Windows Certificate Store
Copy file name to clipboardExpand all lines: docs/relational-databases/security/encryption/always-encrypted-enclaves.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Learn about the Always Encrypted with secure enclaves feature for S
4
4
author: Pietervanhove
5
5
ms.author: pivanho
6
6
ms.reviewer: vanto
7
-
ms.date: 02/03/2025
7
+
ms.date: 03/28/2025
8
8
ms.service: sql
9
9
ms.subservice: security
10
10
ms.topic: conceptual
@@ -143,7 +143,7 @@ The operations supported inside the secure enclaves are:
143
143
|[SELECT - GROUP BY- Transact-SQL](../../../t-sql/queries/select-group-by-transact-sql.md)| Supported | Supported | Not supported |
144
144
145
145
> [!NOTE]
146
-
> The above operations inside secure enclaves require randomized encryption. Deterministic encryption is not supported. Equality comparison remains the operation available for columns using deterministic encryption.
146
+
> The above operations inside secure enclaves require randomized encryption. Deterministic encryption isn't supported. Equality comparison remains the operation available for columns using deterministic encryption.
147
147
>
148
148
> The [compatibility level](../../../t-sql/statements/alter-database-transact-sql-compatibility-level.md) of the database should be set to SQL Server 2022 (160) or higher.
Copy file name to clipboardExpand all lines: docs/relational-databases/security/encryption/configure-always-encrypted-using-powershell.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ description: Learn how to import and use the SqlServer PowerShell module, which
4
4
author: Pietervanhove
5
5
ms.author: pivanho
6
6
ms.reviewer: vanto
7
-
ms.date: 04/05/2023
7
+
ms.date: 03/28/2025
8
8
ms.service: sql
9
9
ms.subservice: security
10
10
ms.topic: how-to
@@ -17,11 +17,11 @@ The SqlServer PowerShell module provides cmdlets for configuring [Always Encrypt
17
17
18
18
## Security Considerations when using PowerShell to Configure Always Encrypted
19
19
20
-
Because the primary goal of Always Encrypted is to ensure encrypted sensitive data is safe, even if the database system gets compromised, executing a PowerShell script that processes keys or sensitive data on the SQL Server computer can reduce or defeat the benefits of the feature. For additional security-related recommendations, see [Security Considerations for Key Management](overview-of-key-management-for-always-encrypted.md#security-considerations-for-key-management).
20
+
Because the primary goal of Always Encrypted is to ensure encrypted sensitive data is safe, even if the database system gets compromised, executing a PowerShell script that processes keys or sensitive data on the SQL Server computer can reduce or defeat the benefits of the feature. For more security-related recommendations, see [Security Considerations for Key Management](overview-of-key-management-for-always-encrypted.md#security-considerations-for-key-management).
21
21
22
22
You can use PowerShell to manage Always Encrypted keys both with and without role separation, providing control over who has access to the actual encryption keys in the key store, and who has access to the database.
23
23
24
-
For additional recommendations, see [Security Considerations for Key Management](overview-of-key-management-for-always-encrypted.md#security-considerations-for-key-management).
24
+
For more recommendations, see [Security Considerations for Key Management](overview-of-key-management-for-always-encrypted.md#security-considerations-for-key-management).
The [SQL Server PowerShell Provider](/powershell/sql-server/sql-server-powershell-provider) exposes the hierarchy of SQL Server objects in paths similar to file system paths. With SQL Server PowerShell, you can navigate the paths using Windows PowerShell aliases similar to the commands you typically use to navigate file system paths. Once you navigate to the target instance and the database, the subsequent cmdlets target that database, as shown in the following example.
79
+
80
+
The [SQL Server PowerShell Provider](/powershell/sql-server/sql-server-powershell-provider) exposes the hierarchy of SQL Server objects in paths similar to file system paths. With SQL Server PowerShell, you can navigate the paths using Windows PowerShell aliases similar to the commands you typically use to navigate file system paths. Once you navigate to the target instance and the database, the subsequent cmdlets target that database, as shown in the following example.
80
81
81
82
> [!NOTE]
82
-
> This method of connecting to a database works only for SQL Server (it is not supported in Azure SQL Database).
83
+
> This method of connecting to a database works only for SQL Server (it isn't supported in Azure SQL Database).
83
84
84
85
```PowerShell
85
86
# Import the SqlServer module.
@@ -135,7 +136,7 @@ The following PowerShell cmdlets are available for Always Encrypted:
-[Overview of key management for Always Encrypted](../../../relational-databases/security/encryption/overview-of-key-management-for-always-encrypted.md)
0 commit comments