설명
관리 ID를 사용하면 앱 코드나 설정에 장기 자격 증명을 직접 넣지 않고 지원되는 Azure 리소스에 접근할 수 있습니다. 별도 비밀정보나 키를 사용하는 방식은 설정 관리와 비밀정보 보호 부담을 늘립니다. 다른 리소스에 접근하지 않는 앱에 ID가 무조건 필요한 것은 아닙니다.
잠재적 영향
- 비밀정보가 코드나 설정에 남아 유출될 수 있습니다.
- 자격 증명의 교체와 권한 관리 부담이 늘어날 수 있습니다.
해결 방법
대상 서비스가 관리 ID 인증을 지원한다면 identity { type = "SystemAssigned" } 또는 적절한 사용자 할당 ID를 구성하세요. 필요한 권한만 부여하고 앱이 ID로 인증하도록 변경하세요. 동작을 확인한 뒤 기존 비밀정보를 제거하고 더 이상 필요한 곳이 없는 자격 증명은 폐기하세요.
예시
AzureRM 3.x의 기존 azurerm_app_service에서 시스템 할당 ID를 켜는 예시입니다. 현재 Linux·Windows Web App도 identity 블록을 지원합니다.
변경 전
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
}
변경 후
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
identity {
type = "SystemAssigned"
}
}
변경 후에는 Azure가 앱의 ID를 관리합니다. 대상 권한과 실제 인증 코드 변경은 별도이며, 사용자 로그인 인증 기능과도 다릅니다.