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
Data stored in your Azure Cosmos account is automatically and seamlessly encrypted. Azure Cosmos DB offers two options to manage the keys used to encrypt the data at rest:
18
18
19
-
-**Service-managed keys** - By default, Microsoft manages the keys that are used to encrypt the data in your Azure Cosmos account.
19
+
-**Service-managed keys**: By default, Microsoft manages the keys used to encrypt the data in your Azure Cosmos account.
20
20
21
-
-**Customer-managed keys (CMK)**- You can optionally choose to add a second layer of encryption with your own keys.
21
+
-**Customer-managed keys (CMK)**: You can choose to add a second layer of encryption with your own keys.
22
22
23
-
You must store customer-managed keys in the [Azure Key Vault](../key-vault/key-vault-overview.md) and provide a key for each Azure Cosmos account that is enabled with customer-managed keys. This key is used to encrypt all the data stored in that account.
23
+
You'll need to store your customer-managed keys in the [Azure Key Vault](../key-vault/key-vault-overview.md) and provide a key for each Azure Cosmos account that is enabled with customer-managed keys. This key is used to encrypt all the data stored in that account.
24
24
25
25
> [!NOTE]
26
-
> Currently, customer-managed keys are only available for new Azure Cosmos accounts and you should configure them during account creation.
26
+
> Customer-managed keys are only available for new Azure Cosmos accounts. You should configure them during account creation.
27
27
28
28
## <aid="register-resource-provider"></a> Register the Azure Cosmos DB resource provider for your Azure subscription
29
29
30
-
1. Sign into the [Azure portal](https://portal.azure.com/), go to your Azure subscription and select **Resource providers** under the **Settings** tab:
30
+
1. Sign into the [Azure portal](https://portal.azure.com/), go to your Azure subscription, and select **Resource providers** under the **Settings** tab:
31
31
32
32

33
33
@@ -37,65 +37,65 @@ You must store customer-managed keys in the [Azure Key Vault](../key-vault/key-v
37
37
38
38
## Configure your Azure Key Vault instance
39
39
40
-
Using customer-managed keys with Azure Cosmos DB requires youto set two properties on the Azure Key Vault instance that you plan to use to host your encryption keys. These properties include **Soft Delete** and **Do Not Purge**. These properties aren't enabled by default, you can enable them by using either PowerShell or the Azure CLI.
40
+
To use customer-managed keys with Azure Cosmos DB, you'll need to set two properties on the Azure Key Vault instance that you plan to use to host your encryption keys. These properties include **soft-delete** and **do not purge**. These properties aren't enabled by default, but you can enable them by using either PowerShell or Azure CLI.
41
41
42
-
To learn how to enable these properties on an existing Azure Key Vault instance, see the "Enabling soft-delete" and "Enabling Purge Protection" sections in one of the following articles:
42
+
To learn how to enable these properties on an existing Azure Key Vault instance, see the **Enabling soft-delete** and **Enabling purge protection** sections in either of these articles:
43
43
44
44
-[How to use soft-delete with PowerShell](../key-vault/key-vault-soft-delete-powershell.md)
45
45
-[How to use soft-delete with Azure CLI](../key-vault/key-vault-soft-delete-cli.md)
46
46
47
47
## Add an access policy to your Azure Key Vault instance
48
48
49
-
1. From the Azure portal, go to the Azure Key Vault instance that you plan to use to host your encryption keys. Select **Access Policies** from the left menu:
49
+
1. From the Azure portal, go to the Azure Key Vault instance that you plan to use to host your encryption keys. Select **Access policies** from the left menu:
50
50
51
51

52
52
53
-
1. Select **+ Add Access Policy**
53
+
1. Select **+ Add access policy**.
54
54
55
-
1. Under the **Key permissions** dropdown menu, select **Get**, **Unwrap Key** and **Wrap Key** permissions:
55
+
1. Under the **Key permissions** dropdown menu, select **Get**, **Unwrap Key**, and **Wrap Key** permissions:
56
56
57
57

58
58
59
-
1. Under **Select principal**, select **None selected**. Then, search for **Azure Cosmos DB** principal and select it. Finally, click**Select** at the bottom (if the **Azure Cosmos DB** principal isn't in the list, you may need to re-register the **Microsoft.DocumentDB** resource provider as described in [register the resource provider](#register-resource-provider) section of this article):
59
+
1. Under **Select principal**, select **None selected**. Then, search for **Azure Cosmos DB** principal and select it. Finally, select**Select** at the bottom. If the **Azure Cosmos DB** principal isn't in the list, you may need to reregister the **Microsoft.DocumentDB** resource provider, described in the [register the resource provider](#register-resource-provider) section of this article.
60
60
61
61

62
62
63
-
1. Select **Add** to add the new access policy
63
+
1. Select **Add** to add the new access policy.
64
64
65
65
## Generate a key in Azure Key Vault
66
66
67
-
1. From the Azure portal, go the Azure Key Vault instance that you plan to use to host your encryption keys. Then, select **Keys** from the left menu:
67
+
1. From the Azure portal, go the Azure Key Vault instance that you plan to use to host your encryption keys, and select **Keys** from the left menu:
68
68
69
69

70
70
71
71
1. Select **Generate/Import**, provide a name for the new key, select an RSA key size (a minimum of 3072 is recommended for best security), and then select **Create**:
72
72
73
73

74
74
75
-
1. After the key is created, select the newly created key, and then on its current version.
75
+
1. After the key is created, select the newly created key, and select its current version.
76
76
77
-
1. Copy the key’s **Key Identifier** except the part after the last forward slash:
77
+
1. Copy the key’s **Key Identifier**, except the part after the last forward slash:
78
78
79
79

80
80
81
81
## Create a new Azure Cosmos account
82
82
83
83
### Using the Azure portal
84
84
85
-
When creating a new Azure Cosmos DB account from the Azure portal, choose **Customer-managed key** in the **Encryption** step. In the **Key URI** field, paste the URI/key identifier of the Azure Key Vault key that you copied from the previous step:
85
+
When you create a new Azure Cosmos DB account from the Azure portal, choose **Customer-managed key** in the **Encryption** step. In the **Key URI** field, paste the URI/key identifier of the Azure Key Vault key that you copied from the previous step:
86
86
87
87

88
88
89
89
### Using Azure PowerShell
90
90
91
-
When creating a new Azure Cosmos DB account with PowerShell,
91
+
When you create a new Azure Cosmos DB account with PowerShell:
92
92
93
-
- Pass the URI of the Azure Key Vault key copied from earlier under the **keyVaultKeyUri** property in the **PropertyObject**
93
+
- Pass the URI of the Azure Key Vault key copied from earlier under the **keyVaultKeyUri** property in the **PropertyObject**.
94
94
95
95
- Use **2019-12-12** as the API version.
96
96
97
97
> [!IMPORTANT]
98
-
> You must set the `Location` parameter explicitly for the account to be successfully created with customer-managed keys.
98
+
> You'll need to set the `Location` parameter explicitly for the account to be successfully created with customer-managed keys.
### Is there any additional charge when using customer-managed keys?
190
190
191
-
Yes. To account for the additional compute load that is required to manage data encryption and decryption with customer-managed keys, all operations executed against the Azure Cosmos account consume a 25% increase in [Request Units](./request-units.md).
191
+
Yes. To account for the additional compute load that is required to manage data encryption and decryption with customer-managed keys, all operations executed against the Azure Cosmos account consume a 25 percent increase in [Request Units](./request-units.md).
192
192
193
193
### What data gets encrypted with the customer-managed keys?
194
194
195
-
All the data stored in your Azure Cosmos account is encrypted with the customer-managed keys, except for the following meta-data:
195
+
All the data stored in your Azure Cosmos account is encrypted with the customer-managed keys, except for the following metadata:
196
196
197
197
- The names of your Azure Cosmos DB [accounts, databases, and containers](./account-overview.md#elements-in-an-azure-cosmos-account)
198
198
199
199
- The names of your [stored procedures](./stored-procedures-triggers-udfs.md)
200
200
201
201
- The property paths declared in your [indexing policies](./index-policy.md)
202
202
203
-
- The values of your containers'[partition key](./partitioning-overview.md)
203
+
- The values of your container's[partition key](./partitioning-overview.md)
204
204
205
205
### Are customer-managed keys supported for existing Azure Cosmos accounts?
206
206
207
207
This feature is currently available for new accounts only.
208
208
209
209
### Is there a plan to support finer granularity than account-level keys?
210
210
211
-
Not currently, however container-level keys are being considered.
211
+
Not currently, but container-level keys are being considered.
212
212
213
-
### How does customer-managed keys affect a backup?
213
+
### How do customer-managed keys affect a backup?
214
214
215
-
Azure Cosmos DB takes [regular and automatic backups](./online-backup-and-restore.md) of the data stored in your account. This operation backs up the encrypted data. To use the restored backup, the encryption key that you used at the time of the backup is required. This means that no revocation shall have been made and the version of the key that was used at the time of the backup shall still be enabled.
215
+
Azure Cosmos DB takes [regular and automatic backups](./online-backup-and-restore.md) of the data stored in your account. This operation backs up the encrypted data. To use the restored backup, the encryption key that you used at the time of the backup is required. This means that no revocation will have been made and the version of the key that was used at the time of the backup will still be enabled.
0 commit comments