【发布时间】:2021-01-26 23:48:19
【问题描述】:
在询问了有关 Removing Secrets from Azure Function Config 的问题后,建议将这种 Microsoft 方法用于 managing the rotation of keys for Azure Storage Accounts and the keeping of those keys secret in Azure KeyVault
请注意,我们正在访问 Azure 存储帐户中的表,并且与 Blob 和队列不同的表不支持托管标识访问控制。
该建议附带了一些不适用于我的 Azure 部署模板,因此我决定自己创建资源以检查我对该方法的理解。在尝试遵循建议后,我有一些问题
现状:
- 一个名为“OurAzureFunction”的现有函数,当前在函数配置中直接使用密钥配置了存储帐户连接字符串。
- 一个名为“ourstorageaccount”的现有存储帐户,其中包含“OurAzureFunction”在其上运行的应用程序数据
我对推荐的理解是它引入了
- “keyRotationAzureFunction”,一个带有两个 Httptrigger 的 Azure 函数,一个响应即将过期的机密的事件网格事件,另一个可以调用以按需重新生成密钥。
- “keyRotationKeyVault”,由 keyRotationAzureFunction 操作的 Key Vault。
- 监听来自“keyRotationKeyVault”的
SecretNearExpiry事件的事件网格订阅
我无法理解这种方法。除了整理这个 Stack Overflow 问题而不是三个单独的问题之外,我找不到更好的方法。
- keyRotationAzureFunction 是否在“ourstorageaccount”上具有“存储帐户密钥操作员服务角色”,以便它可以重新生成其密钥?
- “OurAzureFunction”有什么配置允许它创建到 ourstorageaccount 的连接?它是“keyRotationKeyVault”中的标记秘密吗?
- “keyRotationKeyVault”中的secret值是不是只用到了secret相关的标签?
【问题讨论】:
-
那篇文章有点过时了,虽然它受支持,但推荐的方法是使用托管标识,您可以将其与 Azure Functions 一起使用来访问存储。见docs.microsoft.com/samples/azure-samples/…。您不必担心轮换密钥,并且永远不会共享密码或令牌,这比共享访问令牌更容易保护(以及为什么我们不再支持在新的 Key Vault SDK 中管理存储密钥)。这对你更有效吗?
-
托管标识不适用于存储帐户中的表。这个问题是在我问了一个关于我们当前场景的问题之后提出的,并且推荐了这种方法
-
问题更新引用了之前的 SO 问题并指出我们正在使用 Azure 表存储
标签: azure-storage azure-keyvault