我陷入了尝试使用 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 角色而不是 ID 来实现相同的结果,但我找不到任何可行的方法。尝试使用'sts',仍然没有运气。出现错误 - “无权执行:sts:AssumeRole on resource:”
不工作:
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)
还尝试在初始化客户端时为运行此 lambda 的角色提供完全 s3 访问权限,而无需提供访问/密钥或角色。但它抱怨拒绝访问。
有人可以帮忙吗?