问了一个关于Removing Secrets from Azure Function Config的问题,建议managing the rotation of keys for Azure Storage Accounts and the keeping of those keys secret in Azure KeyVault使用这种Microsoft方法
请注意,我们正在访问Azure存储帐户中的表,并且与Blob和队列不同的表不支持托管身份访问控件。
此建议附带了一些Azure Deplyment模板,这些模板不会为我运行,因此我决定自己创建资源以检查我对方法的理解。尝试遵循建议后,我有一些疑问
现有情况:
我对建议的理解是它引入了
SecretNearExpiry
事件我对理解这种方法有疑问。我看不出有更好的方法,只能整理这个Stack Overflow问题中的问题,而不是三个单独的问题。
答案 0 :(得分:1)
我不确定为什么ARM模板对您不起作用。您需要是Storage and Key Vault的所有者才能创建必要的权限。 要回答您的问题:
答案 1 :(得分:1)
是的,该功能必须作为可以旋转该角色提供的键的主体运行。密钥旋转可以保留为单独的角色,这样您就可以提供对机密的细密访问,从而避免泄漏。
该函数(而是主体)仅需要“获取”访问用于生成SAS令牌的机密(这是一种特殊的机密,其中返回的值将更改以生成新的SAS令牌),以授予访问权限存放。必须将密钥保管库配置为管理存储帐户的令牌。请参阅我最近在https://docs.microsoft.com/samples/azure/azure-sdk-for-net/share-link/发布的样本,希望可以简化此问题。
密钥的值实际上是为存储帐户生成的SAS令牌。如果您在Key Vault中还有其他机密,或者甚至以这种方式管理多个功能应用程序(可以为即将到期的存储帐户密钥识别正确的机密),这些标签用于确定要用于存储帐户的机密。