Skip to content

Commit 9e85a28

Browse files
authored
update due to APIs changes
1 parent 2e9fa6b commit 9e85a28

File tree

1 file changed

+109
-37
lines changed

1 file changed

+109
-37
lines changed

articles/azure-monitor/platform/customer-managed-keys.md

Lines changed: 109 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ms.subservice: logs
55
ms.topic: conceptual
66
author: yossi-y
77
ms.author: yossiy
8-
ms.date: 02/24/2020
8+
ms.date: 03/22/2020
99

1010
---
1111
# Azure Monitor customer-managed key configuration
@@ -106,10 +106,10 @@ For Application Insights CMK configuration, follow the Appendix content for step
106106
1. Subscription whitelisting -- this is required for this early access
107107
feature
108108
2. Creating Azure Key Vault and storing key
109-
3. Create a *Cluster* resource
109+
3. Creating a *Cluster* resource
110110
4. Azure Monitor data-store (ADX cluster) provisioning
111-
5. Grant permissions to your Key Vault
112-
6. Log Analytics workspaces association
111+
5. Granting permissions to your Key Vault
112+
6. Associating Log Analytics workspaces
113113

114114
The procedure is not supported in the UI currently and the provisioning process is performed via REST API.
115115

@@ -142,13 +142,13 @@ You can acquire the token using one of these methods:
142142
CMK capability is an early access feature. The subscriptions where you plan to create *Cluster* resources must be whitelisted beforehand by the Azure product group. Use your contacts into Microsoft to provide your Subscriptions IDs.
143143

144144
> [!IMPORTANT]
145-
> CMK capability is regional. Your Azure Key Vault, Storage Account, *Cluster* resource and associated Log Analytics workspaces must be in the same region, but they can be in different subscriptions.
145+
> CMK capability is regional. Your Azure Key Vault, *Cluster* resource and associated Log Analytics workspaces must be in the same region, but they can be in different subscriptions.
146146
147147
### Storing encryption key (KEK)
148148

149-
Create an Azure Key Vault resource, then generate or import a key to be used for data encryption.
149+
Create or use an Azure Key Vault that you already have, to generate or import a key to be used for data encryption.
150150

151-
The Azure Key Vault must be configured as recoverable to protect your key and the access to your Azure Monitor data.
151+
The Azure Key Vault must be configured as recoverable to protect your key and the access to your data in Azure Monitor.
152152

153153
These settings are available via CLI and PowerShell:
154154
- [Soft Delete](https://docs.microsoft.com/azure/key-vault/key-vault-ovw-soft-delete)
@@ -157,9 +157,11 @@ These settings are available via CLI and PowerShell:
157157

158158
### Create *Cluster* resource
159159

160-
This resource is used as intermediate identity connection between your Key Vault and your workspaces. After you receive confirmation that your subscriptions were whitelisted, create a Log Analytics *Cluster* resource at the region where your workspaces are located. Application Insights and Log Analytics require separate Cluster resources. The type of the *Cluster* resource is defined at creation time by setting the clusterType property to either LogAnalytics, or ApplicationInsights. The Cluster resource type can’t be altered.
160+
This resource is used as an intermediate identity connection between your Key Vault and your workspaces. After you receive confirmation that your subscriptions were whitelisted, create a Log Analytics *Cluster* resource at the region where your workspaces are located. Application Insights and Log Analytics require separate *Cluster* resources types. The type of the *Cluster* resource is defined at creation time by setting the "clusterType" property to either "LogAnalytics", or "ApplicationInsights". The Cluster resource type can’t be altered after.
161161

162-
For Application Insights CMK configuration, follow the Appendix content for this step.
162+
For Application Insights CMK configuration, follow the Appendix content.
163+
164+
You must specify the capacity reservation level (sku) for the *Cluster* resource. The capacity reservation level can be in the range of 1000 to 2000 and in steps of 100. If you need capacity reservation level higher than 2000, reach your Microsoft contact to enable it. This property doesn’t affect billing currently -- once pricing model for dedicated cluster is introduced, billing will apply to any existing CMK deployments.
163165

164166
**Create**
165167

@@ -171,15 +173,18 @@ Content-type: application/json
171173
{
172174
"location": "<region-name>",
173175
"properties": {
174-
"clusterType": "LogAnalytics"
176+
"clusterType": "LogAnalytics",
177+
"sku": {
178+
"name": "CapacityReservation",
179+
"capacityReservationLevel": 1000
180+
}
175181
},
176182
"identity": {
177183
"type": "systemAssigned"
178184
}
179185
}
180186
```
181187
The identity is assigned to the *Cluster* resource at creation time.
182-
"clusterType" value is "ApplicationInsights" for Application Insights CMK.
183188

184189
**Response**
185190

@@ -194,7 +199,11 @@ https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res
194199

195200
### Azure Monitor data-store (ADX cluster) provisioning
196201

197-
During the early access period of the feature, the ADX cluster is provisioned manually by the product team once the previous steps are completed. Use your Microsoft channel to provide the *Cluster* resource details. Copy the JSON response from the *Cluster* resource GET REST API:
202+
During the early access period of the feature, the ADX cluster is provisioned manually by the product team once the previous steps are completed. Use your Microsoft channel to provide the *Cluster* resource details.
203+
204+
> [!IMPORTANT]
205+
> Copy and provide the JSON response of the *Cluster* resource GET REST API
206+
> You will need details from this response for later steps too
198207
199208
```rst
200209
GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.OperationalInsights/clusters/<cluster-name>?api-version=2019-08-01-preview
@@ -210,10 +219,15 @@ Authorization: Bearer <token>
210219
"principalId": "principal-id"
211220
},
212221
"properties": {
213-
"provisioningState": "Succeeded",
222+
"provisioningState": "ProvisioningAccount",
214223
"clusterType": "LogAnalytics",
215224
"clusterId": "cluster-id"
216-
},
225+
"sku": {
226+
"name": "CapacityReservation",
227+
"capacityReservationLevel": 1000,
228+
"lastSkuUpdate": "Sun, 22 Mar 2020 15:39:29 GMT"
229+
}
230+
},
217231
"id": "/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.OperationalInsights/clusters/cluster-name",
218232
"name": "cluster-name",
219233
"type": "Microsoft.OperationalInsights/clusters",
@@ -223,17 +237,9 @@ Authorization: Bearer <token>
223237

224238
"principal-id" is a GUID generated by the managed identity service for the *Cluster* resource.
225239

226-
> [!IMPORTANT]
227-
> Copy and keep the "principal-id" value since you will need it in next steps.
228-
229-
230240
### Grant Key Vault permissions
231241

232-
> [!IMPORTANT]
233-
> This step should be carried after you received confirmation from the product group through your Microsoft channel that the Azure Monitor data-store (ADX cluster) provisioning was fulfilled. Updating the Key Vault access policy prior to this provisioning may fail.
234-
235-
Update your Key Vault with a new access policy that grant permissions to your *Cluster* resource. These permissions are used by the underlaying Azure Monitor Storage for data encryption.
236-
Open your Key Vault in Azure portal and click "Access Policies" then "+ Add Access Policy" to create a new policy with these settings:
242+
Update your Key Vault with a new access policy that grants permissions to your *Cluster* resource. These permissions are used by the underlay Azure Monitor Storage for data encryption. Open your Key Vault in Azure portal and click "Access Policies" then "+ Add Access Policy" to create a policy with these settings:
237243

238244
- Key permissions: select 'Get', 'Wrap Key' and 'Unwrap Key' permissions.
239245
- Select principal: enter the principal-id value that returned in the response in the previous step.
@@ -244,7 +250,9 @@ The *Get* permission is required to verify that your Key Vault is configured as
244250

245251
### Update Cluster resource with Key identifier details
246252

247-
This step applies for future key version updates in your Key Vault. Update the *Cluster* resource with Key Vault *Key identifier* details, to allow Azure Monitor Storage to use the new key version. Select the current version of your key in Azure Key Vault to get the Key identifier details.
253+
This step applies per initial and future key version updates in your Key Vault. It informs Azure Monitor Storage about the new key version.
254+
255+
To update the *Cluster* resource with your Key Vault *Key identifier* details, select the current version of your key in Azure Key Vault to get the Key identifier details.
248256

249257
![Grant Key Vault permissions](media/customer-managed-keys/key-identifier-8bit.png)
250258

@@ -284,11 +292,11 @@ Content-type: application/json
284292
"principalId": "principle-id"
285293
},
286294
"properties": {
287-
"KeyVaultProperties": {
288-
KeyVaultUri: "https://key-vault-name.vault.azure.net",
289-
KeyName: "key-name",
290-
KeyVersion: "current-version"
291-
},
295+
"KeyVaultProperties": {
296+
KeyVaultUri: "https://key-vault-name.vault.azure.net",
297+
KeyName: "key-name",
298+
KeyVersion: "current-version"
299+
},
292300
"provisioningState": "Succeeded",
293301
"clusterType": "LogAnalytics",
294302
"clusterId": "cluster-id"
@@ -302,20 +310,48 @@ Content-type: application/json
302310

303311
### Workspace association to *Cluster* resource
304312

305-
> [!NOTE]
306-
> This step should be carried **ONLY** after you received confirmation
307-
> from the product group through your Microsoft channel that the
308-
> **Azure Monitor data-store (ADX cluster) provisioning** was
309-
> fulfilled. If you associate workspaces and ingest data prior to this
310-
> **provisioning**, the data will be dropped and won't be recoverable.
313+
> [!IMPORTANT]
314+
> This step should be carried after the ADX cluster provisioning. If you associate workspaces and ingest data prior to the provisioning, ingested data before the provisioning will be dropped and won't be recoverable.
315+
> To verify that the ADX cluster is provisioned and you can start associating workspaces to it, execute the this REST API and check that "provisioningState" value in the response is "Succeeded".
316+
317+
```rst
318+
GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.OperationalInsights/clusters/<cluster-name>?api-version=2019-08-01-preview
319+
Authorization: Bearer <token>
320+
```
321+
322+
**Response**
323+
```json
324+
{
325+
"identity": {
326+
"type": "SystemAssigned",
327+
"tenantId": "tenant-id",
328+
"principalId": "principal-id"
329+
},
330+
"properties": {
331+
"provisioningState": "Succeeded",
332+
"clusterType": "LogAnalytics",
333+
"clusterId": "cluster-id"
334+
"sku": {
335+
"name": "CapacityReservation",
336+
"capacityReservationLevel": 1000,
337+
"lastSkuUpdate": "Sun, 22 Mar 2020 15:39:29 GMT"
338+
}
339+
},
340+
"id": "/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.OperationalInsights/clusters/cluster-name",
341+
"name": "cluster-name",
342+
"type": "Microsoft.OperationalInsights/clusters",
343+
"location": "region-name"
344+
}
345+
```
311346

312347
For Application Insights CMK configuration, follow the Appendix content for this step.
313348

314-
You need to have write permissions on both your workspace and *Cluster* resource to perform this operation, which include these actions:
349+
You need to have 'write' permissions to both your workspace and *Cluster* resource to perform this operation, which include these actions:
315350

316351
- In workspace: Microsoft.OperationalInsights/workspaces/write
317352
- In *Cluster* resource: Microsoft.OperationalInsights/clusters/write
318353

354+
**Associate a workspace**
319355
```rst
320356
PUT https://management.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>/linkedservices/cluster?api-version=2019-08-01-preview
321357
Authorization: Bearer <token>
@@ -595,11 +631,47 @@ Identity is assigned to the *Cluster* resource at creation time.
595631
596632
### Associate a component to a *Cluster* resource using [Components - Create Or Update](https://docs.microsoft.com/rest/api/application-insights/components/createorupdate) API
597633

598-
You need to have write permissions on both your component and *Cluster* resource to perform this operation, which include these actions:
634+
You need to have 'write' permissions on both your component and *Cluster* resource to perform this operation, which include these actions:
599635

600636
- In component: Microsoft.Insights/component/write
601637
- In *Cluster* resource: Microsoft.OperationalInsights/clusters/write
602638

639+
> [!IMPORTANT]
640+
> This step should be carried after the ADX cluster provisioning. If you associate a component and ingest data prior to the provisioning, ingested data before the provisioning will be dropped and won't be recoverable.
641+
> To verify that the ADX cluster is provisioned and you can start associating component to it, execute the this REST API and check that "provisioningState" value in the response is "Succeeded".
642+
643+
```rst
644+
GET https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.OperationalInsights/clusters/<cluster-name>?api-version=2019-08-01-preview
645+
Authorization: Bearer <token>
646+
```
647+
648+
**Response**
649+
```json
650+
{
651+
"identity": {
652+
"type": "SystemAssigned",
653+
"tenantId": "tenant-id",
654+
"principalId": "principal-id"
655+
},
656+
"properties": {
657+
"provisioningState": "Succeeded",
658+
"clusterType": "ApplicationInsights",
659+
"clusterId": "cluster-id"
660+
"sku": {
661+
"name": "CapacityReservation",
662+
"capacityReservationLevel": 1000,
663+
"lastSkuUpdate": "Sun, 22 Mar 2020 15:39:29 GMT"
664+
}
665+
},
666+
"id": "/subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.OperationalInsights/clusters/cluster-name",
667+
"name": "cluster-name",
668+
"type": "Microsoft.OperationalInsights/clusters",
669+
"location": "region-name"
670+
}
671+
```
672+
673+
**Associate a component**
674+
603675
```rst
604676
PUT https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Insights/components/<component-name>?api-version=2015-05-01
605677
Authorization: Bearer <token>

0 commit comments

Comments
 (0)