Я застрял в ситуации, когда пытаюсь использовать роль IAM для настройки уведомления о событии в корзине S3 для SQS.
Работает с aws_access_key_id и aws_secret_key_id, но не с ролевой ARN.
Работает:
client = boto3.client(
's3',
aws_access_key_id='XXXXXXXXXXXX',
aws_secret_access_key='XXXXXXXXXXXXXXX'
)
bucket_notifications_configuration = {
'QueueConfigurations': [{
'Events': ['s3:ObjectCreated:*'],
'Id': 'Test',
'QueueArn':'<SQS ARN>'
}]
}
client.put_bucket_notification_configuration(
Bucket=bucket_name,
NotificationConfiguration=bucket_notifications_configuration)
Но мы пытаемся достичь тех же результатов, используя роль IAM вместо идентификаторов по соображениям безопасности, я не смог найти ничего, что работает. Пробовал с помощью 'sts', все равно не повезло. Получение ошибок - «не разрешено выполнять: sts: AssumeRole на ресурсе:»
Не работает:
client = boto3.client(
's3',
role_arn = <IAM Role ARN>
)
bucket_notifications_configuration = {
'QueueConfigurations': [{
'Events': ['s3:ObjectCreated:*'],
'Id': 'Test',
'QueueArn':<SQS ARN>
}]
}
client.put_bucket_notification_configuration(
Bucket=bucket_name,
NotificationConfiguration=bucket_notifications_configuration)
Также попытался предоставить полный доступ к s3 для роли, на которой запускается эта лямбда, без предоставления доступа / секретного ключа или роли при инициализации клиента. Но он жалуется на отказ в доступе.
Может кто-нибудь помочь, пожалуйста?