Azure functions 如何在Azure功能代码中保护产品机密?
如果有人能告诉我如何在没有开发者在Azure函数上扮演贡献者角色的情况下,将秘密写入产品代码,这将对我有很大帮助 首字母缩写词:Azure functions 如何在Azure功能代码中保护产品机密?,azure-functions,azure-keyvault,azure-managed-identity,Azure Functions,Azure Keyvault,Azure Managed Identity,如果有人能告诉我如何在没有开发者在Azure函数上扮演贡献者角色的情况下,将秘密写入产品代码,这将对我有很大帮助 首字母缩写词: “SAMI”=系统分配的托管标识 “Ent Sec”=企业安全团队 流量(改编自): Ent Sec团队将机密上传至开发人员密钥库,并向开发人员提供开发人员机密参考 Ent Sec团队将SAMI添加到KeyVault访问策略中(开发人员不在访问策略中) 开发者向Azure功能应用程序设置添加开发秘密引用(通过Azure门户中的local.settings.jso
- “SAMI”=系统分配的托管标识
- “Ent Sec”=企业安全团队
- Ent Sec团队将机密上传至开发人员密钥库,并向开发人员提供开发人员机密参考
- Ent Sec团队将SAMI添加到KeyVault访问策略中(开发人员不在访问策略中)
- 开发者向Azure功能应用程序设置添加开发秘密引用(通过Azure门户中的
或local.settings.json
)App settings
- 开发人员获取端到端运行的开发代码
- 对于PROD代码,这将如何工作?
- 如果开发者在PROD Azure功能代码上有
角色,则所有机密都可以从中看到;这否定了Azure Key Vault访问策略(仅允许应用程序SAMI访问)和Azure Key Vault机密引用的使用Contributor
- 如果开发者在PROD Azure功能代码上有
- 是否有其他角色可以授予开发人员
- Ent Sec是否负责将产品机密添加到产品代码中
- 是否有一个DevOps管道根据环境“注入”正确的秘密
- 虽然我不了解您的整个设置。。。通过使用KeyVault引用的应用程序设置,这应该相当容易:
开发人员可能有权访问应用程序设置,但只能看到如下内容:
@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931)
只有应用程序服务/功能应用程序的托管标识需要在密钥库中具有访问策略。如果开发人员不这样做,他们将无法看到真正的秘密。这也是我最初的理解,但我发现了一个漏洞。任何在Azure函数中担任
Contributor
角色的人,即使未在KeyVault访问策略中列出,也可以在源代码中使用引用时以明文形式查看机密。他们只需访问https://.scm.azurewebsites.net/Env
。在回答我关于这个问题的Bug悬赏报告时,我被告知这是“故意的行为”,而不是Bug。而且,拥有贡献
角色的开发人员可以…使用identity运行他们想要的任何软件,并可以访问identity拥有的所有内容。
因此,我在这里发布了一篇文章……您可能希望在您的原始文章中发布github repo中讨论的链接。。。所以不确定你到底在找什么?这里分享了一般性的指导:任何开发人员都不应该拥有对PROD的写访问权限(比如贡献者角色)。只有使用服务原则等部署到PROD。我被告知要在这里发布最佳实践。我在寻找“如何”。如何将秘密安全地输入到PROD代码中?“…使用服务主体等部署到prod”的模式是什么?
?这正是我要寻找的关于…任何开发人员都不应具有对prod的写访问权限(例如参与者角色)的指导。仅使用服务原则等部署到prod。。如何使用服务主体部署PROD功能代码?