【问题标题】:Removing Secrets from Azure Function Config从 Azure 函数配置中删除机密
【发布时间】:2021-01-20 15:02:06
【问题描述】:

像一开始的大多数 Azure Functions 一样,我们有一个到关联存储帐户的连接字符串,其中包括像这样的 Accountkey

DefaultEndpointsProtocol=https;AccountName=ourstorageAccount;EndpointSuffix=core.windows.net;AccountKey=WQfbn+VBhaY1fi/l0eRBzvAvngiCiOwPmx/==

我们显然想删除那个 AccountKey。我曾希望我们可以使用 ManagedIdentity 和“贡献者”角色,但我正在阅读的内容是告诉我您不能使用 Managed Identity 仅访问存储帐户中的 Blob

我知道我们可以将整个连接字符串移动到 KeyVault,但如果我们想要轮换密钥,那只会成为 Azure 管理问题。

是否有人成功控制了对带有托管标识的 Azure 表存储的访问?

如果不是,最好允许简单旋转键的下一个最佳方法是什么?

【问题讨论】:

  • 对此问题还有其他顾虑吗?
  • 是的,这种方式可以轮换存储密钥,但是密钥不存储在keyvault中,需要手动存储在keyvault中,重新生成key的时候是你存储的旧key在 keyvault 中不会自动更改,您需要手动更新它,这很不方便。在你的情况下,我认为我提到的这种方式更适合docs.microsoft.com/en-us/azure/key-vault/secrets/…你只需要引用keyvault秘密,当存储密钥自动重新生成时,秘密将被更新。
  • 我无法运行 Azure ARM 部署,因此我尝试为 secrets/tutorial-rotation-dual 方法部署各个部分。最好在哪里问一些问题以检查我的理解?
  • 我觉得你不明白的步骤可以用azure-keyvault标签问,记住不要在一篇文章中问几个不同的问题。

标签: azure azure-storage azure-managed-identity


【解决方案1】:

是否有人成功控制对带有托管标识的 Azure 表存储的访问?

肯定是无法使用MSI(托管标识,本质上是azure ad中的服务主体)访问azure table storage,当使用MSI访问一些azure资源时,它本质上是使用azure ad client credential flow获取令牌,然后使用令牌访问资源。

但是,azure blob 和队列存储仅支持 azure ad auth,表存储目前不支持,请参阅 - Authorize access to blobs and queues using Azure Active Directory

如果不是,最好允许简单旋转键的下一个最佳方法是什么?

您可以使用 azure 函数来执行此操作,请遵循此文档 - Automate the rotation of a secret for resources with two sets of authentication credentials,我认为它完全符合您的要求,本教程使用 Azure 事件网格触发的函数将存储在 Azure Key Vault 中的 Azure 存储帐户密钥作为机密旋转通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多