在(隔离的)Azure 函数中 运行 用户编写的 C# 代码安全吗?

Is it safe to run user-made C# code in an (isolated) Azure function?

我正在研究某种插件架构,人们可以在其中自行提交小块 C# 代码,它会在 Azure 上每小时执行一次。

这安全吗?或者他们会轻易破坏你的整个 Azure 环境吗? 还有其他解决方法吗?

我正在考虑使用 IronPython - 我想在那里设置硬边界更简单,但实际上我更喜欢使用 c#。

更新

明确一点:我主要关心的是安全性,而不是 Azure 成本。这将类似于保留实例,或者至少是成本有限的东西。

我可以忍受有人上传比特币矿工并且我在两天后发现的风险。

我无法忍受的是这个人实际上可以访问所有类型的 Azure 相关内容,例如凭据等。

它可以访问您授予 Azure 函数访问权限的所有内容:它可以读取所有环境变量、连接字符串等;它可以通过它们获得数据库或密钥库访问权限并了解其他秘密;它可能具有赋予其其他功能的托管身份;它可能可以通过防火墙访问,否则由于位于受信任的 Azure IP 上,防火墙会阻止它; ...等等

现在大多数这些东西 应该 配置不允许,但你将依赖任何开发人员或 devops 人员对你的函数应用程序环境的所有未来更改来确保它们没有向它暴露任何东西。

它还可能会破坏您依赖的外部服务并让您被速率限制阻止。

底线:这不是个好主意。