我正在使用S3来存储我的备份。我是通过aws s3
和cron做的。
我的桶公之于众。
我想以这样的方式设置ACL:只有我可以对它进行CRUD + ListAll操作,就是这样。我已经阅读了他们的文档,但它太复杂了,而我需要一个简单的事情。我怎么能这样做?
更新
1)我的VPS服务器上的bash脚本应该可以通过API访问S3存储桶;可能还必须有IP限制
2)我应该从任何地方和任何IP
通过Web控制台/ S3网站访问我的桶3)其他人无法访问该桶
答案 0 :(得分:0)
您可以创建S3存储桶策略,以便只有您的PUBLIC IP地址才能访问您的存储桶。
这是一个示例政策。将存储桶名称更改为存储桶名称。将IP地址更改为您的公共IP地址:
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": "*",
"Action":["s3:*"] ,
"Resource": [
"arn:aws:s3:::examplebucket",
"arn:aws:s3:::examplebucket/*"],
"Condition" : {
"IpAddress" : {
"aws:SourceIp": "192.168.143.0/32"
}
}
}
]
}
答案 1 :(得分:0)
您正在使用AWS命令行工具(awscli)将文件同步到S3。你可能是为awscli提供凭据(很少有人使用未经验证的awscli)。
因此,假设您已通过身份验证,为什么要将S3存储桶公开?这里要做的正确的事情是确保您使用的凭据与允许您访问S3存储桶的IAM策略相关联。然后删除S3存储桶策略。
如果由于某种原因,你确实希望能够在没有身份验证的情况下访问S3存储桶(通常不是一个好主意)那么你可以通过applying a bucket policy使事情更安全一些仅您的IP地址。
希望这有帮助。