Похоже, что ваше требование:
- Создание AWS лямбда-функции in
Account-A
- Лямбда-функция должна иметь возможность создать объекты Amazon S3 в корзине (
Bucket-B
), принадлежащей Account-B
Самая простая настройка для этого будет:
- Создать Роль IAM для функции Lambda
- Роль должна иметь разрешение на
PutObject
в Bucket-B
(или даже на любое ведро), например:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:PutObject"
],
"Resource":"arn:aws:s3:::bucket-b/*"
}
]
}
- На
Bucket-B
(в Account-B
) добавьте Политику Bucket, которая позволяет вышеупомянутой роли IAM записывать в корзину:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicRead",
"Effect":"Allow",
"Principal": "arn:aws:iam::<ACCOUNT-B>:role/lambda-role",
"Action":["s3:PutObject"],
"Resource":["arn:aws:s3:::bucket-b/*"]
}
]
}
- При записи для объектов
Bucket-B
, убедитесь, что лямбда-функция устанавливает ACL='bucket-owner-full-control'
, чтобы владение было передано Account-B
. Приведенный выше метод не требует принятия роли в Account-B
, потому что сегмент политика Bucket-B
разрешает доступ через роль IAM с Account-A
.