AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何使用对象锁定在我的 Amazon S3 桶之间设置跨账户复制?
我希望在已启用对象锁定的 Amazon Simple Storage Service(Amazon S3)桶上设置跨账户复制。
解决方法
为目标存储桶启用对象锁定
要为 Amazon S3 存储桶设置复制,请为目标存储桶启用对象锁定。
注意: 启用 S3 对象锁定后,将无法关闭对象锁定或暂停存储桶的版本控制。
创建一个用于复制的 IAM 角色并向其附加必要的权限
在 IAM 控制台中为具有 Amazon S3 信任关系的源账户创建一个用于复制的 AWS Identity and Access Management (IAM) 角色。
示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
向 IAM 角色附加以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceBucketPermissions", "Effect": "Allow", "Action": [ "s3:GetObjectRetention", "s3:GetObjectVersionTagging", "s3:GetObjectVersionAcl", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectLegalHold", "s3:GetReplicationConfiguration" ], "Resource": [ "arn:aws:s3:::SourceBucketName/*", "arn:aws:s3:::SourceBucketName" ] }, { "Sid": "DestinationBucketPermissions", "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ObjectOwnerOverrideToBucketOwner", "s3:GetObjectVersionTagging", "s3:ReplicateTags", "s3:ReplicateDelete" ], "Resource": [ "arn:aws:s3:::DestBucketName/*" ] } ] }
如果您使用 AWS Key Management Service (AWS KMS) 密钥,则还要向您的 IAM 角色附加以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SourceBucketPermissions", "Effect": "Allow", "Action": [ "s3:GetObjectRetention", "s3:GetObjectVersionTagging", "s3:GetObjectVersionAcl", "s3:ListBucket", "s3:GetObjectVersionForReplication", "s3:GetObjectLegalHold", "s3:GetReplicationConfiguration" ], "Resource": [ "arn:aws:s3:::SourceBucketName/*", "arn:aws:s3:::SourceBucketName" ] }, { "Sid": "DestinationBucketPermissions", "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ObjectOwnerOverrideToBucketOwner", "s3:GetObjectVersionTagging", "s3:ReplicateTags", "s3:ReplicateDelete" ], "Resource": [ "arn:aws:s3:::DestBucketName/*" ] }, { "Sid": "SourceBucketKMSKey", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "SourceBucketKMSKeyARN" }, { "Sid": "DestinationBucketKMSKey", "Action": [ "kms:Encrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "DestinationBucketKMSKeyARN" } ] }
更新 AWS KMS 密钥权限
配置目标账户的 AWS KMS 密钥,以允许源账户中的复制 IAM 角色访问该密钥。您可以使用 SSE-S3 加密,但不能使用托管 AWS KMS 密钥 aws/S3 进行跨账户复制。有关详细信息,请参阅复制加密对象(SSE-S3、SSE-KMS、DSSE-KMS、SSE-C)。
示例:
{ "Sid": "AllowS3ReplicationSourceRoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789101:role/s3-replication-role" }, "Action": [ "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "*" }
**注意:**如果您在密钥策略的 Resource(资源)中使用通配符 (*),则该策略仅会向复制的 IAM 角色授予 AWS KMS 密钥的权限。该策略不允许复制角色提升其权限。
将以下存储桶策略添加到目标账户
在 Principal(主体)部分中,添加您创建的复制 IAM 角色的 Amazon 资源名称 (ARN)。
示例:
{ "Version": "2012-10-17", "Id": "PolicyForDestinationBucket", "Statement": [ { "Sid": "ReplicationPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:ReplicateDelete", "s3:ReplicateObject", "s3:ObjectOwnerOverrideToBucketOwner", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource": [ "arn:aws:s3:::DestBucketName/*", "arn:aws:s3:::DestBucketName" ] } ] }
复制用于 S3 存储桶的 IAM 角色
完成以下步骤:
- 打开 Amazon S3 控制台。
- 选择 Buckets(存储桶),然后选择您的源存储桶。
- 选择 Management(管理)选项卡。
- 在 Replication rules(复制规则)下,选择 Create replication rule(创建复制规则)。
- 输入规则的名称。
- 在 Source bucket(源存储桶)下,选择规则范围以确定复制应用于特定对象前缀还是应用于存储桶的全部内容。
- 在 Destination(目标)部分下,选择 Specify a bucket in another account(指定另一个账户中的存储桶),然后输入目标存储桶的名称和账户 ID。
- 在 IAM role(IAM 角色)下,选择 Choose from existing IAM roles(从现有 IAM 角色中选择)。
- 选择 Create new role(创建新角色)。
- 或 -
如果您已创建角色或存在现有复制规则,请输入 IAM 角色的 ARN 以使用该角色。 - 要复制使用 AWS KMS 加密的对象,请执行以下操作:
在 Encryption(加密)下,选择 Replicate objects encrypted with AWS Key Management Service (AWS KMS)(复制使用 AWS Key Management Service (AWS KMS) 加密的对象)。
输入您的 AWS KMS 密钥的 ARN。 - (可选)配置 Destination storage class(目标存储类)和 Additional replication options(其他复制选项)。
- 查看配置,然后选择 Save(保存)。
- (可选)通过一次性的 Amazon S3 批量操作作业复制现有对象。
验证您是否跨账户复制了 IAM 角色
要测试复制规则,请向源存储桶添加新对象,然后检查目标存储桶中是否有复制的对象。
相关信息
相关内容
AWS 官方已更新 9 个月前