我正在开发一个应用程序,该应用程序以功能应用程序为中心,该应用程序与少量资源交互。这些资源都有自己的密钥和连接字符串,它们存储在密钥保管库中。函数应用程序使用托管标识访问密钥保管库的内容。
我希望最大限度地减少未来因必须重新生成这些密钥并将新值放入保管库而造成的管理工作量。对于存储帐户,我知道我可以通过将其设为“密钥保管库管理帐户”来完全自动化,但据我所知,对于 CosmosDB 或 OpenAI 服务之类的东西没有这样的功能。我知道我可以设置另一个功能应用程序来为我执行旋转像这样,但我有点时间线,如果可能的话,我宁愿不处理所有调试。我还有其他选择吗?
即使没有对密钥保管库托管身份的本机支持,也可以自动轮换 CosmosDB 或 OpenAI 服务等资源的密钥和连接字符串,因为有一些替代方案可用。
考虑到你的目标是减少未来的管理开销和手动干预,利用旨在简化此流程的 Azure 现有服务和功能将是有益的。
:
您已经注意到 Key Vault 用于存储密钥和连接字符串。确实,对于存储帐户,可以通过将它们指定为:
虽然设置另一个功能应用程序可能并不理想,但它可能是一个实用的解决方案。考虑建立一个用于密钥轮换的专用功能应用程序。此应用程序会定期从您的资源(例如 Cosmos DB 或 OpenAI)获取新密钥、刷新 Key Vault 机密并管理轮换过程。:
实际上,Azure Cosmos DB 现在支持:https://learn.microsoft.com/en-us/azure/cosmos-db/store-credentials-key-vault
https://azure.microsoft.com/en-us/updates/public-preview-configure-customermanagement-keys-on-existing-cosmos-db-accounts/