问题描述
如果没有开发人员在Azure函数中扮演Contributor
角色的情况下,有人可以阐明如何将机密写入PROD代码,这将对我有极大帮助。
缩写:
- “ SAMI” =系统分配的托管身份
- “ Ent Sec” =企业安全团队
流量(改编自this Azure Key Vault Doc):
- Ent Sec团队将机密上传到DEV keyvault并为开发人员提供DEV Secret参考
- Ent Sec团队将SAMI添加到keyvault访问策略中(开发人员不在访问策略中)
- Developer将DEV Secret参考添加到Azure Function应用设置(通过Azure门户中的
local.settings.json
或App Settings
) - 开发人员使DEV代码端到端运行
视觉:
问题:
解决方法
虽然我不了解您的整个设置...通过使用KeyVault引用的应用程序设置,https://docs.microsoft.com/en-us/azure/app-service/app-service-key-vault-references
应该相当容易开发者可能有权访问应用设置,但只会看到类似以下内容的内容:@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931)
只有App Service / Function App的托管身份需要在Key Vault中具有访问策略。如果开发人员没有,他们将无法看到实际的秘密。