Terraform Azure 服务主体客户端机密过期

Terraform Azure Service Principal Client Secret expiration

真的不能设置客户端密钥的到期日期吗?

我试着查看文档(见下文),但除了到期 Terraform 的输出是两年,我找不到任何其他内容。

我什至无法在 Azure AD 上查看机密,因为它没有显示在客户端机密区域(尽管这可能是由于某种 replication/eventual 一致性滞后)。

https://registry.terraform.io/providers/hashicorp/azuread/latest/docs/resources/service_principal_password

Service Principal Password在Portal中是看不到的,只能从Terraform状态中查到它的值。由于 Service Principal 被称为 Enterprise Application ,我们可以使用客户端 ID 的秘密,但它不会在门户中可见,因为 Enterprise application 没有certificates and secrets blade.

因此,为了使其在门户中可见,您必须使用 应用程序密码,以便可以在 certificates and secrets blade 中看到它]应用注册.

您还可以在应用程序密码中使用 relative end date 对应于您希望密码过期的时间的小时数。

您可以使用如下内容:

provider "azuread" {}

data "azuread_application" "example" {
  display_name = "aksspansuman"
}
resource "azuread_application_password" "example" {
  display_name = "Test"
  application_object_id = data.azuread_application.example.object_id
  end_date_relative = "24h"
}

输出:

更新:

resource "azuread_service_principal_password" "example" {
  service_principal_id = data.azuread_service_principal.example.object_id
  end_date = "2021-11-18T01:02:03Z"
}

如果我们尝试在 SP 密码中使用 end_date,则会出现以下错误。