为什么 S3 存储桶 ARN 不包含 AWS 账号?



与其他 AWS 服务、s3 资源不同,ARN 不包含 AWS 账号。
几个示例 ARN 是:

--
  • Elastic Beanstalk 应用程序版本 --
    arn:aws:elasticbeanstalk:us-east-1:123456789012:environment/My 应用/我的环境

  • --
  • IAM 用户名 --
    arn:aws:iam::123456789012:user/David

  • --
  • 用于标记的 Amazon RDS 实例 --
    arn:aws:rds:eu-west-1:123456789012:db:mysql-db

另一方面,s3 存储桶 ARN 如下所示:

  • arn:aws:s3:::my_corporate_bucket/exampleobject.png

S3 存储桶 ARN 不需要账号或区域,因为存储桶名称在所有账户/区域中都是唯一的。

问题是"为什么 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/

但是,这样做的问题是,无法编写仅对我账户中的存储桶执行操作的策略。风险在于,我账户中的某些用户可能会通过将数据推送到另一个账户的存储桶来泄露数据。

最新更新