相关疑难解决方法(0)

AWS S3存储桶权限 - 拒绝访问

我试图允许自己下载S3存储桶中的现有文件.我修改了Bucket Policy,如下所示:

        {
        "Sid": "someSID",
        "Action": "s3:*",
        "Effect": "Allow",
        "Resource": "arn:aws:s3:::bucketname/AWSLogs/123123123123/*",
        "Principal": {
            "AWS": [
                "arn:aws:iam::123123123123:user/myuid"
            ]
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的理解是,添加到策略应该为我的帐户"myuid"提供"bucketname"的完全权限,包括该桶中已有的所有文件.但是,当我尝试通过控制台中出现的链接下载任何这些文件时,我仍然会收到Access Denied错误.

有什么想法吗?

amazon-s3 amazon-web-services

30
推荐指数
5
解决办法
6万
查看次数

rails中的AWS S3 - 如何设置s3_signature_version参数

我正在尝试设置Amazon Simple Storage Service以用于rails.我收到此错误消息:

The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
Run Code Online (Sandbox Code Playgroud)

问题是我选择了法兰克福S3区域,并且只支持V4方案.这是在相同的错误消息这个职位,这将指导您解决 在这里,讲解如何"的设置:s3_signature_version参数:构建客户端时V4".命令是:

s3 = AWS::S3::Client.new(:s3_signature_version => :v4)
Run Code Online (Sandbox Code Playgroud)

我的问题是,我该怎么做?我在哪里放这个代码?

编辑:

我尝试:s3_signature_version => :v4按如下方式放入carrier_wave.rb,但在上传到heroku期间,它说[fog][WARNING] Unrecognized arguments: s3_signature_version,并没有任何区别,我仍然得到错误.

配置/初始化/ carrier_wave.rb:

    if Rails.env.production?
      CarrierWave.configure do |config|
        config.fog_credentials = {
          # Configuration for Amazon S3
          :provider              => 'AWS',
          :aws_access_key_id     => ENV['S3_ACCESS_KEY'],
          :aws_secret_access_key => ENV['S3_SECRET_KEY'],
          :s3_signature_version  => :v4
        }
        config.fog_directory     =  ENV['S3_BUCKET']
      end
    end
Run Code Online (Sandbox Code Playgroud)

编辑:

我已经使用北加利福尼亚地区创建了一个新的存储桶,为此不应该是一个问题,但我仍然得到完全相同的错误消息.

编辑:

这也没有任何区别:

    if Rails.env.production?
      CarrierWave.configure do |config| …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 amazon-web-services

7
推荐指数
1
解决办法
2215
查看次数

由于授权,无法访问S3预签名URL

使用Java8和aws-java-sdk 1.10.43我正在尝试获取一个S3文件的预签名URL.我确实找回了一个链接,但浏览它会导致此错误:

您提供的授权机制不受支持.请使用AWS4-HMAC-SHA256

为了强调,我希望生成一个可以通过电子邮件发送并在浏览器中打开的URL,而不是使用Java代码从该URL读取.

我正在使用波纹管代码,我相信我发现我需要以某种方式设置setSSEAlgorithm来使用"v4",但是我没能使它工作.我错过了什么?我应该配置什么(注意:我故意避免配置文件,我希望代码从环境变量设置所有属性)

Date expiration = <some date>;
GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, targetPath);
generatePresignedUrlRequest.setMethod(HttpMethod.GET);
generatePresignedUrlRequest.setExpiration(expiration);

AmazonS3 s3client = new AmazonS3Client(s3Credentials);
URL s = s3client.generatePresignedUrl(generatePresignedUrlRequest);
Run Code Online (Sandbox Code Playgroud)

铲斗位于欧洲中心1号

谢谢

java authorization amazon-s3 aws-java-sdk

6
推荐指数
1
解决办法
4198
查看次数