ElasticCache备份数据导出到S3
ElasticCache 备份的数据导出到S3,S3需要开启对应的服务权限,才可以导出
已美东弗吉尼亚为例,S3策略如下。打开存储桶,在权限中设置存储桶策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "us-east-1.elasticache-snapshot.amazonaws.com" ] }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::tx-hw-data-backup", # S3名称 "arn:aws:s3:::tx-hw-data-backup/*" # S3名称 ] } ] }
如果我想从外部的服务器上走公网下载S3中的文件,策略该怎么写呢?
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", # 第一个策略 "Principal": { "Service": "us-east-1.elasticache-snapshot.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::elastic-cache-backup-1", "arn:aws:s3:::elastic-cache-backup-1/*" ] }, { "Sid": "AllowExternalServerAccess", # 第二个策略 "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::elastic-cache-backup-1/*", "Condition": { "IpAddress": { "aws:SourceIp": "43.130.141.213/32" } } } ] }
写多条桶策略,格式如下:
在Amazon S3中,如果有多条策略需要应用到同一个存储桶,你需要在存储桶策略中分别列出每一条策略。每条策略都遵循相同的JSON格式,并在同一个Statement
数组中列出。以下是一个示例,展示了如何在同一个存储桶策略中包含多条策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::your-bucket-name/*", "Condition": {"IpAddress": {"aws:SourceIp": "external-server-ip-address-1/32"}} }, { "Sid": "Statement2", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::account-id:user/specific-user"}, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": ["arn:aws:s3:::your-bucket-name/specific-folder/*"] }, { "Sid": "Statement3", "Effect": "Deny", "Principal": "*", "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] }
在这个示例中:
Statement1
允许来自特定IP地址的外部服务器访问存储桶中的所有对象(读取权限)。Statement2
允许指定的AWS账户中的特定用户访问存储桶中特定文件夹的对象,并具有读取和写入权限。Statement3
拒绝所有用户对存储桶中任何对象的删除权限。
请注意以下几点:
Sid
是每条策略的唯一标识符,用于区分不同的策略语句。Effect
可以是Allow
或Deny
,用于指定策略的效果。Principal
指定了哪些AWS账户、用户或角色受到策略的影响。使用*
表示所有用户。Action
列出了允许或拒绝的操作,如s3:GetObject
、s3:PutObject
和s3:DeleteObject
等。Resource
指明了策略适用的S3资源,可以是整个存储桶或特定的对象或文件夹。Condition
是可选的,用于进一步限制策略的应用条件,如IP地址范围。
在实际应用中,你需要根据你的具体需求来编写策略。请务必仔细检查和测试你的策略,以确保它们按照预期工作,并且不会意外地暴露敏感数据或允许未经授权的访问。此外,定期审查和更新策略也是保持良好安全实践的一部分。