【问题标题】:Ruby Amazon S3 Access Denied when listing buckets列出存储桶时 Ruby Amazon S3 访问被拒绝
【发布时间】:2012-06-24 06:23:29
【问题描述】:

Ruby 新手在这里。

我获得了访问亚马逊云上数据的权限。我开始认为访问密钥已关闭,但我可能错了。有人帮忙!

我将 aws 文件夹作为插件

>> Version
=> "0.6.3"

>> AWS::S3::Base.establish_connection!(:access_key_id =>'*******', :secret_access_key => '*****')
=> #<AWS::S3::Connection:0x007fd0539bb4c0 @options={:server=>"s3.amazonaws.com", :port=>80, :access_key_id=>"****", :secret_access_key=>"****"}, @access_key_id="****", @secret_access_key="****", @http=#<Net::HTTP s3.amazonaws.com:80 open=false>>

>> AWS::S3::Service.buckets   
=> AWS::S3::AccessDenied: Access Denied

from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/error.rb:38:in `raise'
from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/base.rb:72:in `request'
from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/base.rb:88:in `get'
from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/service.rb:21:in `buckets'
from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:183:in `block in buckets'
from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:152:in `expirable_memoize'
from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:182:in `buckets'

【问题讨论】:

  • 请注意,秘密访问密钥至少对我和其他人可见...(在侧边栏中查看了 2 次​​i>。)
  • 您在 S3 存储桶中是否拥有适当的权限以允许使用这些密钥进行访问?
  • 嘿约翰。谢谢。当您提到权限时,您是指访问密钥吗?因为就我而言,它们是正确的,但它们来自客户。
  • 已解决:访问密钥无效。谢谢大家
  • @Viccari 你明白了。谢谢!如果您对我的流程有任何疑问,请告诉我。

标签: ruby-on-rails ruby amazon-s3 amazon-web-services buckets


【解决方案1】:

原来我的访问密钥无效。我让管理员授予我更多权限,它终于奏效了。

谢谢!!

【讨论】:

    【解决方案2】:

    您可以通过以下方式解决此问题。

    1. 首先转到亚马逊的 s3 控制台。
    2. 然后点击存储桶。
    3. 然后单击右侧的属性选项卡。
    4. 然后点击权限选项
    5. 点击添加更多权限
    6. 选中所有复选框并保存。

    【讨论】:

    • 这违背了安全策略的全部目的。
    • 附加“AmazonS3FullAccess”策略就足够了。
    【解决方案3】:

    我必须去 IAM -> 用户 -> “附加用户策略”并让我的用户成为管理员

    【讨论】:

      【解决方案4】:

      IAM,您的用户所属的组,并添加 S3FullAccess 或 S3 ReadOnlyAccess

      【讨论】:

        【解决方案5】:

        这个问题的正确答案肯定是: IAM -> 用户 -> “附加用户策略”并使您的用户成为管理员

        【讨论】:

        • 放弃AdministratorAccess 是一个非常糟糕的主意,因为如果有人要破坏该用户,那么他们可以很容易地在所有地区启动20 台服务器。这很糟糕,因为它会花费你很多钱。相反,使用 S3FullAccess、S3ReadOnly 或理想情况下,使用更严格的访问策略,如此处所示 aws.amazon.com/blogs/security/…
        猜你喜欢
        • 2017-02-12
        • 2019-04-20
        • 2019-02-03
        • 2018-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        相关资源
        最近更新 更多