如何在我的S3存储桶上设置ACL以进行简单的基本操作

时间:2017-11-23 18:26:34

标签: amazon-web-services amazon-s3 amazon acl

我正在使用S3来存储我的备份。我是通过aws s3和cron做的。

我的桶公之于众。

我想以这样的方式设置ACL:只有我可以对它进行CRUD + ListAll操作,就是这样。我已经阅读了他们的文档,但它太复杂了,而我需要一个简单的事情。我怎么能这样做?

更新

1)我的VPS服务器上的bash脚本应该可以通过API访问S3存储桶;可能还必须有IP限制

2)我应该从任何地方和任何IP

通过Web控制台/ S3网站访问我的桶

3)其他人无法访问该桶

2 个答案:

答案 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. https://console.aws.amazon.com/s3/打开Amazon S3控制台。
  2. 选择要附加上述政策的存储区。
  3. 选择权限。
  4. 选择编辑存储桶策略。
  5. 将上述政策复制到Bucket Policy Editor窗口。
  6. 替换存储桶策略中的值(存储桶名称,IP地址)。
  7. 选择保存,然后选择关闭。

答案 1 :(得分:0)

您正在使用AWS命令行工具(awscli)将文件同步到S3。你可能是为awscli提供凭据(很少有人使用未经验证的awscli)。

因此,假设您已通过身份验证,为什么要将S3存储桶公开?这里要做的正确的事情是确保您使用的凭据与允许您访问S3存储桶的IAM策略相关联。然后删除S3存储桶策略。

如果由于某种原因,你确实希望能够在没有身份验证的情况下访问S3存储桶(通常不是一个好主意)那么你可以通过applying a bucket policy使事情更安全一些您的IP地址。

希望这有帮助。