Доступ к корзине S3 из другой учетной записи через Lambda, размещенную в частных подсетях VPC - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть две учетные записи AWS A и B, и у меня ниже установленной настройки

Учетная запись A: S3 Bucket

Учетная запись B: хостинг Lambda, которому необходим доступ к S3 Bucket из учетной записи A

Я создал роль IAM с приведенной ниже политикой в ​​учетной записи B и прикрепил ее к Lambda

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:ListBucket",
        "Resource": "arn:aws:s3:::dest-bucket-name/*"
    },
    {
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::dest-bucket-name/*"
    }
]
}

Я также связал политику сегмента (ниже) с корзиной S3 в учетной записи A

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::AccountBID:role/lambda-role"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::dest-bucket-name/*"
    }
]
}

Конечные точки VPC настроены правильно. Лямбда-запрос на загрузку артефакта из корзины истекает, может кто-нибудь указать мне, где я ошибаюсь.

1 Ответ

0 голосов
/ 12 декабря 2019

Выделяются две вещи:

  1. Вы уверены, что ваша лямбда успешно выполняет свою роль?

  2. s3:ListBucket это разрешение применяетсяна ведро . arn:aws:s3:::dest-bucket-name/* соответствует всем объектам в ведре. Попробуйте применить ListBucket отдельно, к arn:aws:s3:::dest-bucket-name. (Обычно шаблон имеет один блок политики для операций object и другой блок политики для операций bucket .)

...