Har*_*Fun 6 amazon-s3 amazon-ec2 amazon-web-services
我正在寻找 S3 存储桶中数据的每日备份选项。我在存储桶上启用了版本控制,并计划也打开复制以提高耐用性。
我正在尝试解决这种情况,即有人意外删除了 S3 存储桶,或者有人错误地关闭了版本控制,并且需要恢复完整或部分数据(关闭版本控制不太可能,因为它是复制的先决条件)。
查看此处的AWS文档, https://aws.amazon.com/about-aws/whats-new/2019/09/amazon-s3-introduces-same-region-replication/ 建议复制可用于备份也。
我知道对象上的删除不会传播到目标存储桶,但无法真正理解存储桶本身被删除时的情况,无论是否被复制。
如果复制和版本控制不足以满足我的备份,请考虑更传统的选项,例如设置日常作业以定期保存到 EC2 实例本地文件系统。
目前还排除了将 MFA 添加到存储桶的可能性,因为我正在使用 CloudFormation 设置系统,并且认为它不受支持。
您确实不需要将 S3 文件复制到任何 EC2 实例或类似的东西,Amazon S3 Standard 的设计目标是跨多个可用区实现 99.999999999% 的对象的持久性,您知道这意味着什么吗?Amazon 本身会在您所在区域的其他可用区复制 S3 对象,以保证这种持久性。
AWS 对 S3 的评价:
主要特征:
此外,您已经启用了版本控制(另一层备份),如果您想花更多的钱来复制存储桶,这取决于您,如果您负担得起,您将拥有另一层备份,但相信我,您不会不需要这个,仅使用 S3 标准存储就足够了。
如果您想防止对象被意外删除并且无法启用 MFA,您可以创建存储桶策略来避免任何类型的删除操作:
{
"Id": "Policy1588185431596",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1588185426140",
"Action": [
"s3:DeleteBucket",
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectTagging",
"s3:DeleteObjectVersion",
"s3:DeleteObjectVersionTagging"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::yourbucketname/*",
"arn:aws:s3:::yourbucketname"
],
"Principal": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果您想将删除操作限制为除 root 用户之外的所有用户,您可以这样做:
{
"Id": "Policy1588186664547",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1588186644754",
"Action": [
"s3:DeleteBucket",
"s3:DeleteBucketPolicy",
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectTagging",
"s3:DeleteObjectVersion",
"s3:DeleteObjectVersionTagging"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::yourbucketname/*",
"arn:aws:s3:::yourbucketname"
],
"Condition": {
"StringNotEquals": {
"aws:userid": "AWSAccountNumber"
}
},
"Principal": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
此外,您还可以使用策略模拟器检查您的策略 ,以确保该策略符合您的预期。
您可以将此策略添加到您的 CloudFormation 模板中。
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |