Лямбда-функция: Amazon S3 API get-bucket-tagging получает ошибку разрешения - PullRequest
0 голосов
/ 02 мая 2019

Я хочу получить теги S3 Bucket Object в моей функции AWS Lambda (среда Python 3.6). Я успешно получаю теги объектов в своей локальной среде, но когда я запускаю их в лямбда-функции AWS, я получаю сообщение об ошибке:

"errorMessage": "Произошла ошибка (AccessDenied) при вызове операции GetObjectTagging: доступ запрещен", "

Хотя я создал роль IAM со всеми записями в корзине s3 и объектах.

Политика ролей IAM:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elastictranscoder:*",
                "s3:*"
            ],
            "Resource": "*"
        }
    ]
} 

Код:

python
import boto3

s3 = boto3.client('s3')
bucket = 'bucket_name'
key = 'SampleVideo_360x240_2mb (1)----swae.mp4'
response = s3.get_object_tagging(
        Bucket=bucket,
         Key=key,
     )
tag_set = response.get("TagSet")
print(tag_set)

1 Ответ

0 голосов
/ 05 мая 2019

Чтобы проверить эту ситуацию, я сделал следующее:

  • Создана роль IAM с разрешениями, которые вы указали в качестве встроенной политики
  • Создал функцию AWS Lambda с вашим кодом (но использовал мой собственный Bucket and Key)

Лямбда-код был в функции:

import boto3

def lambda_handler(event, context):

    s3 = boto3.client('s3')
    bucket = 'my-bucket'
    key = 'foo.jpg'
    response = s3.get_object_tagging(
            Bucket=bucket,
             Key=key,
         )
    tag_set = response.get("TagSet")
    print(tag_set)

Я вызвал функцию в качестве теста, и она успешно запустилась и вывел следующее:

START RequestId: 9e21b6b5-5456-4ec7-9488-0c11c1d52fca Version: $LATEST
[{'Key': 'cheese', 'Value': 'gruyere'}]
END RequestId: 9e21b6b5-5456-4ec7-9488-0c11c1d52fca
REPORT RequestId: 9e21b6b5-5456-4ec7-9488-0c11c1d52fca  Duration: 1218.70 ms    Billed Duration: 1300 ms    Memory Size: 128 MB Max Memory Used: 60 MB  

Итак, все прошло хорошо для меня!

...