AWS Lambda由PUT触发到单独帐户中的s3存储桶

BBS*_*BBS 10 amazon-s3 amazon-web-services amazon-iam aws-lambda

我试图触发一个Lambda函数来运行更新到s3存储桶.我试图触发Lambda的s3存储桶位于单独的AWS账户中.

我尝试过的方法是在帐户中设置一个角色,该s3存储桶具有s3存储桶的所有权限.然后在Lambda帐户中,我有一个角色,假设其他帐户中的角色如下:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "sts:AssumeRole"
        ],
        "Resource": [
            "arn:aws:iam::..."
        ]
    }
]
}
Run Code Online (Sandbox Code Playgroud)

我无法在桶列表中看到s3存储桶来触发Lambda事件.

在单独的帐户中使用s3存储桶来触发Lambda可能吗?这是正确的解决方案吗?

Joh*_*ein 10

更新:似乎跨帐户触发来自S3 lambda函数实际上可能的.请参阅:为AWS Lambda使用基于资源的策略(Lambda函数策略)


老答案:

当对象添加到存储桶或从存储桶中删除对象时,Amazon S3可以触发AWS Lambda函数.

但是,必须在存储桶本身上设置此触发器.您将需要存储桶的所有者(或具有足够权限的人)来设置配置以触发Lambda.

此外,被调用的Lambda函数必须与Amazon S3存储桶位于同一帐户中.您可以在一个帐户中创建一个Lambda函数,然后在另一个帐户中调用Lambda函数(给定足够的权限),但帐户A中的Bucket 不可能直接触发帐户B中的Lambda函数.