azure-devops - 需要有关将机密更新到 KeyVault 的建议
问题描述
我正在部署一个调用由 API 密钥保护的后端 api 的 Azure 函数应用程序。该应用程序将使用 Azure DevOps 管道进行部署;API 密钥将作为机密存储在 KeyVault 中,我使用 Bicep 文件进行基础设施定义,使用 Yaml 管道部署基础设施和应用程序。以下是我有关于 KeyVault 更新的问题,
- 管道是否应该负责更新 KeyVault 中的机密?如果是这样,是否建议在 DevOps 变量组中维护 Secrets(键盘锁定),或者,是否有更好/更安全的方法?
- 是否应该手动更新/维护 KeyVault 中的机密?采用这种方法,我们的管道将不那么成熟,因为仍然会有人工干预/不可变 - 考虑到环境的重建。
我想知道上述的最佳做法,谢谢。
解决方案
可能答案是视情况而定。这使得这个问题可能会得到一些基于意见的答案。如果您查看 Microsoft 文档,它会指出:
不要在 YAML 文件中设置秘密变量。操作系统通常会为它们运行的进程记录命令,并且您不希望日志包含您作为输入传递的秘密。使用脚本的环境或在
variables
块中映射变量以将秘密传递到您的管道。您需要在管道设置 UI 中为管道设置秘密变量。这些变量的范围仅限于您设置它们的管道。您还可以在变量组中设置秘密变量。
资料来源:定义变量 - 设置秘密变量
尽管如此,您应该问自己这些秘密的所有权在哪里。所有者应该是负责人。
- 在 KeyVault 中维护这些机密意味着您甚至不需要管道中的机密。这意味着明确的职责分离。
- 在管道中维护这些机密使您能够将它们与使用它们的代码一起更新。这将秘密与消费代码联系起来。
两者都是很好的情况,具体取决于责任所在。
推荐阅读
- google-bigquery - 使用 BigQuery 和 MaxMind GeoIP 查找 ipv4 和 ipv6 的地理位置
- javascript - 内部请求时不会应用 JS 样式更改
- python - 在ubuntu中安装后如何将jupyterlab添加到路径?
- javascript - 如果 div 子项没有相同的文本内容,则执行操作
- sql-server - 如何在 SQL Server 中查找和解析数据
- matlab - matlab在按钮单击时附加相同变量的不同值
- html - 单击后如何更改引导程序 3 下拉背景颜色?
- python - Tkinter 小部件没有根据输入进行更新?
- python - Python continue 语句不打印所有字符
- r - 打印样式表 - R