Python 我可以在Amazon Lambda上使用seccomp吗

Python 我可以在Amazon Lambda上使用seccomp吗,python,amazon-web-services,aws-lambda,seccomp,Python,Amazon Web Services,Aws Lambda,Seccomp,我试图使用AmazonLambda来主持一个编程学习平台,在那里我必须执行简单的不可信Python代码 我最近一次尝试以一种简单的方式隔离用户代码,就是使用seccomp禁用除从文件读取和写入stdout/stderr之外的任何功能,代码如下所示: from pyseccomp import * f = SyscallFilter(defaction=KILL) f.add_rule(ALLOW, "open", Ar

我试图使用AmazonLambda来主持一个编程学习平台,在那里我必须执行简单的不可信Python代码

我最近一次尝试以一种简单的方式隔离用户代码,就是使用
seccomp
禁用除从文件读取和写入
stdout
/
stderr
之外的任何功能,代码如下所示:

   from pyseccomp import *

   f = SyscallFilter(defaction=KILL)

   f.add_rule(ALLOW, "open",
                  Arg(1, MASKED_EQ, os.O_RDONLY,
                      os.O_RDONLY | os.O_RDWR | os.O_WRONLY))
   f.add_rule(ALLOW, "openat",
                  Arg(2, MASKED_EQ, os.O_RDONLY,
                      os.O_RDONLY | os.O_RDWR | os.O_WRONLY))
   f.add_rule(ALLOW, "read")
   f.add_rule(ALLOW, "write", Arg(0, EQ, sys.stdout.fileno()))
   f.add_rule(ALLOW, "write", Arg(0, EQ, sys.stderr.fileno()))
   f.add_rule(ALLOW, "close")
   f.add_rule(ALLOW, "getdents64")
   f.add_rule(ALLOW, "exit_group")
   f.add_rule(ALLOW, "rt_sigaction")
   f.add_rule(ALLOW, "sigaltstack")
   f.add_rule(ALLOW, "brk")
   f.add_rule(ALLOW, "lseek")
   f.add_rule(ALLOW, "fstat")
   f.add_rule(ALLOW, "mmap")
   f.add_rule(ALLOW, "mprotect")
   f.add_rule(ALLOW, "stat")
   f.add_rule(ALLOW, "ioctl", Arg(1, EQ, 0x5401)) # TCGETS
   f.add_rule(ALLOW, "fcntl")

   f.load()
这在本地运行得很好,但是在Amazon Lambda上,它没有找到
seccomp

我试图在Amazon Lambda函数中包含来自Debian stable机器的
libseccomp.2
,代码一直运行到
f.load()
,但随后失败

Traceback (most recent call last):
  File "sandbox.py", line 32, in <module>
    f.load()
  File "/var/task/pyseccomp.py", line 335, in load
    _check_status(_libseccomp.seccomp_load(self._filter))
  File "/var/task/pyseccomp.py", line 183, in _check_status
    raise _build_oserror(-res)
PermissionError: [Errno 1] Operation not permitted
回溯(最近一次呼叫最后一次):
文件“sandbox.py”,第32行,在
f、 加载()
文件“/var/task/pyseccomp.py”,第335行,加载中
_检查状态(_libseccomp.seccomp_加载(自过滤器))
文件“/var/task/pyseccomp.py”,第183行,处于检查状态
提高生成错误(-res)
PermissionError:[Errno 1]不允许进行操作

seccomp\u load
returning
EPERM
是否意味着我无法在Amazon Lambda上使用seccomp,或者我做错了什么。

Lambda env已经使用了
seccomp bpf
。我认为你的函数没有足够的权限使用seccomp,这就是我担心的。讨厌的非组合性。是否有办法确定?有关
seccomp bpf
的简短信息已存在。Lambda env已使用
seccomp bpf
。我认为你的函数没有足够的权限使用seccomp,这就是我担心的。讨厌的非组合性。是否有办法确定?关于
seccomp bpf
的简短信息在。