uvi*_*sri 4 azure azure-active-directory terraform terraform-provider-azure
我正在尝试使用 Terraform 进行 azure 服务原理密码轮换,最新版本的 azuread 他们提供了此轮换功能,
resource "time_rotating" "test" {
rotation_years = 5
lifecycle {
create_before_destroy = true
}
}
resource "azuread_service_principal_password" "service_principal_password" {
service_principal_id = var.sp_internal_id
rotate_when_changed = {
rotation = time_rotating.test.id
}
lifecycle {
create_before_destroy = true
}
}
Run Code Online (Sandbox Code Playgroud)
我只是想当我添加属性rotate_when_changed 时,它会根据我设置的时间戳创建一个新的密码资源吗?我想知道这是 Terraform 仅提供的功能还是 Azure AD 的功能?由于Azure AD不提供密钥轮换功能,我想知道Terraform是如何实现这种轮换的?
我只是想当我添加属性rotate_when_changed 时,它会根据我设置的时间戳创建一个新的密码资源吗?我想知道这是 Terraform 仅提供的功能还是 Azure AD 的功能?由于Azure AD不提供密钥轮换功能,我想知道Terraform是如何实现这种轮换的?
您是正确的,它只是 terraform 功能,而不是 AzureAD 功能。当我们从 terraform 创建密码时,它不再使用值,如果您不提供任何值end_date_relative,那么它会将有效期设置为默认值 2 年。但出于安全原因,如果我们想根据时间轮换更改密码的值,那么我们只需设置rotate_when_changed并修改它即可。
在此GitHub Issue中对此进行了建议和增强。
例子:
我使用下面的代码在一小时后轮换该值:
resource "time_rotating" "test" {
rotation_hours = 1
lifecycle {
create_before_destroy = true
}
}
resource "azuread_application_password" "example" {
application_object_id = azuread_application.example.object_id
rotate_when_changed = {
rotation = time_rotating.test.id
}
lifecycle {
create_before_destroy = true
}
}
Run Code Online (Sandbox Code Playgroud)
初始输出:
1 小时后,如果我执行 terraform Plan ,那么它会显示密码将被替换,如下所示,但在 1 小时之前,它只会显示未检测到任何更改:
注意:这很有用,因为您不必再次销毁密码块并重新创建它。仅当您的时间轮换完成时,如果您执行应用,那么 terraform 将仅替换密码块并根据您的要求再次设置时间轮换。
| 归档时间: |
|
| 查看次数: |
3306 次 |
| 最近记录: |