【问题标题】:Can't access s3 buckets after creating instance using IAM profile使用 IAM 配置文件创建实例后无法访问 s3 存储桶
【发布时间】:2015-08-19 22:08:51
【问题描述】:

我正在尝试从应用允许完全访问这些 s3 存储桶的 IAM 配置文件创建的实例访问一些 s3 存储桶。我能够使用aws cli 执行所需的操作。但是,我的应用程序是用 Ruby 编写的,并使用了 fog gem。使用雾,我无法访问这些存储桶。我得到的只是拒绝访问。此外,我抓住了所需的钥匙: aws_access_key_id=`curl http://169.254.169.254/latest/meta-data/iam/security-credentials/${instance_profile} | grep AccessKeyId | cut -d':' -f2 | sed 's/[^0-9A-Z]*//g'` aws_secret_access_key=`curl http://169.254.169.254/latest/meta-data/iam/security-credentials/${instance_profile} | grep SecretAccessKey | cut -d':' -f2 | sed 's/[^0-9A-Za-z/+=]*//g'` 并尝试访问存储桶。再次,访问被拒绝。

有什么我应该错过的吗?

【问题讨论】:

  • 不要使用雾宝石,试试fog-awsgem。希望它能解决您的问题
  • 谢谢@cmthakur,我会试一试的。
  • 访问权限是设置在 S3 存储桶还是 IAM 用户上? IAM 用户和 S3 存储桶是否属于同一个根 AWS 账户?
  • @FrederickCheung,因为我能够使用我认为使用 boto 的 aws cli 列出存储桶。如果我错了,请纠正。
  • @AmitKumarGupta,我已经为 IAM 用户设置了权限,是的,该用户属于同一个根 AWS 账户。

标签: ruby amazon-web-services amazon-s3 boto amazon-iam


【解决方案1】:

除了访问密钥和秘密访问密钥之外,临时凭证(例如由实例元数据提供的凭证)也具有会话令牌 - 没有令牌,凭证无效。

fog/fog-aws 的当前版本支持为您获取实例凭据,例如

storage = Fog::Storage::AWS.new(region: "eu-west-1", use_iam_profile:true)

这也将在凭据过期之前重新获取凭据

【讨论】:

  • 感谢@frederick,它成功了。我什至不需要提及该地区。
猜你喜欢
  • 2019-08-15
  • 2022-01-10
  • 2019-01-14
  • 2016-03-12
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 2016-06-11
  • 2017-08-17
相关资源
最近更新 更多