Terraform 创建的服务主体不在输出中提供密码/秘密

Ber*_*las 3 service-principal terraform-provider-azure

在 Azure 中手动生成服务主体时,作为操作的结果,我获得了密码。

但是,如果我使用 Terraform 创建服务主体,则情况并非如此,密码不在此模块的输出中:

  + azuread_service_principal.k8s_principal
      id:                <computed>
      application_id:    "${azuread_application.app.application_id}"
      display_name:      <computed>
Run Code Online (Sandbox Code Playgroud)

有什么我错过的吗?与 CLI 相比,为什么 Terraform 的输出行为不同?

Der*_*rek 6

password需要 INPUT 到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
}
Run Code Online (Sandbox Code Playgroud)