【发布时间】:2022-01-27 20:17:23
【问题描述】:
我面临着一个我似乎没有找到实际解决方案的障碍。
我正在使用 azure terraform 创建存储帐户,并且我希望在发布管道期间能够将此存储帐户的连接字符串设置为现有 KeyVault 中的机密。
到目前为止,我能够从这个 KeyVault 中检索机密,因为我使用的是 managed identity,它对 KeyVault 具有以下权限:
key = get, list
secret = get, list and set
cert = get , list
我的 terraform 中的工作流程如下:
检索 KeyVault 数据:
data "azurerm_key_vault" "test" {
name = "test"
resource_group_name = "KeyVault-test"
}
检索用户分配的身份数据:
data "azurerm_user_assigned_identity" "example" {
name = "mng-identity-example"
resource_group_name = "managed-identity-example"
}
获得这两个数据后,我尝试按如下方式创建秘密:
resource "azurerm_key_vault_secret" "secretTest" {
key_vault_id = data.azurerm_key_vault.test.id
name = "secretTest"
value = azurerm_storage_account.storageaccount.primary_connection_string
}
一旦我设置发布管道来运行这个 terraform,它确实会失败并出现错误 Access Denied
这是完全可以理解的,因为这个 terraform 没有设置或检索秘密的权限。
这就是我被阻止的部分。
如果有人可以帮助了解我如何使用我的托管身份来设置此机密?
我查看了 terraform 文档,但找不到任何步骤或解释。
非常感谢您的帮助和时间,如果您需要更多信息,请直接问我。
【问题讨论】:
-
你好@Nayden Van,在这里你能理解你是否使用相同的托管身份登录到 azure / 同时执行 terraform 应用?
标签: azure-devops terraform-provider-azure