Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure functions 如何在Azure功能代码中保护产品机密?_Azure Functions_Azure Keyvault_Azure Managed Identity - Fatal编程技术网

Azure functions 如何在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

如果有人能告诉我如何在没有开发者在Azure函数上扮演贡献者角色的情况下,将秘密写入产品代码,这将对我有很大帮助

首字母缩写词

  • “SAMI”=系统分配的托管标识
  • “Ent Sec”=企业安全团队
流量(改编自)

  • Ent Sec团队将机密上传至开发人员密钥库,并向开发人员提供开发人员机密参考
  • Ent Sec团队将SAMI添加到KeyVault访问策略中(开发人员不在访问策略中)
  • 开发者向Azure功能应用程序设置添加开发秘密引用(通过Azure门户中的
    local.settings.json
    App settings
  • 开发人员获取端到端运行的开发代码
视觉

问题

  • 对于PROD代码,这将如何工作?
    • 如果开发者在PROD Azure功能代码上有
      Contributor
      角色,则所有机密都可以从中看到;这否定了Azure Key Vault访问策略(仅允许应用程序SAMI访问)和Azure Key Vault机密引用的使用
  • 是否有其他角色可以授予开发人员
  • 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功能代码?