【问题标题】:Key vault access policy for the existing storage account in terraformterraform 中现有存储帐户的密钥保管库访问策略
【发布时间】:2021-06-17 11:43:37
【问题描述】:

我尝试将策略分配给现有存储帐户的 Azure Key Vault。问题是找不到如何获取分配策略所需的帐户的 UUID(principal_id)。我试图为数据找到正确的属性,但它看起来对于数据对象不存在。那么问题是如何为现有存储帐户分配 Key Vault 访问策略?

resource "azurerm_key_vault_access_policy" "storage2" {
  key_vault_id = azurerm_key_vault.keyvault.id
  tenant_id    = data.azurerm_client_config.current.tenant_id
  object_id    = data.azurerm_storage_account.example.identity.0.principal_id

  key_permissions    = ["get", "create", "list", "restore", "recover", "unwrapkey", "wrapkey", "purge", "encrypt", "decrypt", "sign", "verify"]
  secret_permissions = ["get"]
}

【问题讨论】:

    标签: azure azure-keyvault azure-storage-account azure-rm


    【解决方案1】:

    Azure Key Vault Access Policy

    Azure 存储帐户使用包含帐户名称和密钥的凭据。该密钥是自动生成的并用作密码,而不是用作加密密钥。 Key Vault 通过在存储帐户中定期重新生成它们来管理存储帐户密钥,并为对存储帐户中资源的委派访问提供共享访问签名令牌。

    用户可以使用 Key Vault 托管存储帐户密钥功能列出(同步)与 Azure 存储帐户的密钥,并定期重新生成(轮换)密钥。用户可以管理存储帐户和经典存储帐户的密钥。

    用户可以通过PowershellCLI 使用密钥保管库集策略管理存储帐户。

    【讨论】:

    • 感谢您的回答,但我正在寻找 Terraform 解决方案,而不是使用 azure CLI 或 Powershell 执行其他脚本。
    【解决方案2】:

    以下链接为您提供了有关如何在 terraform 中创建客户管理密钥的信息,其中创建密钥保管库策略是其中的一部分 https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/storage_account_customer_managed_key

    通用唯一标识符 (UUID) 分配给 Azure Active Directory (AAD) 中存在的整个目录和每个用户个人帐户,无论该帐户是在云中创建的还是最初在 Active Directory (AD) 上创建的- 本地实例,然后同步到云端

    根据上述信息,UUID 只不过是活动目录中可用的用户的对象 ID。如果您参考以下文档,您可以从门户中找出用户的对象 ID https://docs.microsoft.com/en-us/azure/marketplace/find-tenant-object-id

    您可以参考下面的 SO 线程来使用 terraform 创建对象 id

    Terraform create a azure key vault

    【讨论】:

    • @Daniel M,如果上面提供的答案有帮助?如果是这样,您能否接受答案作为解决方案。这可以帮助将来有类似查询的其他社区用户。
    【解决方案3】:

    您也许可以使用:

    data "azurerm_resources" "storage_account" {  
        type = "Microsoft.Storage/storageAccounts"  
        name = "<your_storage_account_name>"
    }  
    

    如果您使用的是托管服务标识,则 principal_id 可能会在那里公开,而它不在 data.azurerm_storage_account 资源中...

    我还没有尝试过,所以 ymmv,但是我在为具有 MSI 的现有 WebApp 查找 principal_id 时遇到同样的问题,并且它们的数据资源也不公开 .identity 属性,所以我打算……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2019-06-08
      • 2021-11-15
      • 2020-10-21
      • 1970-01-01
      相关资源
      最近更新 更多