Skip to content

Commit b535b03

Browse files
authored
Updating with APIs changes
1 parent e1ed4dc commit b535b03

File tree

1 file changed

+59
-23
lines changed

1 file changed

+59
-23
lines changed

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

Lines changed: 59 additions & 23 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: 03/26/2020
8+
ms.date: 04/08/2020
99

1010
---
1111
# Azure Monitor customer-managed key configuration
@@ -135,6 +135,34 @@ You can acquire the token using one of these methods:
135135
1. Copy and add it to your API call per the examples below.
136136
3. Navigate to Azure REST documentation site. Press "Try it" on any API and copy the Bearer token.
137137

138+
### Asynchronous operations and status check
139+
140+
Some of the operations in this configuration procedure run asynchronously because they can't be completed quickly. The response for asynchronous operation initially returns an HTTP status code 200 (OK) and header with *Azure-AsyncOperation* property when accepted:
141+
```json
142+
"Azure-AsyncOperation": "https://management.azure.com/subscriptions/ subscription-id/providers/Microsoft.OperationalInsights/locations/region-name/operationStatuses/operation-id?api-version=2015-11-01-preview"
143+
```
144+
145+
You can check the status of the asynchronous operation by sending a GET request to the *Azure-AsyncOperation* header value:
146+
```rst
147+
GET "https://management.azure.com/subscriptions/ subscription-id/providers/Microsoft.OperationalInsights/locations/region-name/operationStatuses/operation-id?api-version=2015-11-01-preview
148+
Authorization: Bearer <token>
149+
```
150+
151+
The body of the response from the operation contains information about the operation and the *Status* property indicates its state. The asynchronous operations in this configuration procedure and their statuses are:
152+
153+
**Creating a *Cluster* resource**
154+
* ProvisioningAccount -- ADX cluster is in provisioning
155+
* Succeeded -- ADX cluster provisioning is completed
156+
157+
**Granting permissions to your Key Vault**
158+
* Updating -- Key identifier details update is in progress
159+
* Succeeded -- Update completed
160+
161+
**Associating Log Analytics workspaces**
162+
* Linking -- Workspace association to cluster is in progress
163+
* Succeeded -- Association completed
164+
165+
138166
### Subscription whitelisting
139167

140168
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.
@@ -160,6 +188,8 @@ You must specify the capacity reservation level (sku) when creating a *Cluster*
160188

161189
**Create**
162190

191+
This Resource Manager request is asynchronous operation.
192+
163193
```rst
164194
PUT https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.OperationalInsights/clusters/<cluster-name>?api-version=2019-08-01-preview
165195
Authorization: Bearer <token>
@@ -183,10 +213,11 @@ The identity is assigned to the *Cluster* resource at creation time.
183213

184214
**Response**
185215

186-
202 Accepted. This is a standard Resource Manager response for asynchronous operations.
187-
216+
200 OK and header when accepted.
188217
>[!Important]
189-
> It takes the provisioning of the underly ADX cluster a while to complete. You can verify the provisioning state when performing GET REST API call on the *Cluster* resource and looking at the *provisioningState* value. It is *ProvisioningAccount* while provisioning and *Succeeded* when completed.
218+
> During the early access period of the feature, the ADX cluster is provisioned manually. While it takes the provisioning of the underly ADX cluster a while to complete, you can check the provisioning state in two ways:
219+
> 1. Copy the *Azure-AsyncOperation* URL value from the response and use it for the operation status check in [asynchronous operations](#asynchronous-operations-and-status-check)
220+
> 2. Send a GET request on the *Cluster* resource and look at the *provisioningState* value. It is *ProvisioningAccount* while provisioning and *Succeeded* when completed.
190221
191222
### Azure Monitor data-store (ADX cluster) provisioning
192223

@@ -201,6 +232,7 @@ Authorization: Bearer <token>
201232
> Copy and save the response since you will need its details in later steps
202233
203234
**Response**
235+
204236
```json
205237
{
206238
"identity": {
@@ -240,7 +272,7 @@ The *Get* permission is required to verify that your Key Vault is configured as
240272

241273
### Update Cluster resource with Key identifier details
242274

243-
This step applies per initial and future key version updates in your Key Vault. It informs Azure Monitor Storage about the key version to be used for data encryption. When updated, your new key is being used to wrap and unwrap to Storage key (AEK).
275+
This step is performed during initial and in future key version updates in your Key Vault. It informs Azure Monitor Storage about the key version to be used for data encryption. When updated, your new key is being used to wrap and unwrap to Storage key (AEK).
244276

245277
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.
246278

@@ -251,6 +283,8 @@ details.
251283

252284
**Update**
253285

286+
This Resource Manager request is asynchronous operation.
287+
254288
>[!Warning]
255289
> You must provide a full body in *Cluster* resource update that includes *identity*, *sku*, *KeyVaultProperties* and *location*. Missing the *KeyVaultProperties* details will remove the key identifier from the *Cluster* resource and cause [key revocation](#cmk-kek-revocation).
256290
@@ -281,6 +315,14 @@ Content-type: application/json
281315

282316
**Response**
283317

318+
200 OK and header when accepted.
319+
>[!Important]
320+
> It takes the propagation of the Key identifier a few minutes to complete. You can check the provisioning state in two ways:
321+
> 1. Copy the *Azure-AsyncOperation* URL value from the response and use it for the operation status check in [asynchronous operations](#asynchronous-operations-and-status-check)
322+
> 2. Send a GET request on the *Cluster* resource and look at the *KeyVaultProperties* properties. Your recently updated Key identifier details should return in the response.
323+
324+
A response to GET request on the *Cluster* resource should look like this when Key identifier update is complete:
325+
284326
```json
285327
{
286328
"identity": {
@@ -311,19 +353,22 @@ Content-type: application/json
311353
```
312354

313355
### Workspace association to *Cluster* resource
314-
315356
For Application Insights CMK configuration, follow the Appendix content for this step.
316357

317-
> [!IMPORTANT]
318-
> This step should be performed only after ADX cluster provisioning. If you associate workspaces and ingest data prior to the provisioning, ingested data will be dropped and won't be recoverable.
319-
> To verify that the ADX cluster is provisioned, execute *Cluster* resource Get REST API and check that the *provisioningState* value is *Succeeded*.
358+
This Resource Manager request is asynchronous operation.
320359

321360
You need to have 'write' permissions to both your workspace and *Cluster* resource to perform this operation, which include these actions:
322361

323362
- In workspace: Microsoft.OperationalInsights/workspaces/write
324363
- In *Cluster* resource: Microsoft.OperationalInsights/clusters/write
325364

365+
> [!IMPORTANT]
366+
> This step should be performed only after ADX cluster provisioning. If you associate workspaces and ingest data prior to the provisioning, ingested data will be dropped and won't be recoverable.
367+
326368
**Associate a workspace**
369+
370+
This Resource Manager request is asynchronous operation.
371+
327372
```rst
328373
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
329374
Authorization: Bearer <token>
@@ -338,21 +383,12 @@ Content-type: application/json
338383

339384
**Response**
340385

341-
```json
342-
{
343-
"properties": {
344-
"WriteAccessResourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/clusters/<cluster-name>"
345-
},
346-
"id": "/subscriptions/subscription-id/resourcegroups/resource-group-name/providers/microsoft.operationalinsights/workspaces/workspace-name/linkedservices/cluster",
347-
"name": "workspace-name/cluster",
348-
"type": "microsoft.operationalInsights/workspaces/linkedServices",
349-
}
350-
```
351-
352-
The workspace association is performed via Resource Manager asynchronous operations, which can take up to 90 minutes to complete. The next step shows you how workspace association state can be checked. After the workspaces association, data ingested to your workspaces is stored encrypted with your managed key.
386+
200 OK and header when accepted.
387+
>[!Important]
388+
> It can operation up to 90 minutes to complete. Data ingested to your workspaces is stored encrypted with your managed key only after a successful workspaces association.
389+
> To check the workspace association state, copy the *Azure-AsyncOperation* URL value from the response and use it for the operation status check in [asynchronous operations](# asynchronous-operations-and-status-check)
353390
354-
### Workspace association verification
355-
You can verify if a workspace is associated to a *Cluster* resource by looking at the [Workspaces – Get](https://docs.microsoft.com/rest/api/loganalytics/workspaces/get) response. Associated workspaces will have a 'clusterResourceId' property with a *Cluster* resource ID.
391+
You can check the *Cluster* resource associated to your workspace by sending a GET request to [Workspaces – Get](https://docs.microsoft.com/rest/api/loganalytics/workspaces/get) and observing the response. The *clusterResourceId* indicates on the *Cluster* resource ID.
356392

357393
```rest
358394
GET https://management.azure.com/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalInsights/workspaces/<workspace-name>?api-version=2015-11-01-preview

0 commit comments

Comments
 (0)