개발자의 일반적인 과제는 서비스 간의 통신을 보호하는 데 사용되는 비밀, 자격 증명, 인증서 및 키를 관리하는 것입니다. 비밀 및 인증서의 수동 처리는 보안 문제 및 중단의 알려진 소스입니다. 관리 ID를 통해 개발자는 이러한 자격 증명을 관리할 필요가 없습니다. 애플리케이션은 자격 증명을 관리할 필요 없이 관리 ID를 사용하여 Microsoft Entra 토큰을 가져올 수 있습니다.
관리 ID란?
크게 보면 인간 ID와 머신/비인간 ID의 두 종류 ID가 있습니다. 머신/비인간 ID는 디바이스 및 워크로드 ID로 구성됩니다. Microsoft Entra에서 워크로드 ID는 애플리케이션, 서비스 사용자 및 관리 ID입니다. 워크로드 ID에 대한 자세한 내용은 워크로드 ID를 참조하세요.
관리 ID는 Azure 컴퓨팅 리소스(VM(Virtual Machine), VMSS(Virtual Machine Scale Set), Service Fabric 클러스터, Azure Kubernetes 클러스터) 또는 Azure에서 지원하는 앱 호스팅 플랫폼에 할당할 수 있는 ID입니다. 관리 ID가 컴퓨팅 리소스에 할당되면 스토리지 계정, SQL 데이터베이스, CosmosDB 등과 같은 다운스트림 종속성 리소스에 액세스하도록 직접 또는 간접적으로 권한을 부여할 수 있습니다. 관리 ID는 액세스 키 또는 암호와 같은 비밀을 대체합니다. 또한 관리 ID는 서비스 대 서비스 종속성에 대한 인증서 또는 다른 형태의 인증을 대체할 수 있습니다.
다음 비디오에서는 관리 ID를 사용하는 방법을 보여줍니다.
관리 ID를 사용하는 경우 얻을 수 있는 몇 가지 혜택은 다음과 같습니다.
- 자격 증명을 관리할 필요가 없으며, 자격 증명에 액세스할 수도 없습니다.
- 관리 ID를 사용하면 자체 애플리케이션을 포함하여 Microsoft Entra 인증을 지원하는 모든 리소스에 인증할 수 있습니다.
- 관리 ID는 추가 비용 없이 사용할 수 있습니다.
관리 ID 유형
두 가지 종류의 관리 ID가 있습니다.
시스템에 의해 할당됨 가상 머신과 같은 일부 Azure 리소스를 사용하면 리소스에서 직접 관리 ID를 사용하도록 설정할 수 있습니다. 시스템 할당 관리 ID를 사용하도록 설정하는 경우:
- 특별한 유형의 서비스 주체가 Microsoft Entra ID에서 해당 ID를 위해 만들어집니다. 서비스 주체는 해당 Azure 리소스의 수명 주기에 연결됩니다. Azure 리소스를 삭제하면 Azure가 자동으로 사용자를 대신하여 서비스 주체를 삭제합니다.
- 의도적으로 해당 Azure 리소스만 이 ID를 사용하여 Microsoft Entra ID에서 토큰을 요청할 수 있습니다.
- 관리 ID에 하나 이상의 서비스에 대한 액세스 권한을 부여합니다.
- 시스템 할당 서비스 주체의 이름은 항상 생성된 Azure 리소스의 이름과 동일합니다. 배포 슬롯의 시스템 할당 관리 ID의 이름은
<app-name>/slots/<slot-name>
입니다.
사용자 할당. 관리 ID를 독립 실행형 Azure 리소스로 만들 수도 있습니다. 사용자 할당 관리 ID를 만들고 하나 이상의 Azure 리소스에 할당할 수 있습니다. 사용자 할당 관리 ID를 사용하도록 설정하는 경우:
- 특별한 유형의 서비스 주체가 Microsoft Entra ID에서 해당 ID를 위해 만들어집니다. 서비스 주체는 서비스 주체를 사용하는 리소스와 별도로 관리됩니다.
- 사용자 할당 관리 ID는 여러 리소스에서 사용할 수 있습니다.
- 관리 ID에 하나 이상의 서비스에 대한 액세스 권한을 부여합니다.
컴퓨팅과 독립적으로 프로비전되고 여러 컴퓨팅 리소스에 할당할 수 있는 사용자 할당 관리 ID는 Microsoft 서비스에 권장되는 관리 ID 유형입니다.
시스템 할당 관리 ID를 지원하는 리소스를 통해 다음 작업을 수행할 수 있습니다.
- 리소스 수준에서 관리 ID를 사용하거나 사용하지 않도록 설정합니다.
- RBAC(역할 기반 액세스 제어)를 사용하여 권한을 부여합니다.
- Azure 활동 로그에서 CRUD(만들기, 읽기, 업데이트, 삭제) 작업을 봅니다.
- Microsoft Entra ID 로그인 로그에서 로그인 작업을 확인합니다.
대신 사용자 할당 관리 ID를 선택하는 경우:
- ID를 만들고, 읽고, 업데이트하고, 삭제할 수 있습니다.
- RBAC 역할 할당을 사용하여 권한을 부여할 수 있습니다.
- 사용자 할당 관리 ID는 둘 이상의 리소스에서 사용할 수 있습니다.
- CRUD 작업은 Azure 활동 로그에서 검토할 수 있습니다.
- Microsoft Entra ID 로그인 로그에서 로그인 작업을 확인합니다.
Azure Resource Manager 템플릿, Azure Portal, Azure CLI, PowerShell 및 REST API를 사용하여 관리 ID에 대한 작업을 수행할 수 있습니다.
시스템 할당 및 사용자 할당 관리 ID 간의 차이점
속성 | 시스템 할당 관리 ID | 사용자 할당 관리 ID |
---|---|---|
생성 | Azure 리소스(예: Azure Virtual Machines 또는 Azure App Service)의 일부로 생성됩니다. | 독립 실행형 Azure 리소스로 생성됩니다. |
수명 주기 | 관리 ID를 만드는 데 사용된 Azure 리소스와 공유되는 수명 주기입니다. 부모 리소스를 삭제하면 관리 ID도 삭제됩니다. |
독립적인 수명 주기. 명시적으로 삭제되어야 합니다. |
Azure 리소스 전체에서 공유 | 공유할 수 없습니다. 단일 Azure 리소스하고만 연결할 수 있습니다. |
공유할 수 있습니다. 동일한 사용자 할당 관리 ID를 둘 이상의 Azure 리소스와 연결할 수 있습니다. |
일반 사용 예 | 단일 Azure 리소스 내에 포함된 워크로드입니다. 독립 ID가 필요한 워크로드입니다. 예를 들어 단일 가상 머신에서 실행되는 애플리케이션 |
여러 리소스에서 실행되며 단일 ID를 공유할 수 있는 워크로드입니다. 프로비저닝 흐름의 일부로 보안 리소스에 대한 사전 인증이 필요한 워크로드. 리소스가 자주 재활용되지만 권한이 알관적으로 유지되어야 하는 워크로드입니다. 예를 들어 여러 가상 머신이 동일한 리소스에 액세스해야 하는 워크로드가 있습니다. |
Azure 리소스에 대한 관리 ID를 사용하는 방법
아래 단계에 따라 관리 ID를 사용할 수 있습니다.
- Azure에서 관리 ID를 만듭니다. 시스템 할당 관리 ID 또는 사용자 할당 관리 ID 중에서 선택할 수 있습니다.
- 사용자 할당 관리 ID를 사용하는 경우 가상 머신, Azure Logic App 또는 Azure Web App과 같은 "원본" Azure 리소스에 관리 ID를 할당합니다.
- 관리 ID에 "대상" 서비스에 대한 액세스 권한을 부여합니다.
- 관리 ID를 사용하여 리소스에 액세스합니다. 이 단계에서는 Azure.Identity 라이브러리와 함께 Azure SDK를 사용할 수 있습니다. 일부 "원본" 리소스는 연결에 관리 ID를 사용하는 방법을 알고 있는 커넥터를 제공합니다. 이 경우 "원본" 리소스의 기능으로 ID를 사용할 수 있습니다.
이 기능을 지원하는 Azure 서비스는 무엇입니까?
Azure 리소스에 대한 관리 ID를 사용하여 Microsoft Entra 인증을 지원하는 서비스에 인증할 수 있습니다. 지원되는 Azure 서비스 목록은 Azure 리소스에 대한 관리 ID를 지원하는 서비스를 참조하세요.
관리되는 ID와 작업하기
관리 ID는 직접 또는 Microsoft Entra ID 애플리케이션에 대한 페더레이션 ID 자격 증명으로 사용할 수 있습니다.
관리 ID 사용과 관련된 단계는 다음과 같습니다.
- Azure에서 관리 ID를 만듭니다. 시스템 할당 관리 ID 또는 사용자 할당 관리 ID 중에서 선택할 수 있습니다. 사용자가 할당한 관리 ID를 사용하는 경우 가상 머신, Azure Logic App 또는 Azure Web App과 같은 원본 Azure 리소스에 관리 ID를 할당합니다.
- 관리 ID에 대상 서비스에 대한 액세스 권한을 부여합니다.
- 관리 ID를 사용하여 리소스에 액세스합니다. 이 단계에서는 클라이언트 라이브러리를 사용할 수 있습니다. 일부 원본 리소스는 연결에 관리 ID를 사용하는 방법을 알고 있는 커넥터를 제공합니다. 이 경우 ID를 해당 원본 리소스의 기능으로 사용합니다.
관리 ID를 직접 사용
Azure 컴퓨팅 리소스에서 실행되는 귀하의 서비스 코드는 MSAL(Microsoft 인증 라이브러리) 또는 Azure.Identity SDK를 사용하여 관리 ID로 지원되는 Entra ID에서 관리 ID 토큰을 가져옵니다. 이 토큰 획득에는 비밀이 필요하지 않으며 코드가 실행되는 환경에 따라 자동으로 인증됩니다. 관리 ID에 권한이 부여되는 한 서비스 코드는 Entra ID 인증을 지원하는 다운스트림 종속성에 액세스할 수 있습니다.
예를 들어 Azure VM(Virtual Machine)을 Azure Compute로 사용할 수 있습니다. 그런 다음 사용자 할당 관리 ID를 만들어 VM에 할당할 수 있습니다. 스토리지 계정에 액세스하기 위해 Azure.Identity(또는 MSAL) 및 Azure Storage 클라이언트 SDK를 사용하여 VM 인터페이스에서 실행되는 워크로드입니다. 사용자가 할당한 관리 ID는 스토리지 계정에 액세스할 수 있는 권한이 부여됩니다.
엔트라 ID 앱에서 관리 ID를 FIC(페더레이션 ID 자격 증명)로 사용
워크로드 ID 페더레이션을 사용하면 Entra ID 애플리케이션에서 인증서 또는 암호와 마찬가지로 관리 ID를 자격 증명으로 사용할 수 있습니다. Entra ID 앱이 필요할 때마다 자격 증명이 없는 것이 좋습니다. Entra ID 앱에서 관리 ID를 FIC로 사용하는 경우 20개의 FIC로 제한됩니다.
Entra ID 애플리케이션의 용량에서 작동하는 워크로드는 관리 ID가 있는 모든 Azure 컴퓨팅에서 호스트할 수 있습니다. 워크로드는 관리 ID를 사용하여 워크로드 ID 페더레이션을 통해 Entra ID 애플리케이션 토큰으로 교환할 토큰을 획득합니다. 이 기능은 관리 ID로도 알려져 있으며, FIC(페더레이션 ID 자격 증명)라고도 합니다. 자세한 내용은 관리 ID를 신뢰하도록 애플리케이션 구성을 참조하세요.
다음 단계
- 개발자 소개 및 지침
- VM 시스템 할당 관리 ID를 사용하여 Resource Manager에 액세스
- App Service 및 Azure Functions에 대한 관리 ID를 사용하는 방법
- Azure Container Instances에서 관리 ID를 사용하는 방법
- Microsoft Azure 리소스에 대한 관리 ID 구현
- 워크로드 ID 페더레이션을 관리 ID에 사용하여 비밀을 관리하지 않고 Microsoft Entra로 보호되는 리소스에 액세스하십시오.