为什么 SQS ARN 的区域和账户 ID 不能为空?

Rjd*_*lee 2 amazon-sqs amazon-web-services

我正在使用arn:aws:sqs:::queue_name我的 AWS IAM 策略,但在尝试从 Python 的 AWS 包装器 boto3 访问队列时收到拒绝访问错误。

Rjd*_*lee 5

S3 存储桶名称在所有账户和区域中都是唯一的,这意味着您无需指定区域或账户 ID。对于S3桶,你可以使用下面的ARN没有问题:arn:aws:s3:::bucket_name。这会将 ARN 应用于名称等于 bucket_name 的单个存储桶。

但是,SQS 队列名称既不是跨账户唯一,也不是跨区域唯一。这意味着您需要指定确切的区域或账户 ID,或者使用通配符 * 字符,这意味着 ARN 适用于所有具有相同名称的队列。我曾经arn:aws:sqs:*:*:queue_name将 ARN 应用于名称等于 queue_name 的所有队列。