Azure Logic Apps에서 관리 되는 id를 사용 하 여 Azure 리소스에 대 한 액세스 인증Authenticate access to Azure resources by using managed identities in Azure Logic Apps

다른 Azure Active Directory (Azure AD) 테 넌 트의 리소스에 액세스 하 고 로그인 하지 않고 id를 인증 하기 위해 논리 앱은 자격 증명이 나 비밀이 아닌 시스템 할당 관리 id (이전의 관리 서비스 ID 또는 MSI)를 사용할 수 있습니다.To access the resources in other Azure Active Directory (Azure AD) tenants and authenticate your identity without signing in, your logic app can use the system-assigned managed identity (formerly known as Managed Service Identity or MSI), rather than credentials or secrets. 이 ID는 Azure에서 관리되며, 비밀을 제공하거나 순환할 필요가 없기 때문에 자격 증명을 보호하는 데 도움이 됩니다.Azure manages this identity for you and helps secure your credentials because you don't have to provide or rotate secrets. 이 문서에서는 논리 앱에서 시스템 할당 관리 id를 설정 하 고 사용 하는 방법을 보여 줍니다.This article shows how to set up and use the system-assigned managed identity in your logic app. 현재 관리 되는 id는 관리 되는 커넥터나 연결이 아닌 특정 기본 제공 트리거 및 작업에서만 작동 합니다.Currently, managed identities work only with specific built-in triggers and actions, not managed connectors or connections.

자세한 내용은 다음 항목을 참조하세요.For more information, see these topics:

전제 조건Prerequisites

  • Azure 구독, 구독이 없는 경우 체험판 Azure 계정에 등록하세요.An Azure subscription, or if you don't have a subscription, sign up for a free Azure account. 액세스 하려는 관리 되는 id와 대상 Azure 리소스 모두 동일한 Azure 구독을 사용 해야 합니다.Both the managed identity and the target Azure resource where you want access need to use the same Azure subscription.

  • 대상 리소스와 동일한 Azure AD 테 넌 트에서 관리 되는 id에 역할을 할당할 수 있는 AZURE ad 관리자 권한Azure AD administrator permissions that can assign roles to managed identities in the same Azure AD tenant as the target resource. 관리 id에 Azure 리소스에 대 한 액세스 권한을 부여 하려면 대상 리소스에서 해당 id에 대 한 역할을 추가 해야 합니다.To give a managed identity access to an Azure resource, you need to add a role for that identity on the target resource.

  • 액세스 하려는 대상 Azure 리소스The target Azure resource that you want to access

  • 관리 되는 id를 지 원하는 트리거 및 동작 을 사용 하는 논리 앱A logic app that uses triggers and actions that support managed identities

시스템 할당 id 사용Enable system-assigned identity

사용자 할당 id와 달리 시스템 할당 id는 수동으로 만들 필요가 없습니다.Unlike user-assigned identities, you don't have to manually create the system-assigned identity. 논리 앱의 시스템 할당 id를 설정 하려면 다음 옵션을 사용할 수 있습니다.To set up your logic app's system-assigned identity, here are the options that you can use:

Azure Portal에서 시스템 할당 id 사용Enable system-assigned identity in Azure portal

  1. Azure Portal의 논리 앱 디자이너에서 논리 앱을 엽니다.In the Azure portal, open your logic app in Logic App Designer.

  2. 논리 앱 메뉴의 설정에서 id > 시스템이 할당 됨을 선택 합니다.On the logic app menu, under Settings, select Identity > System assigned. 상태에서 설정 > 저장 > 를 선택 합니다.Under Status, select On > Save > Yes.

    시스템이 할당 한 id 사용

    이제 논리 앱은 Azure Active Directory에 등록 되 고 개체 ID로 표시 되는 시스템 할당 id를 사용할 수 있습니다.Your logic app can now use the system-assigned identity, which is registered with Azure Active Directory and is represented by an object ID.

    시스템 할당 id에 대 한 개체 ID

    자산Property ValueValue 설명Description
    개체 IDObject ID <identity-resource-ID><identity-resource-ID> Azure AD 테 넌 트에서 논리 앱의 시스템 할당 id를 나타내는 GUID (Globally Unique Identifier)입니다.A Globally Unique Identifier (GUID) that represents the system-assigned identity for your logic app in your Azure AD tenant
  3. 이제 리소스에 대 한 id 액세스 권한을 부여 하는 단계를 따릅니다.Now follow the steps that give the identity access to the resource.

Azure Resource Manager 템플릿에서 시스템 할당 id 사용Enable system-assigned identity in Azure Resource Manager template

논리 앱과 같은 Azure 리소스 만들기 및 배포를 자동화 하기 위해 Azure Resource Manager 템플릿을사용할 수 있습니다.To automate creating and deploying Azure resources such as logic apps, you can use Azure Resource Manager templates. 템플릿에서 논리 앱에 대 한 시스템 할당 관리 id를 사용 하도록 설정 하려면 identity 개체 및 type 자식 속성을 템플릿의 논리 앱 리소스 정의에 추가 합니다. 예를 들면 다음과 같습니다.To enable the system-assigned managed identity for your logic app in the template, add the identity object and the type child property to the logic app's resource definition in the template, for example:

{
   "apiVersion": "2016-06-01",
   "type": "Microsoft.logic/workflows",
   "name": "[variables('logicappName')]",
   "location": "[resourceGroup().location]",
   "identity": {
      "type": "SystemAssigned"
   },
   "properties": {
      "definition": {
         "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
         "actions": {},
         "parameters": {},
         "triggers": {},
         "contentVersion": "1.0.0.0",
         "outputs": {}
   },
   "parameters": {},
   "dependsOn": []
}

Azure에서 논리 앱 리소스 정의를 만들 때 identity 개체는 다음과 같은 추가 속성을 가져옵니다.When Azure creates your logic app resource definition, the identity object gets these additional properties:

"identity": {
   "type": "SystemAssigned",
   "principalId": "<principal-ID>",
   "tenantId": "<Azure-AD-tenant-ID>"
}
속성 (JSON)Property (JSON) ValueValue 설명Description
principalId <principal-ID><principal-ID> Azure AD 테 넌 트에서 논리 앱을 나타내는 관리 되는 id에 대 한 서비스 주체 개체의 GUID (Globally Unique Identifier)입니다.The Globally Unique Identifier (GUID) of the service principal object for the managed identity that represents your logic app in the Azure AD tenant. 이 GUID는 "개체 ID" 또는 objectID으로 나타날 수도 있습니다.This GUID sometimes appears as an "object ID" or objectID.
tenantId <Azure-AD-tenant-ID><Azure-AD-tenant-ID> 논리 앱이 현재 멤버로 속해 있는 Azure AD 테 넌 트를 나타내는 GUID (Globally Unique Identifier)입니다.The Globally Unique Identifier (GUID) that represents the Azure AD tenant where the logic app is now a member. Azure AD 테넌트 내부에서 서비스 주체는 논리 앱 인스턴스와 이름이 같습니다.Inside the Azure AD tenant, the service principal has the same name as the logic app instance.

리소스에 id 액세스 권한 부여Give identity access to resources

논리 앱에 대 한 관리 id를 설정한 후에 는 해당 id에 다른 Azure 리소스에대 한 액세스 권한을 제공할 수 있습니다.After you set up a managed identity for your logic app, you can give that identity access to other Azure resources. 그런 다음 인증에 해당 id를 사용할 수 있습니다.You can then use that identity for authentication.

  1. Azure Portal에서 관리 id를 액세스할 수 있도록 하려는 Azure 리소스로 이동 합니다.In the Azure portal, go to the Azure resource where you want your managed identity to have access.

  2. 리소스 메뉴에서 액세스 제어 (IAM) > 역할 할당 을 선택 하 여 해당 리소스에 대 한 현재 역할 할당을 검토할 수 있습니다.From the resource's menu, select Access control (IAM) > Role assignments where you can review the current role assignments for that resource. 도구 모음에서 추가 > 역할 할당 추가를 선택 합니다.On the toolbar, select Add > Add role assignment.

    "추가" > "역할 할당 추가"를 선택 합니다.

    역할 할당 추가 옵션이 사용 하지 않도록 설정 된 경우에는 대부분 권한이 없을 가능성이 높습니다.If the Add role assignment option is disabled, you most likely don't have permissions. 리소스의 역할을 관리할 수 있는 권한에 대 한 자세한 내용은 Azure Active Directory의 관리자 역할 권한을 참조 하세요.For more information about the permissions that let you manage roles for resources, see Administrator role permissions in Azure Active Directory.

  3. 역할 할당 추가에서 대상 리소스에 대 한 필요한 액세스 권한을 id에 부여 하는 역할 을 선택 합니다.Under Add role assignment, select a Role that gives your identity the necessary access to the target resource.

    이 항목의 예에서는 id에 Azure Storage 컨테이너의 blob에 액세스할 수 있는 역할이필요 합니다.For this topic's example, your identity needs a role that can access the blob in an Azure Storage container:

    "저장소 Blob 데이터 참가자" 역할을 선택 합니다.

  4. 다음에 대한 액세스 할당 상자에서 Azure AD 사용자, 그룹 또는 서비스 보안 주체를 선택합니다.In the Assign access to box, select Azure AD user, group, or service principal.

    시스템 할당 id에 대 한 액세스 선택

  5. 선택 상자에서 논리 앱을 찾아 선택 합니다.In the Select box, find and select your logic app.

    시스템 할당 id에 대 한 논리 앱 선택

  6. 완료되면 저장을 선택합니다.When you're done, select Save.

    이제 대상 리소스의 역할 할당 목록에 선택한 관리 되는 id와 역할이 표시 됩니다.The target resource's role assignments list now shows the selected managed identity and role.

    대상 리소스에 관리 되는 id 및 역할을 추가 했습니다.

  7. 이제 관리 되는 id를 지 원하는 트리거 또는 작업에서 id를 사용 하 여 액세스를 인증 하는 단계 를 수행 합니다.Now follow the steps to authenticate access with the identity in a trigger or action that supports managed identities.

관리 id를 사용 하 여 액세스 인증Authenticate access with managed identity

논리 앱에 관리 되는 id를 사용 하도록 설정 하 고 해당 id에 대상 리소스나 엔터티에대 한 액세스 권한을 부여 하 고 나면 관리 되는 id를 지 원하는 트리거와 작업에서 해당 id를 사용할 수 있습니다.After you enable the managed identity for your logic app and give that identity access to the target resource or entity, you can use that identity in triggers and actions that support managed identities.

중요

시스템이 할당 한 id를 사용 하려는 Azure 함수가 있는 경우 먼저 azure 기능에 대해 인증을 사용 하도록 설정합니다.If you have an Azure function where you want to use the system-assigned identity, first enable authentication for Azure functions.

다음 단계에서는 Azure Portal을 통해 트리거 또는 작업에 관리 되는 id를 사용 하는 방법을 보여 줍니다.These steps show how to use the managed identity with a trigger or action through the Azure portal. 트리거 또는 작업의 기본 JSON 정의에서 관리 되는 id를 지정 하려면 관리 id 인증을 참조 하세요.To specify the managed identity in a trigger or action's underlying JSON definition, see Managed identity authentication.

  1. Azure Portal의 Logic Apps 디자이너에서 논리 앱을 엽니다.In the Azure portal, open your logic app in the Logic App Designer.

  2. 아직 수행 하지 않은 경우 관리 되는 id를 지 원하는 트리거 또는 작업을 추가 합니다.If you haven't done so yet, add the trigger or action that supports managed identities.

    예를 들어, HTTP 트리거 또는 작업은 논리 앱에 대해 사용 하도록 설정 된 시스템 할당 id를 사용할 수 있습니다.For example, the HTTP trigger or action can use the system-assigned identity that you enabled for your logic app. 일반적으로 HTTP 트리거 또는 작업은 이러한 속성을 사용 하 여 액세스 하려는 리소스나 엔터티를 지정 합니다.In general, the HTTP trigger or action uses these properties to specify the resource or entity that you want to access:

    자산Property 필수Required 설명Description
    메서드Method yesYes 실행 하려는 작업에서 사용 하는 HTTP 메서드입니다.The HTTP method that's used by the operation that you want to run
    URIURI yesYes 대상 Azure 리소스 또는 엔터티에 액세스 하기 위한 끝점 URL입니다.The endpoint URL for accessing the target Azure resource or entity. URI 구문은 일반적으로 Azure 리소스 또는 서비스에 대 한 리소스 ID 를 포함 합니다.The URI syntax usually includes the resource ID for the Azure resource or service.
    헤더Headers 아닙니다.No 필요한 모든 헤더 값 (예: 콘텐츠 형식)을 보내는 요청에 포함 하려고 합니다.Any header values that you need or want to include in the outgoing request, such as the content type
    쿼리Queries 아닙니다.No 특정 작업에 대 한 매개 변수 또는 실행 하려는 작업의 API 버전 등 요청에 포함 하려는 모든 쿼리 매개 변수Any query parameters that you need or want to include in the request, such as the parameter for a specific operation or the API version for the operation that you want to run
    인증Authentication yesYes 대상 리소스 또는 엔터티에 대 한 액세스를 인증 하는 데 사용할 인증 유형입니다.The authentication type to use for authenticating access to the target resource or entity

    특정 한 예로, 이전에 id에 대 한 액세스를 설정한 Azure Storage 계정의 blob에 대해 스냅숏 blob 작업 을 실행 하려고 한다고 가정 합니다.As a specific example, suppose that you want to run the Snapshot Blob operation on a blob in the Azure Storage account where you previously set up access for your identity. 그러나 Azure Blob Storage 커넥터 는 현재이 작업을 제공 하지 않습니다.However, the Azure Blob Storage connector doesn't currently offer this operation. 대신 HTTP 동작 또는 다른 Blob Service REST API 작업을 사용 하 여이 작업을 실행할 수 있습니다.Instead, you can run this operation by using the HTTP action or another Blob Service REST API operation.

    중요

    HTTP 요청 및 관리 되는 id를 사용 하 여 방화벽 뒤에 있는 Azure 저장소 계정에 액세스 하려면 신뢰할 수 있는 Microsoft 서비스의 액세스를 허용 하는 예외를 사용 하 여 저장소 계정도 설정 해야 합니다.To access Azure storage accounts behind firewalls by using HTTP requests and managed identities, make sure that you also set up your storage account with the exception that allows access by trusted Microsoft services.

    Blob 스냅숏 작업을 실행 하려면 HTTP 동작에서 다음 속성을 지정 합니다.To run the Snapshot Blob operation, the HTTP action specifies these properties:

    자산Property 필수Required 예제 값Example value 설명Description
    메서드Method yesYes PUT 스냅숏 Blob 작업에서 사용 하는 HTTP 메서드입니다.The HTTP method that the Snapshot Blob operation uses
    URIURI yesYes https://{storage-account-name}.blob.core.windows.net/{blob-container-name}/{folder-name-if-any}/{blob-file-name-with-extension} 이 구문을 사용 하는 Azure 전역 (공용) 환경의 Azure Blob Storage 파일에 대 한 리소스 ID입니다.The resource ID for an Azure Blob Storage file in the Azure Global (public) environment, which uses this syntax
    헤더Headers 예, Azure StorageYes, for Azure Storage x-ms-blob-type = BlockBlob

    x-ms-version = 2019-02-02

    Azure Storage 작업에 필요한 x-ms-blob-typex-ms-version 헤더 값입니다.The x-ms-blob-type and x-ms-version header values that are required for Azure Storage operations.

    중요: Azure Storage에 대 한 나가는 HTTP 트리거와 작업 요청에서 헤더에는 실행할 작업에 대 한 x-ms-version 속성 및 API 버전이 필요 합니다.Important: In outgoing HTTP trigger and action requests for Azure Storage, the header requires the x-ms-version property and the API version for the operation that you want to run.

    자세한 내용은 다음 항목을 참조하세요.For more information, see these topics:

    - 요청 헤더-스냅숏 Blob- Request headers - Snapshot Blob
    Azure Storage 서비스에 대 한 - 버전 관리- Versioning for Azure Storage services

    쿼리Queries 예 (이 작업의 경우)Yes, for this operation comp = snapshot Snapshot Blob 작업에 대 한 쿼리 매개 변수 이름 및 값입니다.The query parameter name and value for the Snapshot Blob operation.
    인증Authentication yesYes Managed Identity Azure blob에 대 한 액세스를 인증 하는 데 사용할 인증 유형입니다.The authentication type to use for authenticating access to the Azure blob

    다음은 이러한 모든 속성 값을 보여 주는 예제 HTTP 동작입니다.Here is the example HTTP action that shows all these property values:

    HTTP 작업을 추가 하 여 Azure 리소스에 액세스

    사용 가능한 모든 Azure REST API 작업에 대 한 자세한 내용은 azure REST API 참조를 참조 하세요.For more information about all the available Azure REST API operations, see the Azure REST API Reference.

  3. 인증 목록에서 관리 ID를 선택합니다.From the Authentication list, select Managed Identity. 인증 속성이 지원 되지만 숨겨진 경우에는 새 매개 변수 추가 목록을 열고 인증을 선택 합니다.If the Authentication property is supported but hidden, open the Add new parameter list, and select Authentication.

    참고

    모든 트리거 및 동작을 통해 인증 유형을 선택할 수 있는 것은 아닙니다.Not all triggers and actions let you select an authentication type. 자세한 내용은 아웃 바운드 호출에 인증 추가를 참조 하세요.For more information, see Add authentication to outbound calls.

    "인증" 속성에서 "관리 되는 Id"를 선택 합니다.

  4. 관리 id를 선택 하면 일부 트리거 및 작업에 대 한 대상 속성이 표시 됩니다.After you select Managed Identity, the Audience property appears for some triggers and actions. 대상 속성이 지원 되지만 숨겨진 경우 새 매개 변수 추가 목록을 열고 대상 그룹을 선택 합니다.If the Audience property is supported but hidden, open the Add new parameter list, and select Audience.

  5. 대상 리소스 또는 서비스에 대 한 리소스 ID로 대상 값을 설정 했는지 확인 합니다.Make sure that you set the Audience value to the resource ID for the target resource or service. 그렇지 않은 경우 기본적으로 대상 속성은 Azure Resource Manager에 대 한 리소스 id 인 https://management.azure.com/ 리소스 id를 사용 합니다.Otherwise, by default, the Audience property uses the https://management.azure.com/ resource ID, which is the resource ID for Azure Resource Manager.

    중요

    대상 리소스 ID가 필요한 후행 슬래시를 포함 하 여 Azure Active Directory (AD)가 예상 하는 값 과 정확 하 게 일치 하는지 확인 합니다.Make sure that the target resource ID exactly matches the value that Azure Active Directory (AD) expects, including any required trailing slashes. 예를 들어 모든 Azure Blob Storage 계정에 대 한 리소스 ID는 후행 슬래시가 필요 합니다.For example, the resource ID for all Azure Blob Storage accounts requires a trailing slash. 그러나 특정 저장소 계정에 대 한 리소스 ID는 후행 슬래시가 필요 하지 않습니다.However, the resource ID for a specific storage account doesn't require a trailing slash. AZURE AD를 지 원하는 azure 서비스의 리소스 id를 확인 합니다.Check the resource IDs for the Azure services that support Azure AD.

    이 예제에서는 인증에 사용 되는 액세스 토큰이 모든 저장소 계정에 대해 유효 하도록 대상 속성을 https://storage.azure.com/로 설정 합니다.This example sets the Audience property to https://storage.azure.com/ so that the access tokens used for authentication are valid for all storage accounts. 그러나 특정 저장소 계정에 대 한 루트 서비스 URL https://fabrikamstorageaccount.blob.core.windows.net를 지정할 수도 있습니다.However, you can also specify the root service URL, https://fabrikamstorageaccount.blob.core.windows.net, for a specific storage account.

    "대상" 속성에서 대상 리소스 ID 지정

    Azure Storage Azure AD를 사용 하 여 액세스 권한을 부여 하는 방법에 대 한 자세한 내용은 다음 항목을 참조 하세요.For more information about authorizing access with Azure AD for Azure Storage, see these topics:

시스템 할당 id 제거Remove system-assigned identity

논리 앱에 대 한 시스템 할당 id 사용을 중지 하려면 다음 옵션을 사용할 수 있습니다.To stop using the system-assigned identity for your logic app, you have these options:

논리 앱을 삭제 하는 경우 Azure는 Azure AD에서 관리 되는 id를 자동으로 제거 합니다.If you delete your logic app, Azure automatically removes the managed identity from Azure AD.

Azure Portal에서 시스템 할당 id 제거Remove system-assigned identity in the Azure portal

Azure Portal에서 시스템 할당 id를 논리 앱에서 제거 하 고 대상 리소스에서id의 액세스를 제거 합니다.In the Azure portal, remove the system-assigned identity from your logic app and that identity's access from your target resource.

논리 앱에서 시스템 할당 id 제거Remove system-assigned identity from logic app

  1. Azure Portal의 논리 앱 디자이너에서 논리 앱을 엽니다.In the Azure portal, open your logic app in Logic App Designer.

  2. 논리 앱 메뉴의 설정에서 id > 시스템이 할당 됨을 선택 합니다.On the logic app menu, under Settings, select Identity > System assigned. 상태에서 끄기 를 선택 하 > 저장 > 를 선택 합니다.Under Status, select Off > Save > Yes.

    시스템 할당 id 사용 중지

리소스에서 id 액세스 제거Remove identity access from resources

  1. Azure Portal에서 관리 되는 id에 대 한 액세스를 제거 하려는 대상 Azure 리소스로 이동 합니다.In the Azure portal, go to the target Azure resource where you want to remove access for a managed identity.

  2. 대상 리소스의 메뉴에서 Access control (IAM) 을 선택 합니다.From the target resource's menu, select Access control (IAM). 도구 모음에서 역할 할당을 선택 합니다.Under the toolbar, select Role assignments.

  3. 역할 목록에서 제거 하려는 관리 되는 id를 선택 합니다.In the roles list, select the managed identities that you want to remove. 도구 모음에서 제거를 선택 합니다.On the toolbar, select Remove.

    제거 옵션을 사용 하지 않도록 설정 하면 사용 권한이 없는 것입니다.If the Remove option is disabled, you most likely don't have permissions. 리소스의 역할을 관리할 수 있는 권한에 대 한 자세한 내용은 Azure Active Directory의 관리자 역할 권한을 참조 하세요.For more information about the permissions that let you manage roles for resources, see Administrator role permissions in Azure Active Directory.

이제 관리 되는 id가 제거 되 고 더 이상 대상 리소스에 대 한 액세스 권한이 없습니다.The managed identity is now removed and no longer has access to the target resource.

Azure Resource Manager 템플릿에서 관리 되는 id 사용 안 함Disable managed identity in Azure Resource Manager template

Azure Resource Manager 템플릿을 사용 하 여 논리 앱의 시스템 관리 id를 사용 하도록 설정한 경우 identity 개체의 type 자식 속성을 None로 설정 합니다.If you enabled the logic app's system-managed identity by using an Azure Resource Manager template, set the identity object's type child property to None. 또한이 작업은 Azure AD에서 시스템 관리 id의 보안 주체 ID를 삭제 합니다.This action also deletes the principal ID for the system-managed identity from Azure AD.

"identity": {
   "type": "None"
}

다음 단계Next steps