当前位置:  开发笔记 > 后端 > 正文

从EC2机器访问拒绝s3cmd

如何解决《从EC2机器访问拒绝s3cmd》经验,为你挑选了3个好方法。

我正在尝试为我的nginx服务器使用日志轮换配置,我将其用作位于EC2 Ubuntu实例上的反向代理机器.

我希望在轮换后将这些日志存储在S3存储桶上,但是当我尝试配置s3cmd工具时,我只是"访问被拒绝,你确定你的密钥有ListAllMyBuckets权限错误".

我很确定我的凭据在IAM上正确配置,尝试了至少五种不同的凭证(甚至是根信用凭证),结果相同.使用具有相同凭据的aws cli工具列出我本地计算机上的所有存储桶工作正常,这让我感到困惑,因为我的EC2实例上没有任何访问权限.

这是我跑的:

which s3cmd
/usr/local/bin/s3cmd

s3cmd --configure --debug

Access Key: **************
Secret Key: *******************************
Encryption password: 
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: False
HTTP Proxy server name:
HTTP Proxy server port: 0

这就是结果

...
DEBUG: ConnMan.put(): connection put back to pool (http://s3.amazonaws.com#1)
DEBUG: S3Error: 403 (Forbidden)
DEBUG: HttpHeader: x-amz-id-2: nMI8DF+............
DEBUG: HttpHeader: server: AmazonS3
DEBUG: HttpHeader: transfer-encoding: chunked
DEBUG: HttpHeader: x-amz-request-id: 5912737605BB776C
DEBUG: HttpHeader: date: Wed, 23 Apr 2014 13:16:53 GMT
DEBUG: HttpHeader: content-type: application/xml
DEBUG: ErrorXML: Code: 'AccessDenied'
DEBUG: ErrorXML: Message: 'Access Denied'
DEBUG: ErrorXML: RequestId: '5912737605BB776C'
DEBUG: ErrorXML: HostId: 'nMI8DF+............
ERROR: Test failed: 403 (AccessDenied): Access Denied
ERROR: Are you sure your keys have ListAllMyBuckets permissions?

我的nginx服务器前面唯一的东西是负载均衡器,但我不明白为什么它会干扰我的请求.这可能是我错过的其他东西吗?



1> abaid778..:

请检查IAM用户是否使用了哪些密钥

步骤将是

AWS控制台转到IAM面板

IAM 用户 > 在底部菜单中选择用户 >第二个选项卡是 权限

附加用户策略

{
"Version": "2012-10-17",
"Statement": [
 {
  "Effect": "Allow",
  "Action": ["s3:ListAllMyBuckets"],
  "Resource": "arn:aws:s3:::*"
},
{
  "Effect": "Allow",
  "Action": [
    "s3:ListBucket",
    "s3:GetBucketLocation"
  ],
  "Resource": "arn:aws:s3:::YOU-Bucket-Name"

},
{
  "Effect": "Allow",
  "Action": [
    "s3:PutObject",
    "s3:GetObject",
    "s3:DeleteObject"
  ],
  "Resource": "arn:aws:s3:::YOU-Bucket-Name/*"


}
]
}

让我知道事情的后续



2> Mr. Pundir..:

请不要相信--configure开关:

我面临同样的问题.它在--configure中显示403,但最后我保存了Settings,然后尝试:

错误:测试失败:403(AccessDenied):访问拒绝
重试配置?[是/否] n
保存设置?[y/N] y
配置保存到'/root/.s3cfg'

# s3cmd put MyFile s3://MyBucket/

& 有效..



3> 小智..:

当您设置它时,s3cmd在您的主目录中创建一个名为.s3cfg的文件.我会确保你把这个文件放在你的logrotate脚本可以读取的地方,然后使用-c标志.

例如,将logfile.txt文件上载到logbucket存储桶:

/ usr/local/bin/s3cmd -c /home/ubuntu/.s3cfg put logfile.txt s3:// logbucket

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有