Ruby Can';在使用IAM配置文件创建实例后,不要访问s3存储桶

Ruby Can';在使用IAM配置文件创建实例后,不要访问s3存储桶,ruby,amazon-web-services,amazon-s3,boto,amazon-iam,Ruby,Amazon Web Services,Amazon S3,Boto,Amazon Iam,我试图从应用IAM配置文件创建的实例访问一些s3存储桶,该配置文件允许完全访问这些s3存储桶。我能够使用aws cli执行所需的操作。然而,我的应用程序是用Ruby编写的,并且使用了foggem。使用fog,我无法访问这些桶。我得到的只是访问被拒绝。此外,我还抓到了所需的钥匙: aws\u访问\u键\u id=`curlhttp://169.254.169.254/latest/meta-data/iam/security-credentials/${instance_profile}grep

我试图从应用IAM配置文件创建的实例访问一些s3存储桶,该配置文件允许完全访问这些s3存储桶。我能够使用aws cli执行所需的操作。然而,我的应用程序是用Ruby编写的,并且使用了
fog
gem。使用fog,我无法访问这些桶。我得到的只是访问被拒绝。此外,我还抓到了所需的钥匙:

aws\u访问\u键\u id=`curlhttp://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=`curlhttp://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/fog aws支持为您获取实例凭据,例如

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

这还将在凭据过期之前重新蚀刻凭据

请尝试使用gem,而不是使用fog gem。希望它能解决你的问题谢谢@cmthakur,我会试一试。访问权限是在S3 bucket上设置的还是在IAM用户上设置的?IAM用户和S3 bucket是否属于同一根AWS帐户?@FrederickCheung,因为我可以使用AWS cli列出bucket,我认为它使用boto。如果我错了,请更正。@AmitKumarGupta,我已经为IAM用户设置了权限,是的,该用户属于同一个根AWS帐户。谢谢@frederick,成功了。我甚至不必提及该地区。