Skip to content

Commit be79823

Browse files
authored
Merge pull request #204262 from MicrosoftDocs/main
Merge main to live, 4 AM
2 parents 2b10902 + c83daab commit be79823

34 files changed

+284
-120
lines changed

articles/active-directory/managed-identities-azure-resources/how-to-assign-app-role-managed-identity-powershell.md

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ ms.custom: devx-track-azurepowershell
2323
Managed identities for Azure resources provide Azure services with an identity in Azure Active Directory. They work without needing credentials in your code. Azure services use this identity to authenticate to services that support Azure AD authentication. Application roles provide a form of role-based access control, and allow a service to implement authorization rules.
2424

2525
> [!NOTE]
26-
> The tokens which your application receives are cached by the underlying infrastructure, which means that any changes to the managed identity's roles can take significant time to take effect. For more information, see [Limitation of using managed identities for authorization](managed-identity-best-practice-recommendations.md#limitation-of-using-managed-identities-for-authorization).
26+
> The tokens that your application receives are cached by the underlying infrastructure, which means that any changes to the managed identity's roles can take significant time to take effect. For more information, see [Limitation of using managed identities for authorization](managed-identity-best-practice-recommendations.md#limitation-of-using-managed-identities-for-authorization).
2727
2828
In this article, you learn how to assign a managed identity to an application role exposed by another application using Azure AD PowerShell.
2929

@@ -33,40 +33,50 @@ In this article, you learn how to assign a managed identity to an application ro
3333
- If you don't already have an Azure account, [sign up for a free account](https://azure.microsoft.com/free/) before continuing.
3434
- To run the example scripts, you have two options:
3535
- Use the [Azure Cloud Shell](../../cloud-shell/overview.md), which you can open using the **Try It** button on the top-right corner of code blocks.
36-
- Run scripts locally by installing the latest version of [the Az PowerShell module](/powershell/azure/install-az-ps) and the [Microsoft Graph PowerShell SDK](/powershell/microsoftgraph/get-started).
36+
- Run scripts locally by installing the latest version of [the Az PowerShell module](/powershell/azure/install-az-ps). You can also use the [Microsoft Graph PowerShell SDK](/powershell/microsoftgraph/get-started).
3737

3838
## Assign a managed identity access to another application's app role
3939

4040
1. Enable managed identity on an Azure resource, [such as an Azure VM](qs-configure-powershell-windows-vm.md).
4141

4242
1. Find the object ID of the managed identity's service principal.
4343

44-
**For a system-assigned managed identity**, you can find the object ID on the Azure portal on the resource's **Identity** page. You can also use the following PowerShell script to find the object ID. You'll need the resource ID of the resource you created in step 1, which is available in the Azure portal on the resource's **Properties** page.
44+
**For a system-assigned managed identity**, you can find the object ID on the Azure portal on the resource's **Identity** page. You can also use the following PowerShell script to find the object ID. You'll need the resource ID of the resource you created in step 1, which is available in the Azure portal on the resource's **Properties** page.
4545

46-
```powershell
47-
$resourceIdWithManagedIdentity = '/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.Compute/virtualMachines/{my virtual machine name}'
48-
(Get-AzResource -ResourceId $resourceIdWithManagedIdentity).Identity.PrincipalId
49-
```
46+
```powershell
47+
$resourceIdWithManagedIdentity = '/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.Compute/virtualMachines/{my virtual machine name}'
48+
(Get-AzResource -ResourceId $resourceIdWithManagedIdentity).Identity.PrincipalId
49+
```
5050
51-
**For a user-assigned managed identity**, you can find the managed identity's object ID on the Azure portal on the resource's **Overview** page. You can also use the following PowerShell script to find the object ID. You'll need the resource ID of the user-assigned managed identity.
51+
**For a user-assigned managed identity**, you can find the managed identity's object ID on the Azure portal on the resource's **Overview** page. You can also use the following PowerShell script to find the object ID. You'll need the resource ID of the user-assigned managed identity.
5252
53-
```powershell
54-
$userManagedIdentityResourceId = '/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{my managed identity name}'
55-
(Get-AzResource -ResourceId $userManagedIdentityResourceId).Properties.PrincipalId
56-
```
53+
```powershell
54+
$userManagedIdentityResourceId = '/subscriptions/{my subscription ID}/resourceGroups/{my resource group name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{my managed identity name}'
55+
(Get-AzResource -ResourceId $userManagedIdentityResourceId).Properties.PrincipalId
56+
```
5757
5858
1. Create a new application registration to represent the service that your managed identity will send a request to. If the API or service that exposes the app role grant to the managed identity already has a service principal in your Azure AD tenant, skip this step. For example, if you want to grant the managed identity access to the Microsoft Graph API, you can skip this step.
5959
6060
1. Find the object ID of the service application's service principal. You can find this using the Azure portal. Go to Azure Active Directory and open the **Enterprise applications** page, then find the application and look for the **Object ID**. You can also find the service principal's object ID by its display name using the following PowerShell script:
6161
62+
# [Azure PowerShell](#tab/azurepowershell)
63+
64+
```powershell
65+
$serverServicePrincipalObjectId = (Get-AzureADServicePrincipal -Filter "DisplayName eq '$applicationName'").ObjectId
66+
```
67+
68+
# [Microsoft Graph](#tab/microsoftgraph)
69+
6270
```powershell
6371
$serverServicePrincipalObjectId = (Get-MgServicePrincipal -Filter "DisplayName eq '$applicationName'").Id
6472
```
6573
74+
---
75+
6676
> [!NOTE]
6777
> Display names for applications are not unique, so you should verify that you obtain the correct application's service principal.
6878
69-
1. Add an [app role](../develop/howto-add-app-roles-in-azure-ad-apps.md) to the application you created in step 3. You can create the role using the Azure portal or using Microsoft Graph. For example, you could add an app role like this:
79+
1. Add an [app role](../develop/howto-add-app-roles-in-azure-ad-apps.md) to the application you created in step 3. You can create the role using the Azure portal or by using Microsoft Graph. For example, you could add an app role like this:
7080
7181
```json
7282
{
@@ -88,6 +98,18 @@ In this article, you learn how to assign a managed identity to an application ro
8898
8999
Execute the following PowerShell command to add the role assignment:
90100
101+
# [Azure PowerShell](#tab/azurepowershell)
102+
103+
```powershell
104+
New-AzureADServiceAppRoleAssignment `
105+
-ObjectId $managedIdentityObjectId `
106+
-Id $appRoleId `
107+
-PrincipalId $managedIdentityObjectId `
108+
-ResourceId $serverServicePrincipalObjectId
109+
```
110+
111+
# [Microsoft Graph](#tab/microsoftgraph)
112+
91113
```powershell
92114
New-MgServicePrincipalAppRoleAssignment `
93115
-ServicePrincipalId $managedIdentityObjectId `
@@ -96,10 +118,51 @@ In this article, you learn how to assign a managed identity to an application ro
96118
-AppRoleId $appRoleId
97119
```
98120
121+
---
122+
99123
## Complete script
100124
101125
This example script shows how to assign an Azure web app's managed identity to an app role.
102126
127+
# [Azure PowerShell](#tab/azurepowershell)
128+
129+
```powershell
130+
# Install the module. This step requires you to be an administrator on your machine.
131+
# Install-Module AzureAD
132+
133+
# Your tenant ID (in the Azure portal, under Azure Active Directory > Overview).
134+
$tenantID = '<tenant-id>'
135+
136+
# The name of your web app, which has a managed identity that should be assigned to the server app's app role.
137+
$webAppName = '<web-app-name>'
138+
$resourceGroupName = '<resource-group-name-containing-web-app>'
139+
140+
# The name of the server app that exposes the app role.
141+
$serverApplicationName = '<server-application-name>' # For example, MyApi
142+
143+
# The name of the app role that the managed identity should be assigned to.
144+
$appRoleName = '<app-role-name>' # For example, MyApi.Read.All
145+
146+
# Look up the web app's managed identity's object ID.
147+
$managedIdentityObjectId = (Get-AzWebApp -ResourceGroupName $resourceGroupName -Name $webAppName).identity.principalid
148+
149+
Connect-AzureAD -TenantId $tenantID
150+
151+
# Look up the details about the server app's service principal and app role.
152+
$serverServicePrincipal = (Get-AzureADServicePrincipal -Filter "DisplayName eq '$serverApplicationName'")
153+
$serverServicePrincipalObjectId = $serverServicePrincipal.Id
154+
$appRoleId = ($serverServicePrincipal.AppRoles | Where-Object {$_.Value -eq $appRoleName }).Id
155+
156+
# Assign the managed identity access to the app role.
157+
New-AzureADServiceAppRoleAssignment `
158+
-ObjectId $managedIdentityObjectId `
159+
-Id $appRoleId `
160+
-PrincipalId $managedIdentityObjectId `
161+
-ResourceId $serverServicePrincipalObjectId
162+
```
163+
164+
# [Microsoft Graph](#tab/microsoftgraph)
165+
103166
```powershell
104167
# Install the module.
105168
# Install-Module Microsoft.Graph -Scope CurrentUser
@@ -135,6 +198,8 @@ New-MgServicePrincipalAppRoleAssignment `
135198
-AppRoleId $appRoleId
136199
```
137200

201+
---
202+
138203
## Next steps
139204

140205
- [Managed identity for Azure resources overview](overview.md)

articles/azure-monitor/insights/solutions.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,8 @@ To verify the link between a Log Analytics workspace and an Automation account:
239239

240240
## Remove a monitoring solution
241241

242+
You can remove any installed monitoring solution, except **LogManagment**, which is a built-in solution that contains the schemas that aren't associated to a specific solution.
243+
242244
### [Portal](#tab/portal)
243245

244246
To remove an installed solution by using the portal, find it in the [list of installed solutions](#list-installed-monitoring-solutions). Select the name of the solution to open its summary page, and then select **Delete**.
@@ -270,4 +272,4 @@ Remove-AzMonitorLogAnalyticsSolution -ResourceGroupName MyResourceGroup -Name W
270272

271273
* Get a [list of monitoring solutions from Microsoft](../monitor-reference.md).
272274
* Learn how to [create queries](../logs/log-query-overview.md) to analyze data that monitoring solutions have collected.
273-
* See all [Azure CLI commands for Azure Monitor](/cli/azure/azure-cli-reference-for-monitor).
275+
* See all [Azure CLI commands for Azure Monitor](/cli/azure/azure-cli-reference-for-monitor).

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,8 @@ Deleting a linked workspace is permitted while linked to cluster. If you decide
411411

412412
- You can't use Customer-managed key with User-assigned managed identity if your Key Vault is in Private-Link (vNet). You can use System-assigned managed identity in this scenario.
413413

414+
- [Search jobs asynchronous queries](./search-jobs.md) aren't supported in Customer-managed key scenario currently.
415+
414416
## Troubleshooting
415417

416418
- Behavior per Key Vault availability:

articles/backup/backup-rbac-rs-vault.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ The following table captures the Backup management actions and corresponding min
4040
| | Virtual Machine Contributor | VM resource | Alternatively, instead of a built-in-role, you can consider a custom role which has the following permissions: Microsoft.Compute/virtualMachines/write Microsoft.Compute/virtualMachines/read Microsoft.Compute/virtualMachines/instanceView/read |
4141
| On-demand backup of VM | Backup Operator | Recovery Services vault | |
4242
| Restore VM | Backup Operator | Recovery Services vault | |
43-
| | Contributor | Resource group in which VM will be deployed | Alternatively, instead of a built-in-role, you can consider a custom role which has the following permissions: Microsoft.Resources/subscriptions/resourceGroups/write Microsoft.DomainRegistration/domains/write, Microsoft.Compute/virtualMachines/write Microsoft.Compute/virtualMachines/read Microsoft.Network/virtualNetworks/read Microsoft.Network/virtualNetworks/subnets/read Microsoft.Network/virtualNetworks/subnets/join/action |
43+
| | Contributor | Resource group in which VM will be deployed | Alternatively, instead of a built-in-role, you can consider a custom role which has the following permissions: Microsoft.Resources/subscriptions/resourceGroups/write Microsoft.DomainRegistration/domains/write (required only for classic VM restore and not required for managed VMs), Microsoft.Compute/virtualMachines/write Microsoft.Compute/virtualMachines/read Microsoft.Network/virtualNetworks/read Microsoft.Network/virtualNetworks/subnets/read Microsoft.Network/virtualNetworks/subnets/join/action |
4444
| | Virtual Machine Contributor | Source VM that got backed up | Alternatively, instead of a built-in-role, you can consider a custom role which has the following permissions: Microsoft.Compute/virtualMachines/write Microsoft.Compute/virtualMachines/read|
4545
| Restore unmanaged disks VM backup | Backup Operator | Recovery Services vault |
4646
| | Virtual Machine Contributor | Source VM that got backed up | Alternatively, instead of a built-in-role, you can consider a custom role which has the following permissions: Microsoft.Compute/virtualMachines/write Microsoft.Compute/virtualMachines/read |
@@ -153,4 +153,4 @@ The following table captures the Backup management actions and corresponding Azu
153153
* [PowerShell](../role-based-access-control/role-assignments-powershell.md)
154154
* [Azure CLI](../role-based-access-control/role-assignments-cli.md)
155155
* [REST API](../role-based-access-control/role-assignments-rest.md)
156-
* [Azure role-based access control troubleshooting](../role-based-access-control/troubleshooting.md): Get suggestions for fixing common issues.
156+
* [Azure role-based access control troubleshooting](../role-based-access-control/troubleshooting.md): Get suggestions for fixing common issues.

articles/backup/tutorial-sap-hana-backup-cli.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
title: Tutorial - SAP HANA DB backup on Azure using Azure CLI
33
description: In this tutorial, learn how to back up SAP HANA databases running on an Azure VM to an Azure Backup Recovery Services vault using Azure CLI.
44
ms.topic: tutorial
5-
ms.date: 12/4/2019
5+
ms.date: 07/05/2022
66
ms.custom: devx-track-azurecli
7+
author: v-amallick
8+
ms.service: backup
9+
ms.author: v-amallick
710
---
811

912
# Tutorial: Back up SAP HANA databases in an Azure VM using Azure CLI
@@ -143,6 +146,15 @@ The [az backup job list](/cli/azure/backup/job#az-backup-job-list) cmdlet lists
143146
>
144147
>Modify the policy manually as needed.
145148
149+
## Get the container name
150+
151+
To get container name, run the following command. [Learn about this CLI command](/cli/azure/backup/container?view=azure-cli-latest#az-backup-container-list).
152+
153+
```azurecli
154+
az backup item list --resource-group <resource group name> --vault-name <vault name>
155+
156+
```
157+
146158
## Trigger an on-demand backup
147159

148160
While the section above details how to configure a scheduled backup, this section talks about triggering an on-demand backup. To do this, we use the [az backup protection backup-now](/cli/azure/backup/protection#az-backup-protection-backup-now) cmdlet.

articles/data-factory/connector-azure-blob-storage.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: data-factory
88
ms.subservice: data-movement
99
ms.topic: conceptual
1010
ms.custom: synapse
11-
ms.date: 12/13/2021
11+
ms.date: 07/04/2022
1212
---
1313

1414
# Copy and transform data in Azure Blob storage by using Azure Data Factory or Azure Synapse Analytics
@@ -26,13 +26,17 @@ This article outlines how to use the Copy activity in Azure Data Factory and Azu
2626
2727
## Supported capabilities
2828

29-
This Azure Blob storage connector is supported for the following activities:
29+
This Azure Blob storage connector is supported for the following capabilities:
3030

31-
- [Copy activity](copy-activity-overview.md) with [supported source/sink matrix](copy-activity-overview.md)
32-
- [Mapping data flow](concepts-data-flow-overview.md)
33-
- [Lookup activity](control-flow-lookup-activity.md)
34-
- [GetMetadata activity](control-flow-get-metadata-activity.md)
35-
- [Delete activity](delete-activity.md)
31+
| Supported capabilities|IR | Managed private endpoint|
32+
|---------| --------| --------|
33+
|[Copy activity](copy-activity-overview.md) (source/sink)|&#9312; &#9313;|✓ <small> Exclude storage account V1|
34+
|[Mapping data flow](concepts-data-flow-overview.md) (source/sink)|&#9312; |✓ <small> Exclude storage account V1|
35+
|[Lookup activity](control-flow-lookup-activity.md)|&#9312; &#9313;|✓ <small> Exclude storage account V1|
36+
|[GetMetadata activity](control-flow-get-metadata-activity.md)|&#9312; &#9313;|✓ <small> Exclude storage account V1|
37+
|[Delete activity](delete-activity.md)|&#9312; &#9313;|✓ <small> Exclude storage account V1|
38+
39+
<small>*&#9312; Azure integration runtime &#9313; Self-hosted integration runtime*</small>
3640

3741
For the Copy activity, this Blob storage connector supports:
3842

articles/data-factory/connector-azure-cosmos-db-mongodb-api.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: data-factory
88
ms.subservice: data-movement
99
ms.topic: conceptual
1010
ms.custom: synapse
11-
ms.date: 02/17/2022
11+
ms.date: 07/04/2022
1212
---
1313

1414
# Copy data to or from Azure Cosmos DB's API for MongoDB using Azure Data Factory or Synapse Analytics
@@ -22,6 +22,14 @@ This article outlines how to use Copy Activity in Azure Data Factory and Synapse
2222
2323
## Supported capabilities
2424

25+
This Azure Cosmos DB's API for MongoDB connector is supported for the following capabilities:
26+
27+
| Supported capabilities|IR | Managed private endpoint|
28+
|---------| --------| --------|
29+
|[Copy activity](copy-activity-overview.md) (source/sink)|&#9312; &#9313;||
30+
31+
<small>*&#9312; Azure integration runtime &#9313; Self-hosted integration runtime*</small>
32+
2533
You can copy data from Azure Cosmos DB's API for MongoDB to any supported sink data store, or copy data from any supported source data store to Azure Cosmos DB's API for MongoDB. For a list of data stores that Copy Activity supports as sources and sinks, see [Supported data stores and formats](copy-activity-overview.md#supported-data-stores-and-formats).
2634

2735
You can use the Azure Cosmos DB's API for MongoDB connector to:

articles/data-factory/connector-azure-cosmos-db.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.service: data-factory
88
ms.subservice: data-movement
99
ms.topic: conceptual
1010
ms.custom: synapse
11-
ms.date: 03/23/2022
11+
ms.date: 07/04/2022
1212
---
1313

1414
# Copy and transform data in Azure Cosmos DB (SQL API) by using Azure Data Factory
@@ -26,11 +26,15 @@ This article outlines how to use Copy Activity in Azure Data Factory to copy dat
2626
2727
## Supported capabilities
2828

29-
This Azure Cosmos DB (SQL API) connector is supported for the following activities:
29+
This Azure Cosmos DB (SQL API) connector is supported for the following capabilities:
3030

31-
- [Copy activity](copy-activity-overview.md) with [supported source/sink matrix](copy-activity-overview.md)
32-
- [Mapping data flow](concepts-data-flow-overview.md)
33-
- [Lookup activity](control-flow-lookup-activity.md)
31+
| Supported capabilities|IR | Managed private endpoint|
32+
|---------| --------| --------|
33+
|[Copy activity](copy-activity-overview.md) (source/sink)|&#9312; &#9313;||
34+
|[Mapping data flow](concepts-data-flow-overview.md) (source/sink)|&#9312; ||
35+
|[Lookup activity](control-flow-lookup-activity.md)|&#9312; &#9313;||
36+
37+
<small>*&#9312; Azure integration runtime &#9313; Self-hosted integration runtime*</small>
3438

3539
For Copy activity, this Azure Cosmos DB (SQL API) connector supports:
3640

0 commit comments

Comments
 (0)