Service Fabric에서 Azure에 관리 ID 사용

클라우드 애플리케이션을 빌드할 때 일반적인 문제는 원본 제어에 또는 개발자 워크스테이션에 로컬로 저장하지 않고 다양한 서비스에 대한 인증을 위해 코드에서 자격 증명을 안전하게 관리하는 방법입니다. Azure에 대한 관리 ID는 Microsoft Entra ID 내에서 자동으로 관리 ID를 제공하여 Microsoft Entra ID의 모든 리소스에 대해 이 문제를 해결합니다. 서비스의 ID를 사용하면 Key Vault를 비롯하여 Microsoft Entra 인증을 지원하는 모든 서비스에 인증할 수 있으므로 코드에 자격 증명을 저장하지 않아도 됩니다.

Azure 리소스에 대한 관리 ID는 Azure 구독용 Microsoft Entra ID에 무료로 제공됩니다. 추가 비용은 없습니다.

참고 항목

Azure에 대한 관리 ID는 이전 MSI(관리되는 서비스 ID) 서비스의 새 이름입니다.

개념

Azure에 대한 관리 ID는 다음과 같은 몇 가지 주요 개념을 기반으로 합니다.

  • 클라이언트 ID - 초기 프로비저닝 중에 애플리케이션과 서비스 주체에 연결된, Microsoft Entra ID에서 생성된 고유 식별자입니다(애플리케이션(클라이언트) ID도 참조).

  • 보안 주체 ID - Azure 리소스에 대한 역할 기반 액세스 권한을 부여하는 데 사용되는 관리 ID에 대한 서비스 주체 개체의 개체 ID입니다.

  • 서비스 주체 - 지정된 테넌트에서 Microsoft Entra 애플리케이션의 투영을 나타내는 Microsoft Entra 개체입니다(서비스 주체도 참조).

두 가지 종류의 관리 ID가 있습니다.

  • 시스템 할당 관리 ID는 Azure 서비스 인스턴스에서 직접 사용하도록 설정됩니다. 시스템 할당 ID의 수명 주기는 사용하도록 설정된 Azure 서비스 인스턴스에 대해 고유합니다.
  • 사용자 할당 관리 ID는 독립 실행형 Azure 리소스로 생성됩니다. ID는 하나 이상의 Azure 서비스 인스턴스에 할당될 수 있으며 해당 인스턴스의 수명 주기와 별도로 관리됩니다.

관리 ID 형식 간의 차이점을 자세히 이해하려면 Azure 리소스에 대한 관리 ID는 어떻게 작동하나요?를 참조하세요.

Service Fabric 애플리케이션에 지원되는 시나리오

Service Fabric에 대한 관리 ID는 Azure에 배포된 Service Fabric 클러스터에서만 지원되며 Azure 리소스로 배포된 애플리케이션에 대해서만 지원됩니다. Azure 리소스로 배포되지 않은 애플리케이션에는 ID를 할당할 수 없습니다. 개념적으로 말하면 Azure Service Fabric 클러스터에서 관리 ID에 대한 지원은 다음 두 단계로 구성됩니다.

  1. 하나 이상의 관리 ID를 애플리케이션 리소스에 할당합니다. 애플리케이션에는 단일 시스템 할당 ID 및/또는 최대 32개의 사용자 할당 ID가 각각 할당될 수 있습니다.

  2. 애플리케이션의 정의 내에서 애플리케이션에 할당된 ID 중 하나를 애플리케이션을 구성하는 개별 서비스에 매핑합니다.

애플리케이션의 시스템 할당 ID는 해당 애플리케이션에 대해 고유합니다. 사용자 할당 ID는 여러 애플리케이션에 할당될 수 있는 독립 실행형 리소스입니다. 애플리케이션 내에서 단일 ID (시스템 할당 또는 사용자 할당 여부)는 애플리케이션의 여러 서비스에 할당될 수 있지만 각 개별 서비스에는 하나의 ID만 할당할 수 있습니다. 마지막으로 이 기능에 액세스하려면 서비스에 명시적으로 ID를 할당해야 합니다. 실제로 애플리케이션 ID를 해당 구성 서비스에 매핑하면 애플리케이션 내 격리를 사용할 수 있습니다. 즉, 서비스는 매핑된 ID만 사용할 수 있습니다.

이 기능에 대해 다음 시나리오가 지원됩니다.

  • 하나 이상의 서비스와 하나 이상의 할당된 ID로 새 애플리케이션 배포

  • Azure 리소스에 액세스하기 위해 하나 이상의 관리 ID를 기존(Azure 배포) 애플리케이션에 할당

다음 시나리오는 지원되지 않거나 권장되지 않습니다. 이러한 작업은 차단되지 않을 수 있지만 애플리케이션에서 중단이 발생할 수 있습니다.

  • 애플리케이션에 할당된 ID를 제거하거나 변경합니다. 변경해야 하는 경우 별도의 배포를 제출하여 먼저 새 ID 할당을 추가한 다음, 이전에 할당된 ID를 제거합니다. 기존 애플리케이션에서 ID를 제거하면 애플리케이션을 업그레이드할 수 없는 상태로 두는 등 바람직하지 않은 영향을 미칠 수 있습니다. ID 제거가 필요한 경우 애플리케이션을 모두 삭제해도 안전합니다. 애플리케이션을 삭제하면 애플리케이션과 연결된 시스템 할당 ID가 삭제되고 애플리케이션에 할당된 사용자 할당 ID와의 모든 연결이 제거됩니다.

  • Service Fabric은 사용되지 않는 AzureServiceTokenProvider에서 관리 ID를 지원하지 않습니다. 대신 Azure ID SDK를 사용하여 Service Fabric에서 관리 ID를 사용합니다.

다음 단계