与其他AWS服务,s3资源不同,ARN不包含AWS帐号。
很少有示例ARN:
-Elastic Beanstalk应用程序版本-
arn:aws:elasticbeanstalk:us-east-1:123456789012:environment / My
App / MyEnvironment
-IAM用户名-
arn:aws:iam :: 123456789012:user / David
-用于标记的Amazon RDS实例-
arn:aws:rds:eu-west-1:123456789012:db:mysql-db
另一方面,s3存储桶ARN看起来像:
答案 0 :(得分:4)
S3存储桶ARN不需要帐号或区域,因为存储桶名称在所有帐户/区域中都是唯一的。
答案 1 :(得分:1)
但是,与此有关的问题是,不可能编写仅对我帐户中的存储桶限制操作的策略。风险是我帐户中的某些用户可能会通过将数据推送到另一个帐户的存储桶中而泄漏数据。
答案 2 :(得分:0)
问题是“为什么 S3 存储桶 ARN 不包含 AWS 帐号?”答案是因为 S3 是第一个推出的 AWS 服务,从那时起很多事情都发生了变化。 S3 尚未设法在存储桶名称中实现 ARN。我们不知道这是为什么。可能是因为它在技术上具有挑战性,或者只是服务团队没有优先考虑它。
验证正在上传的存储桶对象是否属于您以避免数据意外泄漏到其他人的存储桶的一种方法是使用最近发布的存储桶所有者条件:
https://aws.amazon.com/about-aws/whats-new/2020/09/amazon-s3-bucket-owner-condition-helps-validate-correct-bucket-ownership https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-owner-condition.html
另一种方式(如果支持)是使用 S3 接入点:https://aws.amazon.com/s3/features/access-points/