Amazon S3作为备份

时间:2016-04-12 19:14:28

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

我有一个问题我需要为我的客户实现每日备份,我有一个应用程序来管理在客户端本地工作的呼叫中心,我有数据库和应用程序,我需要每天做一个在云中备份,我考虑过S3,但我对安全性并不担心,因为我需要创建一个可以上传到S3 Bucket的AWS公共帐户,并且该帐户将在服务器,所以如果有人拿到密钥,他们就可以上传东西,或者淹没S3 Bucket,有一种安全的方法吗?

我知道,由于服务器位于客户端,基本上很难保持安全性,但我试图尽可能地让事情变得困难,让某人得到或锁定/访问等等。 / p>

如果我可以使用任何其他服务,那么知道它会很有趣。

1 个答案:

答案 0 :(得分:1)

我强烈建议您阅读有关管理S3资源访问权限的AWS文档http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html

您绝对不需要创建具有公共访问权限的公共帐户。您可以简单地创建一个策略,将上载功能限制为您想要的任何参数。然后将其上传到存储桶的权限中。

一个示例存储桶策略,限制对特定IAM用户的访问,这些用户从特定IP地址连接,并进一步限制上传到特定文件类型(.zip)可能如下所示:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddCannedAcl",
      "Effect":"Allow",
      "Principal": {"AWS": ["arn:aws:iam::111122223333:root","arn:aws:iam::444455556666:root"]}, 
      "Action":["s3:PutObject","s3:PutObjectAcl"],
      "Resource": "arn:aws:s3:::your-bucket-name/*.zip",
      "Condition":{
        "StringEquals":{"s3:x-amz-acl":["public-read"]},
        "IpAddress" : { "aws:SourceIp" : ["10.0.0.0/24", "192.168.0.9/32"] },

        }
    }
  ]
}

在上文中,您将更改以下内容:

  1. "校长"下的IAM用户列表。您将为您为每个客户创建的单个IAM用户补充这些内容。
  2. 您的存储桶名称和文件类型"资源"。
  3. 最后,您可以使用" IpAddress"将IP地址列入白名单。如将服务器的公共IP地址列入白名单所示。
  4. 您可以进一步限制用户将文件上传到特定时间的能力(更复杂,但可以完成)。在这种情况下,上传的能力将限于特定的IAM用户,在特定的时间从特定的源IP地址上传特定的文件类型。 IMO对备份的上传限制非常紧张。由于您在上传文件后没有给任何人下载文件的能力,我觉得这是一个合理且强大的安全级别,最大的风险是流氓上传,这会花费您的存储费用;您还可以设置警报以通知您可疑活动。关键是您的方案看似风险很低,您可以轻松管理您的需求。

    最后,根据您需要访问备份数据的频率,您应该考虑使用Glacier Vaults而不是S3存储桶...... Glacier的成本要低得多,并且专为需要不经常访问的数据而设计。