如何在Azure功能代码中保护PROD机密?

问题描述

如果没有开发人员在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.jsonApp Settings
  • 开发人员使DEV代码端到端运行

视觉

enter image description here

问题

  • 这对PROD代码如何起作用?
    • 如果开发人员在PROD Azure函数代码上具有Contributor角色,则所有秘密都是可见的;这会否定Azure密钥保管库访问策略(仅允许App SAMI访问)和Azure密钥保管库秘密引用的使用。
  • 还有其他可以授予开发人员的角色吗?
  • Ent Sec是否负责将PROD机密添加到PROD代码中?
  • 是否有一个DevOps管道根据ENV“注入”正确的秘密?

解决方法

虽然我不了解您的整个设置...通过使用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中具有访问策略。如果开发人员没有,他们将无法看到实际的秘密。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...