Создание субъекта-службы с помощью Terraform не предоставляет пароль / секрет в выводе

при создании субъекта-службы в Azure вручную, в результате операции мне выдается пароль.

Однако это не тот случай, если я создаю принципала службы с Terraform, пароль не входит в число выходных данных этого модуля:

  + azuread_service_principal.k8s_principal
      id:                <computed>
      application_id:    "${azuread_application.app.application_id}"
      display_name:      <computed>

Я что-то пропустил? Почему поведение Terraform отличается на выходе по сравнению с CLI?


person Bernard Halas    schedule 28.01.2019    source источник
comment
подключите пароль в другое место или получите пароль в виде данных, которые будут отправлены в другие места, или посмотрите файл состояния - вот он. вы не можете экспортировать его, он даст ‹sensitive›   -  person Dzmitry Lahoda    schedule 17.06.2021


Ответы (2)


password требуется ВВОД в блок azuread_service_principal_password. Таким образом, вы можете сгенерировать случайный пароль и экспортировать его самостоятельно. Полный код Terraform выглядит примерно так:

resource "azuread_application" "app" {
  name = "${local.application_name}"
}

# Create Service Principal
resource "azuread_service_principal" "app" {
  application_id = "${azuread_application.app.application_id}"
}

resource "random_string" "password" {
  length  = 32
  special = true
}

# Create Service Principal password
resource "azuread_service_principal_password" "app" {
  end_date             = "2299-12-30T23:00:00Z"                        # Forever
  service_principal_id = "${azuread_service_principal.app.id}"
  value                = "${random_string.password.result}"
}

output "sp_password" {
  value = "${azuread_service_principal_password.app.value}"
  sensitive = true
}
person Derek    schedule 13.05.2019

В документе terraform блок azuread_service_principal определяет только аргумент application_id и атрибуты id, display_name, чтобы вы могли видеть только эти ресурсы. Кроме того, блок azuread_service_principal_password позволяет экспортировать идентификатор ключа для пароля участника-службы. Вы все еще не смогли увидеть настоящий пароль.

В интерфейсе командной строки Azure az ad sp create-for-rbac имеет необязательный параметр --Password. Таким образом, вы могли видеть вывод пароля.

person Nancy Xiong    schedule 30.01.2019
comment
Вы в основном подтвердили мои наблюдения. Спасибо. Также +1 за информацию о azuread_service_principal_password. - person Bernard Halas; 30.01.2019