우리는 Terraform을 사용하여 클라우드 인프라를 구축하고 있습니다. 이전에는 Terraform없이 생성 된 몇 가지 서비스 주체가 현재 프로덕션에서 사용되고 있으며 변경할 수 없습니다. 이제 Terraform으로 이동하여 해당 서비스 주체를 만들고 싶지만 random_string을 사용하여 새 주체를 만드는 구조를 유지하면서 이전 주체를 가져올 수 없습니다.
resource "azuread_service_principal_password" "service-images" {
for_each = toset(var.profiles)
service_principal_id = azuread_service_principal.service-images[each.value].id
end_date = "2222-01-01T23:00:00Z"
value = random_string.images_password[each.value].result
}
resource "random_string" "images_password" {
for_each = toset(var.profiles)
length = 32
special = true
}
새 서비스 주체를 만들면 (var.profiles 목록에 요소를 추가하여) 제대로 작동하지만 이미 사용 된 서비스 주체 인 경우 Terraform이 이전 값을 부수고 프로덕션에서 중단 될 것이라고 걱정합니다.
또한 Terraform에는 azuread_service_principal_password에 대한 가져 오기 인터페이스가있는 것 같습니다.
terraform import azuread_service_principal_password.test 00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111
첫 번째 부분은 ServicePrincipalObjectId이고 두 번째 부분은 ServicePrincipalPasswordKeyId이지만 Azure Portal에서 후자의 값을 찾을 수 없습니다 (어디에 있나요?).
어떻게 진행 하시겠습니까?
불행히도 서비스 주체는 하나의 암호 만 가질 수 있습니다. 따라서 이전 프로필의 암호를 유지할 수 없으며 새 프로필에 대한 새 암호도 생성 할 수 없습니다.
인증을 위해 응용 프로그램 레지스트리 암호를 사용하는 것이 좋습니다. 서비스 주체와 관련된 응용 프로그램 레지스트리의 비밀을 서비스 주체로 사용할 수도 있으며 응용 프로그램 레지스트리에는 여러 비밀이있을 수 있습니다. 따라서 리소스 azuread_application_password
대신 리소스를 만들어야합니다 azuread_service_principal_password
.
다음은 그 예입니다.
data "azuread_application" "example" {
name = "My First AzureAD Application"
}
resource "azuread_application_password" "example" {
application_object_id = "${data.azuread_application.example.id}"
value = "VT=uSgbTanZhyz@%nL9Hpd+Tfay_MRV#"
end_date = "2020-01-01T01:02:03Z"
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다