Azure DevOps의 Pipeline을 구축하다보면 Azure Service와 연결을 해야하는 경우가 있습니다.
예를들어 Azure Pipeline에서 빌드 후 애플리케이션을 배포할 때 배포 대상이 Azure Service(예: AKS, AppService)인 경우 Azure DevOps와 Azure Service간의 Service Connection이 필요합니다.
Service Connection을 위해서는 여러 인증 방식으로 인증 절차를 거쳐 연결이 가능합니다.
인증 방식은 App Registration, Managed Identity, Public Profile 방식이 있는데 여기서는 App Registration에 대해서 자세히 설명하도록 하겠습니다.
App Registration ?
앱 등록은 Microsoft Entra ID에서 애플리케이션을 등록하고 ID를 부여하는 프로세스입니다. 이를 통해 애플리케이션은 Entra ID를 인증 및 권한 부여 서비스로 사용할 수 있게 됩니다.
※ 새로운 앱 등록을 하기 위해서는 Entra ID의 적절한 권한이 필요합니다.
최소 필요 권한은 : Application Developer입니다.

Service Connection App Registration
Azure DevOps Service connection App Registration에서는 두가지 인증 방식이 있습니다.
Secret을 통한 인증 방식과, Workload ID Federation 인증 방식이 있습니다.
두 인증 방식은 어떻게 다른것일까 ?
1. Secret
먼저, Secret 방식의 경우 앱 등록 인증 절차를 Secret 기반으로 진행합니다.
Entra ID >> App 등록 >> 인증서 및 암호 >> Client Secret에서 직접 생성하셔야합니다.
Secret의 경우 만료 기간과, 특정 Secret 값이 생성되게 됩니다.

간단한 App Registration Secret 인증 방식 절차 입니다.

1. Entra ID에 앱등록을 진행하면서 클라이언트 비밀을 생헝합니다.
2. Azure DevOps에서 Service Connection을 진행할때 인증 방식을 Secret을 선택하여 진행합니다. 해당 시크릿 기반으로 Pipeline에서 Azure Service에 연결할 수 있도록 합니다.

3. Pipelien을 동작시키기 위해 시크릿 값 기반으로 Entra ID에 Access Token을 요청합니다.
4. Entra ID는 앱 등록 시크릿 값으로 유효성 검사를 진행하고 Access Token을 반환합니다.
5. 반환 받은 Access Token 값 기반으로 Azure Service에 연결이 가능하게 됩니다.
이 경우, Client Secret 이 만료되게 되면 새로 발급을 진행해야합니다. 그러므로 테스트용도로 사용하기에 적합합니다.
이러한 상황을 해결하기 위해서는 Federation 자격 증명 방식이 있습니다.
2. Workload ID Federation
Workload ID Federation이란, 비밀 키나 암호 없이 서로 다른 시스템간에 신뢰를 설정하여 인증하는 방식입니다.
OIDC(Open ID Connect) 프로토콜 기반으로 인증됩니다.
Federation 인증은 별도의 만료기간은 없고 Entra ID에서 인증이 진행됩니다.
vstoken.dev.azure.com이 발급주체가 되며 Azure DevOps의 OIDC 토큰 발급 URL입니다. 이 엔드포인트는 Azure DevOps Pipeline의 ID를 증명하기 위한 신뢰할 수 있는 토큰을 발행합니다.
간단한 App Registration Workload ID Federation 인증 절차입니다.

1. 파이프라인이 고유 ID를 가지고 OIDC 토큰을 생성합니다. 생성할때 vstoken.dev.azure.com 발급 주체를 통해서 발급되고 성명됩니다.

2. 발급 받은 ID를 통해 Entra ID에서 앱 등록에 Ferderation 기반으로 등록이 됩니다.
3. Entra ID는 해당 ID 유효성 검사를 진행합니다.
4. 유효성 검사를 통해서 Access Toekn이 발급되게 됩니다.
5. 발급 받은 Access Token을 통해서 Azure 서비스에 연결되게 됩니다.
이 경우, Secret과 같이 만료기간이 있는것이 아니고 노출되지 않기 때문에 서명된 토큰을 사용하여 안전하게 ID를 증명하고 인증할 수 있게 됩니다.
※ 새로운 앱 등록이 힘든 경우, Azure Managed Identity 방식을 통해 Entra ID 인증을 받아 Azure 서비스와 연결을 할 수있습니다.
'Azure' 카테고리의 다른 글
| [Azure] Ingress Controller (0) | 2025.05.19 |
|---|---|
| [Azure] Azure Kubernetes Service Networking Model (0) | 2025.05.15 |
| Azure Monitoring Agent 인증 및 권한 부여 프로세스 (9) | 2025.04.01 |
| AKS Monitoring with Prometheus, Grafana and Log Analytics (0) | 2025.03.28 |
| Azure Kubernetes Service Logging with Log Analytics (0) | 2025.03.25 |