Terraform Azure 服务主体客户端机密过期
Terraform Azure Service Principal Client Secret expiration
真的不能设置客户端密钥的到期日期吗?
我试着查看文档(见下文),但除了到期 Terraform 的输出是两年,我找不到任何其他内容。
我什至无法在 Azure AD 上查看机密,因为它没有显示在客户端机密区域(尽管这可能是由于某种 replication/eventual 一致性滞后)。
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
,则会出现以下错误。
真的不能设置客户端密钥的到期日期吗?
我试着查看文档(见下文),但除了到期 Terraform 的输出是两年,我找不到任何其他内容。
我什至无法在 Azure AD 上查看机密,因为它没有显示在客户端机密区域(尽管这可能是由于某种 replication/eventual 一致性滞后)。
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
,则会出现以下错误。