Azure 리소스용 관리 ID란?What are managed identities for Azure resources?

Azure 리소스에 대한 관리 ID는 Azure Active Directory의 기능입니다.Managed identities for Azure resources is a feature of Azure Active Directory. Azure 리소스에 대한 관리 ID를 지원하는 각 Azure 서비스는 자체 타임라인을 따릅니다.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. 시작하기 전에 리소스의 관리 ID 가용성 상태와 알려진 문제를 검토하세요.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

클라우드 애플리케이션을 빌드할 때 일반적으로 직면하는 난관 중 하나는 코드에서 클라우드 서비스에 인증하는 데 사용되는 자격 증명을 관리하는 방법입니다.A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. 자격 증명을 안전하게 보호하는 것이 중요합니다.Keeping the credentials secure is an important task. 자격 증명이 개발자 워크스테이션에 표시되지 않고 소스 제어에 체크 인되지 않는 것이 가장 좋습니다.Ideally, the credentials never appear on developer workstations and aren't checked into source control. Azure Key Vault를 사용하면 자격 증명, 비밀 및 기타 키를 안전하게 저장할 수 있지만, 자격 증명/키/비밀을 검색하려면 코드가 Key Vault에 인증해야 합니다.Azure Key Vault provides a way to securely store credentials, secrets, and other keys, but your code has to authenticate to Key Vault to retrieve them.

Azure AD(Azure Active Directory)의 Azure 리소스에 대한 관리 ID 기능은 이 문제를 해결합니다.The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. 이 기능은 Azure AD에서 자동으로 관리되는 ID를 Azure 서비스에 제공합니다.The feature provides Azure services with an automatically managed identity in Azure AD. 이 ID를 사용하면 Key Vault를 비롯하여 Azure AD 인증을 지원하는 모든 서비스에 인증할 수 있으므로 코드에 자격 증명이 필요 없습니다.You can use the identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without any credentials in your code.

Azure 리소스에 대한 관리 ID 기능은 Azure 구독용 Azure AD에 무료로 제공됩니다.The managed identities for Azure resources feature is free with Azure AD for Azure subscriptions. 추가 비용은 없습니다.There's no additional cost.

참고

Azure 리소스에 대한 관리 ID는 이전에 MSI(관리 서비스 ID)로 알려진 서비스에 대한 새 이름입니다.Managed identities for Azure resources is the new name for the service formerly known as Managed Service Identity (MSI).

용어Terminology

다음 용어는 Azure 리소스 문서 세트의 관리 ID 전체에서 사용됩니다.The following terms are used throughout the managed identities for Azure resources documentation set:

  • 클라이언트 ID - 초기 프로비저닝 중에 애플리케이션과 서비스 주체에 연결된, Azure AD에서 생성된 고유 식별자입니다.Client ID - a unique identifier generated by Azure AD that is tied to an application and service principal during its initial provisioning.
  • 보안 주체 ID - Azure 리소스에 대한 역할 기반 액세스 권한을 부여하는 데 사용되는 관리 ID에 대한 서비스 주체 개체의 개체 ID입니다.Principal ID - the object ID of the service principal object for your managed identity that is used to grant role-based access to an Azure resource.
  • IMDS(Azure Instance Metadata Service) - Azure Resource Manager를 통해 생성된 모든 IaaS VM에서 액세스할 수 있는 REST 엔드포인트입니다.Azure Instance Metadata Service (IMDS) - a REST endpoint accessible to all IaaS VMs created via the Azure Resource Manager. 이 엔드포인트는 VM 내에서만 액세스할 수 있는, 라우팅이 불가능한 잘 알려진 IP 주소(169.254.169.254)에서 사용할 수 있습니다.The endpoint is available at a well-known non-routable IP address (169.254.169.254) that can be accessed only from within the VM.

Azure 리소스에 대한 관리 ID는 어떻게 작동하나요?How does the managed identities for Azure resources work?

두 가지 종류의 관리 ID가 있습니다.There are two types of managed identities:

  • 시스템 할당 관리 ID는 Azure 서비스 인스턴스에서 직접 사용하도록 설정됩니다.A system-assigned managed identity is enabled directly on an Azure service instance. ID를 사용하도록 설정하면 Azure는 인스턴스의 구독에서 신뢰하는 Azure AD 테넌트에 인스턴스의 ID를 만듭니다.When the identity is enabled, Azure creates an identity for the instance in the Azure AD tenant that's trusted by the subscription of the instance. ID가 만들어지면 자격 증명이 인스턴스에 프로비전됩니다.After the identity is created, the credentials are provisioned onto the instance. 시스템 할당 ID의 수명 주기는 사용하도록 설정된 Azure 서비스 인스턴스와 직접적으로 연관됩니다.The lifecycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. 인스턴스가 삭제되면 Azure는 Azure AD에서 자격 증명과 ID를 자동으로 정리합니다.If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
  • 사용자 할당 관리 ID는 독립 실행형 Azure 리소스로 생성됩니다.A user-assigned managed identity is created as a standalone Azure resource. 만들기 프로세스를 통해 Azure는 사용 중인 구독에서 신뢰하는 Azure AD 테넌트에 ID를 만듭니다.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. 생성된 ID는 하나 이상의 Azure 서비스 인스턴스에 할당할 수 있습니다.After the identity is created, the identity can be assigned to one or more Azure service instances. 사용자 할당 ID의 수명 주기는 할당된 Azure 서비스 인스턴스의 수명 주기와 별도로 관리됩니다.The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned.

내부적으로 관리 ID는 Azure 리소스에만 사용할 수 있도록 잠긴 특별한 유형의 서비스 주체입니다.Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. 관리 ID가 삭제되면 해당하는 서비스 주체가 자동으로 제거됩니다.When the managed identity is deleted, the corresponding service principal is automatically removed. 또한 사용자 할당 ID 또는 시스템 할당 ID를 만들면 MSRP(관리 ID 리소스 공급자)에서 해당 ID에 내부적으로 인증서를 발급합니다.Also, when a User-Assigned or System-Assigned Identity is created, the Managed Identity Resource Provider (MSRP) issues a certificate internally to that identity.

코드가 관리 ID를 사용하여 Azure AD 인증을 지원하는 서비스용 액세스 토큰을 요청할 수 있습니다.Your code can use a managed identity to request access tokens for services that support Azure AD authentication. 서비스 인스턴스가 사용하는 자격 증명 롤링은 Azure에서 처리합니다.Azure takes care of rolling the credentials that are used by the service instance.

자격 증명 회전Credential Rotation

자격 증명 회전은 Azure 리소스를 호스트하는 리소스 공급자에 의해 제어됩니다.Credential rotation is controlled by the resource provider that hosts the Azure resource. 자격 증명의 기본 회전은 46일마다 발생합니다.The default rotation of the credential occurs every 46 days. 새 자격 증명을 요청하는 일은 리소스 공급자가 담당하므로 리소스 공급자는 46일 이상 기다릴 수 있습니다.It's up to the resource provider to call for new credentials, so the resource provider could wait longer than 46 days.

다음 다이어그램은 관리 서비스 ID가 Azure VM(가상 머신)에서 작동하는 방식을 보여줍니다.The following diagram shows how managed service identities work with Azure virtual machines (VMs):

관리 서비스 ID 및 Azure VM

속성Property 시스템 할당 관리 IDSystem-assigned managed identity 사용자 할당 관리 IDUser-assigned managed identity
만들기Creation Azure 리소스의 일부로 생성됨(예: Azure 가상 머신 또는 Azure App Service)Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) 독립 실행형 Azure 리소스로 생성됨Created as a stand-alone Azure resource
수명 주기Lifecycle 관리 ID를 만드는 데 사용된 Azure 리소스와 공유되는 수명 주기입니다.Shared lifecycle with the Azure resource that the managed identity is created with.
부모 리소스를 삭제하면 관리 ID도 삭제됩니다.When the parent resource is deleted, the managed identity is deleted as well.
독립적인 수명 주기입니다.Independent life-cycle.
명시적으로 삭제되어야 합니다.Must be explicitly deleted.
Azure 리소스 전체에서 공유Sharing across Azure resources 공유할 수 없습니다.Cannot be shared.
단일 Azure 리소스하고만 연결할 수 있습니다.It can only be associated with a single Azure resource.
공유할 수 있습니다.Can be shared
동일한 사용자 할당 관리 ID를 둘 이상의 Azure 리소스와 연결할 수 있습니다.The same user-assigned managed identity can be associated with more than one Azure resource.
일반 사용 예Common use cases 단일 Azure 리소스에 포함된 워크로드Workloads that are contained within a single Azure resource
독립적인 ID가 필요한 워크로드Workloads for which you need independent identities.
예를 들어 단일 가상 머신에서 실행되는 애플리케이션For example, an application that runs on a single virtual machine
여러 리소스에서 실행되며 단일 ID를 공유할 수 있는 워크로드입니다.Workloads that run on multiple resources and which can share a single identity.
프로비전 흐름에 보안 리소스 사전 승인이 필요한 워크로드입니다.Workloads that need pre-authorization to a secure resource as part of a provisioning flow.
리소스가 자주 재활용되지만 권한이 알관적으로 유지되어야 하는 워크로드입니다.Workloads where resources are recycled frequently, but permissions should stay consistent.
예를 들어 여러 가상 머신이 동일한 리소스에 액세스해야 하는 워크로드가 있습니다.For example, a workload where multiple virtual machines need to access the same resource

시스템 할당 관리 ID가 Azure VM에서 작동하는 방식How a system-assigned managed identity works with an Azure VM

  1. Azure Resource Manager가 VM에서 시스템 할당 관리 ID를 사용하도록 설정하라는 메시지를 받습니다.Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.

  2. Azure Resource Manager가 Azure AD에 VM ID에 대한 서비스 주체를 만듭니다.Azure Resource Manager creates a service principal in Azure AD for the identity of the VM. 서비스 주체는 구독이 신뢰하는 Azure AD 테넌트에 생성됩니다.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager는 Instance Metadata Service ID 엔드포인트를 서비스 주체 클라이언트 ID 및 인증서로 업데이트하여 VM에서 ID를 구성합니다.Azure Resource Manager configures the identity on the VM by updating the Azure Instance Metadata Service identity endpoint with the service principal client ID and certificate.

  4. VM에 ID가 생긴 후에는 서비스 주체 정보를 사용하여 Azure 리소스에 대한 VM 액세스 권한을 부여합니다.After the VM has an identity, use the service principal information to grant the VM access to Azure resources. Azure Resource Manager를 호출하려면 Azure AD에서 RBAC(역할 기반 액세스 제어)를 사용하여 VM 서비스 주체에 적절한 역할을 할당합니다.To call Azure Resource Manager, use role-based access control (RBAC) in Azure AD to assign the appropriate role to the VM service principal. Key Vault를 호출하려면 Key Vault의 특정 비밀 또는 키에 대한 액세스 권한을 코드에 부여합니다.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

  5. VM에서 실행되는 코드는 Azure Instance Metadata Service 엔드포인트에서 토큰(http://169.254.169.254/metadata/identity/oauth2/token)을 요청할 수 있으며, VM 내에서만 액세스할 수 있습니다.Your code that's running on the VM can request a token from the Azure Instance Metadata service endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • 리소스 매개 변수가 토큰을 보낼 대상 서비스를 지정합니다.The resource parameter specifies the service to which the token is sent. Azure Resource Manager에 인증하려면 resource=https://management.azure.com/을 사용합니다.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • API 버전 매개 변수는 IMDS 버전을 지정하고, api-version=2018-02-01 이상을 사용합니다.API version parameter specifies the IMDS version, use api-version=2018-02-01 or greater.
  6. 3단계에서 구성한 클라이언트 ID 및 인증서를 사용하여 5단계에서 지정한 대로 액세스 토큰을 요청하는 Azure AD에 대한 호출이 생성됩니다.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD가 JWT(JSON Web Token) 액세스 토큰을 반환합니다.Azure AD returns a JSON Web Token (JWT) access token.

  7. 코드가 Azure AD 인증을 지원하는 서비스에 대한 호출에서 액세스 토큰을 전송합니다.Your code sends the access token on a call to a service that supports Azure AD authentication.

사용자 할당 관리 ID가 Azure VM에서 작동하는 방식How a user-assigned managed identity works with an Azure VM

  1. Azure Resource Manager가 사용자 할당 관리 ID를 만들라는 요청을 받습니다.Azure Resource Manager receives a request to create a user-assigned managed identity.

  2. Azure Resource Manager가 Azure AD에 사용자 할당 관리 ID에 대한 서비스 주체를 만듭니다.Azure Resource Manager creates a service principal in Azure AD for the user-assigned managed identity. 서비스 주체는 구독이 신뢰하는 Azure AD 테넌트에 생성됩니다.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager는 VM에서 사용자 할당 관리 ID를 구성하라는 요청을 받고 사용자 할당 관리 ID 서비스 주체 클라이언트 ID 및 인증서로 Azure Instance Metadata Service ID 엔드포인트를 업데이트합니다.Azure Resource Manager receives a request to configure the user-assigned managed identity on a VM and updates the Azure Instance Metadata Service identity endpoint with the user-assigned managed identity service principal client ID and certificate.

  4. 사용자 할당 관리 ID가 생성된 후에는 서비스 주체 정보를 사용하여 Azure 리소스에 대한 ID 액세스 권한을 부여합니다.After the user-assigned managed identity is created, use the service principal information to grant the identity access to Azure resources. Azure Resource Manager를 호출하려면 Azure AD에서 RBAC를 사용하여 사용자 할당 ID의 서비스 주체에 적절한 역할을 할당합니다.To call Azure Resource Manager, use RBAC in Azure AD to assign the appropriate role to the service principal of the user-assigned identity. Key Vault를 호출하려면 Key Vault의 특정 비밀 또는 키에 대한 액세스 권한을 코드에 부여합니다.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

    참고

    이 단계를 3단계 전에 수행할 수도 있습니다.You can also do this step before step 3.

  5. VM에서 실행되는 코드는 Azure Instance Metadata Service ID 엔드포인트에서 토큰(http://169.254.169.254/metadata/identity/oauth2/token)을 요청할 수 있으며, VM 내에서만 액세스할 수 있습니다.Your code that's running on the VM can request a token from the Azure Instance Metadata Service identity endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • 리소스 매개 변수가 토큰을 보낼 대상 서비스를 지정합니다.The resource parameter specifies the service to which the token is sent. Azure Resource Manager에 인증하려면 resource=https://management.azure.com/을 사용합니다.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • 클라이언트 ID 매개 변수는 토큰이 요청되는 ID를 지정합니다.The client ID parameter specifies the identity for which the token is requested. 이 값은 단일 VM에 사용자 할당 ID가 두 개 이상 있을 때 분명히 하기 위해 필요합니다.This value is required for disambiguation when more than one user-assigned identity is on a single VM.
    • API 버전 매개 변수는 Azure Instance Metadata Service 버전을 지정합니다.The API version parameter specifies the Azure Instance Metadata Service version. api-version=2018-02-01 이상을 사용하세요.Use api-version=2018-02-01 or higher.
  6. 3단계에서 구성한 클라이언트 ID 및 인증서를 사용하여 5단계에서 지정한 대로 액세스 토큰을 요청하는 Azure AD에 대한 호출이 생성됩니다.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD가 JWT(JSON Web Token) 액세스 토큰을 반환합니다.Azure AD returns a JSON Web Token (JWT) access token.

  7. 코드가 Azure AD 인증을 지원하는 서비스에 대한 호출에서 액세스 토큰을 전송합니다.Your code sends the access token on a call to a service that supports Azure AD authentication.

Azure 리소스에 대한 관리 ID를 사용하는 방법How can I use managed identities for Azure resources?

관리 ID를 사용하여 Azure 리소스에 액세스하는 방법을 알아보려면 다음 자습서를 진행하세요.To learn how to use managed identities to access different Azure resources, try these tutorials.

참고

몇 가지 지원되는 시나리오의 자세한 비디오 연습을 비롯한 관리 ID에 대한 자세한 내용은 Microsoft Azure 리소스에 대한 관리 ID 구현 과정을 확인하세요.Check out the Implementing Managed Identities for Microsoft Azure Resources course for more information about managed identities, including detailed video walkthroughs of several supported scenarios.

Windows VM에서 관리 ID를 사용하는 방법:Learn how to use a managed identity with a Windows VM:

Linux VM에서 관리 ID를 사용하는 방법:Learn how to use a managed identity with a Linux VM:

다른 Azure 서비스에서 관리 ID를 사용하는 방법:Learn how to use a managed identity with other Azure services:

Azure 서비스에서 어떤 기능을 지원하나요?What Azure services support the feature?

Azure 리소스에 대한 관리 ID는 Azure AD 인증을 지원하는 서비스를 인증하는 데 사용할 수 있습니다.Managed identities for Azure resources can be used to authenticate to services that support Azure AD authentication. Azure 리소스에 대한 관리 ID 기능을 지원하는 Azure 서비스 목록은 Azure 리소스에 대한 관리 ID를 지원하는 서비스를 참조하세요.For a list of Azure services that support the managed identities for Azure resources feature, see Services that support managed identities for Azure resources.

다음 단계Next steps

다음 빠른 시작으로 Azure 리소스에 대한 관리 ID 기능을 시작하세요.Get started with the managed identities for Azure resources feature with the following quickstarts: