禁用AWS Lambda环境变量

时间:2017-03-10 20:47:53

标签: amazon-web-services aws-lambda

我目前正在使用AWS Lambda来运行我无法控制的代码。因此,我想确保Lambda环境是沙盒的,并且无法访问敏感数据。传递给Lambda函数的默认环境变量概述为here。我担心用户访问的是:

AWS_ACCESS_KEY
AWS_ACCESS_KEY_ID
AWS_SECRET_KEY
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
AWS_SECURITY_TOKEN

是否可以禁用这些环境变量?目前我在执行用户代码之前隐藏了这些变量,但如果我可以平掉禁用环境变量那就太好了。

编辑以回复评论:

我正在运行不受信任的代码b / c我正在编写一个教授编程的游戏,我想使用Lambda来执行用户代码。我认为我给Lambda函数的权限很小(AWSLambdaVPCAccessExecutionRole)。网络访问受到限制,但是他们可以检索其功能的结果,因为它是游戏的一部分。

编辑两个

我在AWS论坛上发布了这个问题b / c我不认为这是目前可行的。链接为here

1 个答案:

答案 0 :(得分:1)

除非最近发生了某些变化,否则隐藏这些变量的唯一方法是在调用用户代码之前将它们从lambda函数的环境中显式删除,我相信这就是你已经在做的事情。

这些变量由boto用于使用AWS SDK提供对AWS功能的访问,并且是Lambda函数用户通常希望在其环境中使用的内容。该角色是您为该函数配置的任​​何角色,因此您可以创建一个没有权限的角色(但是您不会获得任何日志记录。)也就是说,如果您使用AWSLambdaBasicExecutionRole,则提供的唯一权限是登录到Cloudwatch ,您甚至可以删除这些权限,但您不会从Lambda中获取任何记录。您可以在默认情况下使用此选项,并仅在需要进行调试时启用日志记录。