创建复制规则的先决条件 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建复制规则的先决条件

连接您的源和目标 Outpost 子网

要使复制流量通过本地网关从源 Outpost 传输到目标 Outpost,您必须添加一条新路由来设置网络。必须将接入点的无类别域间路由(CIDR)网络范围连接在一起。对于每对接入点,您只需设置一次此连接。

设置连接的某些步骤有所不同,具体取决于与接入点关联的 Outposts 端点的访问类型。端点的访问类型为私有(适用于 Amazon Outposts 的直接虚拟私有云 [VPC] 路由)或客户拥有的 IP(本地网络中客户拥有的 IP 地址池 [CoIP 池])。

步骤 1:查找源 Outposts 端点的 CIDR 范围

查找与源接入点关联的源端点的 CIDR 范围
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择 Outposts buckets(Outposts 桶)。

  3. Outposts 桶列表中,选择要用于复制的源桶。

  4. 选择 Outposts 接入点选项卡,然后为您的复制规则选择源桶的 Outposts 接入点。

  5. 选择 Outposts 端点。

  6. 复制子网 ID 以在步骤 5 中使用。

  7. 用于查找源 Outposts 端点的 CIDR 范围的方法取决于您的端点的访问类型。

    Outposts 端点概览部分中,查看访问类型

    • 如果访问类型为私有,请复制无类别域间路由(CIDR)值以在步骤 6 中使用。

    • 如果访问类型为客户拥有的 IP,请执行以下操作:

      1. 复制客户拥有的 IPv4 池值,稍后将用作地址池的 ID。

      2. 打开 Amazon Outposts 控制台 (https://console.aws.amazon.com/outposts/)。

      3. 在导航窗格中,选择本地网关路由表

      4. 选择您的源 Outpost 的本地网关路由表 ID 值。

      5. 在详细信息窗格中,选择 CoIP 池选项卡。将您之前复制的 CoIP 池 ID 的值粘贴到搜索框中。

      6. 对于匹配的 CoIP 池,复制您的源 Outposts 端点的相应 CIDR 值,以便在步骤 6 中使用。

步骤 2:查找目标 Outposts 端点的子网 ID 和 CIDR 范围

要查找与目标接入点关联的目标端点的子网 ID 和 CIDR 范围,请按照步骤 1 中的相同子步骤进行操作,并在应用这些子步骤时将源 Outposts 端点更改为目标 Outposts 端点。复制目标 Outposts 端点的子网 ID 值,以便在步骤 6 中使用。复制目标 Outposts 端点的 CIDR 值,以便在步骤 5 中使用。

步骤 3:查找源 Outpost 的本地网关 ID

查找源 Outpost 的本地网关 ID
  1. 打开 Amazon Outposts 控制台 (https://console.aws.amazon.com/outposts/)。

  2. 在左侧导航窗格中,选择本地网关

  3. 本地网关页面上,找到要用于复制的源 Outpost 的 Outpost ID。

  4. 复制源 Outpost 的本地网关 ID 值,以便在步骤 5 中使用。

有关本地网关的更多信息,请参阅《Amazon Outposts 用户指南》中的本地网关

步骤 4:查找目标 Outpost 的本地网关 ID

要查找目标 Outpost 的本地网关 ID,请按照步骤 3 中的相同子步骤操作,不同之处是查找目标 Outpost 的 Outpost ID。复制目标 Outpost 的本地网关 ID 值,以便在步骤 6 中使用。

步骤 5:设置从源 Outpost 子网到目标 Outpost 子网的连接

从源 Outpost 子网连接到目标 Outpost 子网
  1. 登录到 Amazon Web Services Management Console并打开 VPC 控制台,网址为:https://console.aws.amazon.com/vpc/

  2. 在左侧导航窗格中,选择 Subnets

  3. 在搜索框中,输入您在步骤 1 中找到的源 Outposts 端点的子网 ID。选择具有匹配的子网 ID 的子网。

  4. 对于匹配的子网项目,选择该子网的路由表值。

  5. 在包含选定路由表的页面上,选择操作,然后选择编辑路由

  6. 编辑路由页面上,选择添加路由

  7. 目标下,输入您在步骤 2 中找到的目标 Outposts 端点的 CIDR 范围。

  8. 目标下,选择 Outpost 本地网关,然后输入您在步骤 3 中找到的源 Outpost 的本地网关 ID。

  9. 选择 Save changes(保存更改)。

  10. 确保路由的状态活动

步骤 6:设置从目标 Outpost 子网到源 Outpost 子网的连接

  1. 登录到 Amazon Web Services Management Console并打开 VPC 控制台,网址为:https://console.aws.amazon.com/vpc/

  2. 在左侧导航窗格中,选择 Subnets

  3. 在搜索框中,输入您在步骤 2 中找到的目标 Outposts 端点的子网 ID。选择具有匹配的子网 ID 的子网。

  4. 对于匹配的子网项目,选择该子网的路由表值。

  5. 在包含选定路由表的页面上,选择操作,然后选择编辑路由

  6. 编辑路由页面上,选择添加路由

  7. 目标下,输入您在步骤 1 中找到的源 Outposts 端点的 CIDR 范围。

  8. 目标下,选择 Outpost 本地网关,然后输入您在步骤 4 中找到的目标 Outpost 的本地网关 ID。

  9. 选择 Save changes(保存更改)。

  10. 确保路由的状态活动

连接源接入点和目标接入点的 CIDR 网络范围后,必须创建 Amazon Identity and Access Management(IAM)角色。

创建 IAM 角色

原定设置情况下,所有 S3 on Outposts 资源(桶、对象和相关子资源)都是私有的,只有资源拥有者可以访问相应的资源。S3 on Outposts 需要权限才能从源 Outposts 桶读取和复制对象。您通过创建一个 IAM 服务角色,然后在复制配置中指定该角色,授予这些权限。

此部分介绍信任策略及所需的最低权限策略。示例演练提供创建 IAM 角色的分步说明。有关更多信息,请参阅在 Outposts 上创建复制规则。有关 IAM 角色的更多信息,请参阅《IAM 用户指南》中的 IAM 角色

  • 以下示例显示了一个信任策略,您在其中将 S3 on Outposts 标识为可代入此角色的服务主体。

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3-outposts.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  • 以下示例显示了一个访问策略,您在其中向角色授予代表您执行复制任务的权限。当 S3 on Outposts 代入此角色时,它将具有您在此策略中指定的权限。要使用这一策略,请将 user input placeholders 替换为您自己的信息。确保将它们替换为源和目标 Outpost 的 Outpost ID 以及源和目标 Outposts 桶的桶名称和接入点名称。

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3-outposts:GetObjectVersionForReplication", "s3-outposts:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/bucket/SOURCE-OUTPOSTS-BUCKET/object/*", "arn:aws:s3-outposts:region:123456789012:outpost/SOURCE-OUTPOST-ID/accesspoint/SOURCE-OUTPOSTS-BUCKET-ACCESS-POINT/object/*" ] }, { "Effect":"Allow", "Action":[ "s3-outposts:ReplicateObject", "s3-outposts:ReplicateDelete" ], "Resource":[ "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*", "arn:aws:s3-outposts:region:123456789012:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*" ] } ] }

    访问策略授予以下操作的权限:

    • s3-outposts:GetObjectVersionForReplication – 授予对所有对象执行此操作的权限,以允许 S3 on Outposts 获取与每个对象关联的特定对象版本。

    • s3-outposts:GetObjectVersionTagging – 针对 SOURCE-OUTPOSTS-BUCKET 桶(源桶)中的对象执行此操作的权限允许 S3 on Outposts 读取对象标签以进行复制。有关更多信息,请参阅为 S3 on Outposts 存储桶添加标签。如果 S3 on Outposts 没有此权限,它将复制对象而不是对象标签。

    • s3-outposts:ReplicateObjects3-outposts:ReplicateDelete – 针对 DESTINATION-OUTPOSTS-BUCKET 桶(目标桶)中的所有对象执行这些操作的权限允许 S3 on Outposts 将对象或删除标记复制到目标 Outposts 桶。有关删除标记的信息,请参阅 删除操作对复制操作有何影响

      注意
      • DESTINATION-OUTPOSTS-BUCKET 桶(目标桶)执行 s3-outposts:ReplicateObject 操作的权限还允许复制对象标签。因此,您无需显式授予执行 s3-outposts:ReplicateTags 操作的权限。

      • 对于跨账户复制,目标 Outposts 桶的拥有者必须更新其桶策略,以授予对 DESTINATION-OUTPOSTS-BUCKET 执行 s3-outposts:ReplicateObject 操作的权限。s3-outposts:ReplicateObject 操作允许 S3 on Outposts 将对象和对象标签复制到目标 Otposts 桶。

    有关 S3 on Outposts 操作的列表,请参阅 S3 on Outposts 定义的操作

    重要

    拥有 IAM 角色的 Amazon Web Services 账户 必须拥有其向 IAM 角色授予的操作的权限。

    例如,假定源 Outposts 桶包含由另一个 Amazon Web Services 账户拥有的对象。对象的拥有者必须通过桶策略和接入点策略,向拥有 IAM 角色的 Amazon Web Services 账户显式授予必要的权限。否则,S3 on Outposts 无法访问这些对象,因而这些对象的复制将失败。

    此处介绍的权限与最低复制配置相关。如果您选择添加可选复制配置,则必须向 S3 on Outposts 授予其他权限。

在源和目标 Outposts 桶由不同的 Amazon Web Services 账户拥有时授予权限

当源和目标 Outposts 桶由不同的账户拥有时,目标 Outposts 桶的拥有者必须针对目标桶更新桶策略和接入点策略。这些策略必须向源 Outposts 桶的拥有者和 IAM 服务角色授予执行复制操作的权限,如以下策略示例所示,否则复制将失败。在以下策略示例中,DESTINATION-OUTPOSTS-BUCKET 是目标桶。要使用这些策略示例,请将 user input placeholders 替换为您自己的信息。

如果您手动创建 IAM 服务角色,请将角色路径设置为 role/service-role/,如以下策略示例所示。有关更多信息,请参阅《IAM 用户指南》中的 IAM ARN

{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3-outposts:ReplicateDelete", "s3-outposts:ReplicateObject" ], "Resource":[ "arn:aws:s3-outposts:region:DestinationBucket-account-ID:outpost/DESTINATION-OUTPOST-ID/bucket/DESTINATION-OUTPOSTS-BUCKET/object/*" ] } ] }
{ "Version":"2012-10-17", "Id":"PolicyForDestinationAccessPoint", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3-outposts:ReplicateDelete", "s3-outposts:ReplicateObject" ], "Resource" :[ "arn:aws:s3-outposts:region:DestinationBucket-account-ID:outpost/DESTINATION-OUTPOST-ID/accesspoint/DESTINATION-OUTPOSTS-BUCKET-ACCESS-POINT/object/*" ] } ] }
注意

如果源 Outposts 桶中的对象带有标签,请注意以下事项:

如果源 Outposts 桶拥有者向 S3 on Outposts 授予执行 s3-outposts:GetObjectVersionTaggings3-outposts:ReplicateTags 操作的权限来复制对象标签(通过 IAM 角色),则 Amazon S3 将复制标签以及对象。有关 IAM 角色的信息,请参阅 创建 IAM 角色