Security AmazonS3作为备份

Security AmazonS3作为备份,security,amazon-web-services,amazon-s3,Security,Amazon Web Services,Amazon S3,我遇到了一个问题,我需要为我的客户实施每日备份,我有一个用于管理呼叫中心的应用程序,在客户机上本地工作,我有数据库和应用程序,我需要在云中进行每日备份,我正在考虑S3,但我有点担心安全性,因为我需要创建一个AWS公共帐户,该帐户可以上传到S3存储桶,并且该帐户将位于服务器中,所以如果有人获得了密钥,他们将能够上传东西,或者淹没S3存储桶,有没有安全的方法 我知道,由于服务器在客户端,基本上很难维护安全性,但我正试图让事情尽可能困难,让人获得或密钥/访问等 如果有任何其他服务我可以使用,我很想知道

我遇到了一个问题,我需要为我的客户实施每日备份,我有一个用于管理呼叫中心的应用程序,在客户机上本地工作,我有数据库和应用程序,我需要在云中进行每日备份,我正在考虑S3,但我有点担心安全性,因为我需要创建一个AWS公共帐户,该帐户可以上传到S3存储桶,并且该帐户将位于服务器中,所以如果有人获得了密钥,他们将能够上传东西,或者淹没S3存储桶,有没有安全的方法

我知道,由于服务器在客户端,基本上很难维护安全性,但我正试图让事情尽可能困难,让人获得或密钥/访问等


如果有任何其他服务我可以使用,我很想知道。

我强烈建议您阅读AWS关于管理S3资源访问权限的文档

您绝对不需要创建一个公众可以访问您的服务的公共帐户。您只需创建一个策略,将上载能力限制为所需的任何参数。然后将其上传到bucket的权限中

示例bucket策略限制从特定IP地址连接的特定IAM用户的访问,并进一步限制上传到特定文件类型(.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"] },

        }
    }
  ]
}
在上述步骤中,您将更改以下内容:

  • “委托人”下的IAM用户列表。您将为您为每个客户创建的单个IAM用户补充这些内容
  • “资源”下的bucket名称和文件类型
  • 最后,您可以使用“IpAddress”将IP地址列入白名单,如中所示,白名单中列出了服务器的公共IP地址
  • 您可以进一步限制用户在一天中的特定时间上传文件的能力(更复杂,但可以做到)。在这种情况下,上载能力将限于特定IAM用户,在一天中的特定时间从特定源IP地址上载特定文件类型。在我看来,备份的上传限制非常严格。既然你没有给任何人在文件上传后就可以下载的能力,我觉得这是一个合理而可靠的安全级别,最大的风险是恶意上传,这将花费你的存储费用;您还可以设置警报以通知可疑活动。关键是,您的场景看起来是低风险的,您可以轻松地管理您的需求


    最后,根据你需要多长时间访问备份数据,你应该考虑使用冰窖而不是S3桶…Glacier的价格要便宜得多,而且专为不经常需要访问的数据而设计。

    感谢您的解释,这正是我所寻找的,有了这些限制,我想一切都会好起来,我会看看Glacier保险库,我不知道!顺便说一句,我很乐意读这些文件。谢谢你接受这个答案!