2017-01-31 5 views
0

Мы пытались взломать проблему с разрешениями ресурсов, связанными с S3 и Lambda.Получение доступа AWS к частному ресурсу S3

У нас есть корень счет, который INTURN имеет - Account A - владелец Bucket счета B - Используется для загрузки (через CORS) и дать доступ к S3 изображениям РОЛЬ L - У нас есть функция лямбды, которая назначена для выполнения этой роли с Полный доступ S3

ковши имеют политики доступа, как показано ниже -

{ 
"Version": "2012-10-17", 
"Id": "Policyxxxxxxxxx", 
"Statement": [ 
    { 
     "Sid": "Stmt44444444444", 
     "Effect": "Deny", 
     "NotPrincipal": { 
      "AWS": [ 
       "arn:aws:iam::xxxxxxxxxxxx:user/account-A", 
       "arn:aws:iam::xxxxxxxxxxxx:role/role-L" 
      ] 
     }, 
     "Action": [ 
      "s3:*", 
     ], 
     "Resource": [ 
      "arn:aws:s3:::bucket", 
      "arn:aws:s3:::bucket/*" 
     ] 
    } 
] 

}

выпуска - лямбда может для доступа к ресурсу S3, только если для ACL объекта установлено значение Public/read-only. Но Lambda терпит неудачу, когда ресурс настроен на «частный».

Политика в отношении ковша только дает доступ к ведру. Есть ли способ предоставить доступ к ресурсу Role L для доступа к ресурсу?

ответ

2

Объекты, хранящиеся в ведрах Amazon S3, являются приватными по умолчанию. Нет необходимости использовать политику Deny, если вы не хотите переопределить другую политику, предоставляющую доступ к контенту.

Я бы рекомендовал:

  • Удалите Deny политику
  • Создание IAM Роль для вашей функции AWS Lambda и дать разрешение на доступ ведро S3 в этой роли.

Вы можете добавить Bucket политики для нормального использования по мере необходимости, но это не должно влиять на доступ к вашей лямбда-функции, которая дарована через роль.

 Смежные вопросы

  • Нет связанных вопросов^_^