我想连接一个位于账户 A 中的 ec2 实例,它应该能够从账户 A 和另一个账户 B 访问 Bucket。如何?

I want to connect an ec2 instance which is in account A which should be able to access Bucket from both account A and another account B. How?

我看到官方文档https://aws.amazon.com/premiumsupport/knowledge-center/s3-instance-access-bucket/说要在帐户和附加中创建角色! 我有另一个解决方案,即在账户 B 中创建一个 IAM 用户并仅授予它 S3 存储桶权限,并使用该用户在账户 B 中配置 EC2 实例。那么,如果我这样做,它会起作用吗? EC2 实例仍然可以从其帐户访问 S3 吗?

看来您的情况是:

  • 账户 A 中的 Amazon EC2 实例
  • 账户 A (Bucket-A)
  • 中的 Amazon S3 存储桶
  • 账户 B (Bucket-B)
  • 中的 Amazon S3 存储桶
  • 您希望 EC2 实例能够访问两个存储桶

您应该执行以下操作:

  • 为 Amazon EC2 实例创建一个 IAM 角色 (Role-A):
    • 访问权限Bucket-A
    • 访问权限Bucket-B
  • Bucket-B 添加 存储桶策略 ,允许从 Role-A 访问存储桶(这将授予“cross-account 访问权限”)

就是这样!由于 IAM 角色中的权限,该实例将能够访问 Bucket-A,并且由于 IAM 角色和存储桶策略中的权限,它将能够访问 Bucket-B