설명
Service Fabric의 Microsoft Entra ID 인증은 관리 클라이언트의 신원을 확인하고 역할을 적용하는 방식입니다. X.509 클라이언트 인증서도 지원되는 대안이므로 Entra ID 설정이 없다고 인증 없는 접근을 뜻하지는 않습니다. 선택한 방식의 신뢰와 권한 구성이 중요합니다.
잠재적 영향
- 관리 인증이나 역할이 잘못 설정되면 의도하지 않은 클러스터 관리 작업이 허용될 수 있습니다.
- 불완전한 인증 설정은 배포나 운영자 로그인을 실패하게 할 수 있습니다.
해결 방법
- Microsoft Entra ID를 사용한다면
azure_active_directory에 실제tenant_id,cluster_application_id,client_application_id를 지정하고 관리자·사용자 역할을 필요한 범위로 부여하세요. - 클라이언트 인증서 방식을 사용한다면 승인된 인증서와 권한을 관리하세요. 관리 엔드포인트의 TLS와 클러스터 인증서 설정도 확인하고 운영자 로그인 및 관리 도구를 시험하세요.
예시
인증 블록의 일부를 비교합니다. 변수에는 지원되는 Service Fabric 버전, 실제 HTTPS 관리 엔드포인트와 등록된 애플리케이션 ID를 지정하세요. 노드와 인증서 등 나머지 구성은 생략했습니다. 변경 전은 필수 tenant_id가 없어 AzureRM에서 거부되는 불완전한 예시입니다.
변경 전
hcl
resource "azurerm_service_fabric_cluster" "example" {
name = "example-servicefabric"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
reliability_level = "Bronze"
upgrade_mode = "Manual"
cluster_code_version = var.cluster_code_version
vm_image = "Windows"
management_endpoint = var.management_endpoint
azure_active_directory {
cluster_application_id = var.cluster_application_id
client_application_id = var.client_application_id
}
}
변경 후
hcl
resource "azurerm_service_fabric_cluster" "example" {
name = "example-servicefabric"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
reliability_level = "Bronze"
upgrade_mode = "Manual"
cluster_code_version = var.cluster_code_version
vm_image = "Windows"
management_endpoint = var.management_endpoint
azure_active_directory {
tenant_id = var.tenant_id
cluster_application_id = var.cluster_application_id
client_application_id = var.client_application_id
}
}
설명:
- 변경 전: Entra ID 블록에 필수 테넌트 ID가 빠져 있습니다.
- 변경 후: 테넌트와 애플리케이션 ID를 지정합니다. 실제 역할 부여와 인증 흐름은 별도로 구성·검증해야 합니다.