Skip to content

Commit a6db77c

Browse files
edit pass: how-to-set-up-cmk
1 parent 29aa5ee commit a6db77c

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

articles/cosmos-db/how-to-setup-cmk.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@ ROBOTS: noindex, nofollow
1212
# Configure customer-managed keys for your Azure Cosmos account with Azure Key Vault
1313

1414
> [!NOTE]
15-
> At this time, you must request access to use this capability. To do so, please contact [[email protected]](mailto:[email protected]).
15+
> You'll need to request access to use this capability. Contact [[email protected]](mailto:[email protected]).
1616
1717
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:
1818

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.
2020

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.
2222

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.
2424

2525
> [!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.
2727
2828
## <a id="register-resource-provider"></a> Register the Azure Cosmos DB resource provider for your Azure subscription
2929

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:
3131

3232
!["Resource providers" entry from the left menu](./media/how-to-setup-cmk/portal-rp.png)
3333

@@ -37,65 +37,65 @@ You must store customer-managed keys in the [Azure Key Vault](../key-vault/key-v
3737

3838
## Configure your Azure Key Vault instance
3939

40-
Using customer-managed keys with Azure Cosmos DB requires you 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, 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.
4141

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:
4343

4444
- [How to use soft-delete with PowerShell](../key-vault/key-vault-soft-delete-powershell.md)
4545
- [How to use soft-delete with Azure CLI](../key-vault/key-vault-soft-delete-cli.md)
4646

4747
## Add an access policy to your Azure Key Vault instance
4848

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:
5050

5151
!["Access policies" from the left menu](./media/how-to-setup-cmk/portal-akv-ap.png)
5252

53-
1. Select **+ Add Access Policy**
53+
1. Select **+ Add access policy**.
5454

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:
5656

5757
![Selecting the right permissions](./media/how-to-setup-cmk/portal-akv-add-ap-perm2.png)
5858

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.
6060

6161
![Select the Azure Cosmos DB principal](./media/how-to-setup-cmk/portal-akv-add-ap.png)
6262

63-
1. Select **Add** to add the new access policy
63+
1. Select **Add** to add the new access policy.
6464

6565
## Generate a key in Azure Key Vault
6666

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:
6868

6969
!["Keys" entry from the left menu](./media/how-to-setup-cmk/portal-akv-keys.png)
7070

7171
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**:
7272

7373
![Create a new key](./media/how-to-setup-cmk/portal-akv-gen.png)
7474

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.
7676

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:
7878

7979
![Copying the key's key identifier](./media/how-to-setup-cmk/portal-akv-keyid.png)
8080

8181
## Create a new Azure Cosmos account
8282

8383
### Using the Azure portal
8484

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:
8686

8787
![Setting CMK parameters in the Azure portal](./media/how-to-setup-cmk/portal-cosmos-enc.png)
8888

8989
### Using Azure PowerShell
9090

91-
When creating a new Azure Cosmos DB account with PowerShell,
91+
When you create a new Azure Cosmos DB account with PowerShell:
9292

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**.
9494

9595
- Use **2019-12-12** as the API version.
9696

9797
> [!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.
9999
100100
```powershell
101101
$resourceGroupName = "myResourceGroup"
@@ -117,16 +117,16 @@ New-AzResource -ResourceType "Microsoft.DocumentDb/databaseAccounts" `
117117
-Location $accountLocation -Name $accountName -PropertyObject $CosmosDBProperties
118118
```
119119

120-
### Using Azure Resource Manager template
120+
### Using an Azure Resource Manager template
121121

122-
When creating a new Azure Cosmos account through an Azure Resource Manager template:
122+
When you create a new Azure Cosmos account through an Azure Resource Manager template:
123123

124124
- Pass the URI of the Azure Key Vault key that you copied earlier under the **keyVaultKeyUri** property in the **properties** object.
125125

126126
- Use **2019-12-12** as the API version.
127127

128128
> [!IMPORTANT]
129-
> You must set the `Location` parameter explicitly for the account to be successfully created with customer-managed keys.
129+
> You'll need to set the `Location` parameter explicitly for the account to be successfully created with customer-managed keys.
130130
131131
```json
132132
{
@@ -168,7 +168,7 @@ When creating a new Azure Cosmos account through an Azure Resource Manager templ
168168

169169
```
170170

171-
Deploy the template with the following PowerShell script:
171+
Deploy the template with this PowerShell script:
172172

173173
```powershell
174174
$resourceGroupName = "myResourceGroup"
@@ -188,31 +188,31 @@ New-AzResourceGroupDeployment `
188188

189189
### Is there any additional charge when using customer-managed keys?
190190

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).
192192

193193
### What data gets encrypted with the customer-managed keys?
194194

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:
196196

197197
- The names of your Azure Cosmos DB [accounts, databases, and containers](./account-overview.md#elements-in-an-azure-cosmos-account)
198198

199199
- The names of your [stored procedures](./stored-procedures-triggers-udfs.md)
200200

201201
- The property paths declared in your [indexing policies](./index-policy.md)
202202

203-
- The values of your containers' [partition key](./partitioning-overview.md)
203+
- The values of your container's [partition key](./partitioning-overview.md)
204204

205205
### Are customer-managed keys supported for existing Azure Cosmos accounts?
206206

207207
This feature is currently available for new accounts only.
208208

209209
### Is there a plan to support finer granularity than account-level keys?
210210

211-
Not currently, however container-level keys are being considered.
211+
Not currently, but container-level keys are being considered.
212212

213-
### How does customer-managed keys affect a backup?
213+
### How do customer-managed keys affect a backup?
214214

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.
216216

217217
### How do I revoke an encryption key?
218218

0 commit comments

Comments
 (0)