Azure KeyVault 迭代保管库中的所有机密

Posted

技术标签:

【中文标题】Azure KeyVault 迭代保管库中的所有机密【英文标题】:Azure KeyVault iterate over all secrets in a vault 【发布时间】:2017-11-07 07:33:56 【问题描述】:

为了简单起见,假设我想使用 Azure REST API 从特定保管库中的所有秘密构建一个字典,其中包含秘密名称和秘密值。

我面临的问题是 Get Secrets API 调用返回包含 SecretItem 列表的 SecretListResult。 SecretItem 有 ID 元素,但没有名称,也没有值。 GetSecret API 需要秘密名称而不是秘密 ID,到目前为止我找不到将 ID 转换为名称的方法。

任何建议将不胜感激

谢谢。

【问题讨论】:

【参考方案1】:

// 获取秘密列表

GET https://alice.vault.azure.net/secrets?api-version=2015-06-01

Response Body:

  "value": [
    
      "contentType": "text",
      "id": "https://alice.vault.azure.net/secrets/secret1",
      "attributes": 
        "enabled": true,
        "created": 1496749576,
        "updated": 1496749576
      
    ,
    
      "contentType": "text",
      "id": "https://alice.vault.azure.net/secrets/secret2",
      "attributes": 
        "enabled": true,
        "created": 1496749590,
        "updated": 1496749590
      
    
  ],
  "nextLink": null

// 获取秘密属性和值

解析id,查找最后一次出现的/ 以获取秘密名称。每个项目一次调用。

GET https://alice.vault.azure.net/secrets/secret1/?api-version=2015-06-01

Response Body:

  "value": "5up3r1ee7s3cr3t",
  "contentType": "text",
  "id": "https://alice.vault.azure.net/secrets/secret1/6ac15a48877148e094276504d73e95a1",
  "attributes": 
    "enabled": true,
    "created": 1496749576,
    "updated": 1496749576
  



GET https://alice.vault.azure.net/secrets/secret2/?api-version=2015-06-01

Response Body:

  "value": "@n0th3r5up3r1ee7s3cr3t",
  "contentType": "text",
  "id": "https://alice.vault.azure.net/secrets/secret2/2b34de363d6445ba83bb23bafaea6658",
  "attributes": 
    "enabled": true,
    "created": 1496749590,
    "updated": 1496749590
  

来源:我刚刚查看了 Azure PowerShell 在网络上使用 -Debug 调用的内容,例如:

Get-AzureKeyVaultSecret -VaultName Alice -Debug
Get-AzureKeyVaultSecret -VaultName Alice -Name secret1 -Debug

【讨论】:

谢谢,错过了 id 实际上是秘密的 URL

以上是关于Azure KeyVault 迭代保管库中的所有机密的主要内容,如果未能解决你的问题,请参考以下文章

从 Azure 密钥保管库存储和检索 JKS

如何读取存储在 Azure 密钥保管库中的值/秘密

Azure密钥保管库如何识别访问策略中分配的不同身份

将 Azure VM 移动到新资源组后的备份问题

Python Azure 函数 - 使用 Key Vault 进行 MSI 身份验证

20.Azure备份Azure上的虚拟机(中)