我正在使用 Terraform 创建 KeyVault 资源。
密钥保管库策略需要参数 object_id。我不知道从哪里检索这个值。
这是我收到的错误:
Error: expected "object_id" to be a valid UUID, got
on modules/keyvault/main.tf line 42, in resource "azurerm_key_vault_access_policy" "policy":
42: resource "azurerm_key_vault_access_policy" "policy" {
keyvault 的策略设置如下:
# Create an Azure Key Vault access policy
resource "azurerm_key_vault_access_policy" "policy" {
for_each = var.policies
key_vault_id = azurerm_key_vault.key-vault.id
tenant_id = lookup(each.value, "tenant_id")
object_id = lookup(each.value, "object_id")
key_permissions = lookup(each.value, "key_permissions")
secret_permissions = lookup(each.value, "secret_permissions")
certificate_permissions = lookup(each.value, "certificate_permissions")
storage_permissions = lookup(each.value, "storage_permissions")
}
我正在使用 terraform 版本 0.12 和 azure 提供程序 2.35。
您应该能够获取object_id。如果您只是玩玩,可以对其进行硬编码。如果您使用 CI 进行部署,您可能需要考虑将其设置为变量并为您所属的组创建第二个策略。否则,您最终将根据运行器翻转策略上的 object_id,并可能产生不良影响。
provider "azurerm" {
features {}
}
data "azurerm_client_config" "current" {
}
output "object_id" {
value = data.azurerm_client_config.current.object_id
}
升级到版本=“=3.42.0” 为我解决了同样的问题
版本升级 地形/azurerm 版本=“=3.42.0”