

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# ARC 中的路由控制
<a name="routing-control"></a>

要将流量故障转移到多个应用程序副本 AWS 区域，您可以使用 Amazon 应用程序恢复控制器 (ARC) 中的路由控制，这些控制与 Amazon Route 53 中的特定类型的运行状况检查集成。**路由控制是简单的开关机构，可以将客户端流量从一个区域副本切换到另一个副本。流量重新路由通过使用 Amazon Route 53 DNS 记录设置的*路由控制运行状况检查*来完成。例如，与每个区域中应用程序副本前面的域名相关联的 DNS 故障转移记录。

本节介绍路由控制的工作原理、如何设置路由控制组件以及如何使用它们重新路由流量以进行失效转移。

ARC 中的路由控制组件包括：集群、控制面板、路由控制和路由控制运行状况检查。所有路由控制都组合到控制面板上。您可以把它们组合到 ARC 为集群创建的默认控制面板上，也可以创建自己的自定义控制面板。您必须先创建集群，然后才能创建控制面板或路由控制。ARC 中的每个集群都是五个 AWS 区域中端点的一个数据面板。

创建路由控制和路由控制运行状况检查后，您可以为路由控制创建安全规则，帮助防止意外的恢复自动化所产生的负面影响。您可以使用或 API 操作（推荐）或使用，更新路由控制状态以单独 AWS CLI 或批量重新路由流量。 AWS 管理控制台

本节介绍路由控制的工作原理，以及如何创建和使用它们为应用程序重新路由流量。

**重要**  
要了解如何在针对灾难场景的应用程序失效转移计划中，准备使用 ARC 重新路由流量，请参阅 [ARC 中路由控制的最佳实践](route53-arc-best-practices.regional.md)。

# 关于路由控制
<a name="routing-control.about"></a>

路由控制通过使用 Amazon Route 53 中的运行状况检查来重定向流量，这些检查配置了与恢复组中单元格的顶级资源（例如 Elastic Load Balancing 负载均衡器）关联的 DNS 记录。例如，您可以将流量从一个单元格重定向到另一个单元格，方法是将一个路由控制状态更新为 `Off`（以停止流向一个单元格的流量），并将另一个路由控制状态更新为 `On`（以启动流向另一个单元格的流量）。更改流量流向的过程，是执行与路由控制关联的 Route 53 运行状况检查，该过程在 ARC 根据相应的路由控制状态将其更新为运行状况良好或运行状况不佳之后进行。

路由控制支持在任何具有 DNS 端点的 AWS 服务之间进行故障转移。您可以更新路由控制状态，以便在灾难恢复情况下、检测到应用程序延迟衰退或其它问题时对流量进行灾难恢复。

您还可以为路由控制配置安全规则，确保使用路由控制重新路由流量不会影响可用性。有关更多信息，请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。

请务必注意，路由控制本身并不是监控端点底层运行状况的运行状况检查。例如，与 Route 53 运行状况检查不同，路由控制不会监控响应时间或 TCP 连接时间。路由控制是一个控制运行状况检查的简单开关机构。通常，您会更改其状态以重定向流量，而这种状态更改会将流量转移到整个应用程序堆栈的特定端点，或者阻止路由到整个应用程序堆栈。例如，在一个简单的场景中，当您将路由控制状态从 `On` 更改为 `Off` 时，它会更新 Route 53 运行状况检查，该检查已与 DNS 故障转移记录相关联，以将流量移出端点。

## 如何使用路由控制
<a name="routing-control.about-how-to"></a>

要更新路由控制状态并重新路由流量，必须连接到 ARC 中的一个集群端点。如果您尝试连接的端点不可用，请尝试使用其他集群端点更改状态。在更改路由控制状态的过程中，应准备好轮流尝试每个端点，因为集群端点会在可用和不可用状态之间循环，以便定期维护和更新。

创建路由控制时，您可以配置 DNS 记录，将路由控制运行状况检查与每个应用程序副本前面的 Route 53 DNS 名称相关联。例如，要控制两个负载均衡器（两个区域中各有一个）之间的流量失效转移，您可以创建两个路由控制运行状况检查，并将它们与两个 DNS 记录相关联，例如失效转移路由策略中的别名记录，其中包含各自负载均衡器的域名。

您还可以使用 ARC 路由控制以及 Route 53 运行状况检查和 DNS 记录集（使用加权路由策略中的 DNS 记录）设置更复杂的流量失效转移方案。要查看详细示例，请参阅以下 AWS 博客文章中有关用户流量故障转移的部分：[使用 Amazon 应用程序恢复控制器 (ARC) 构建高弹性应用程序，第 2 部分：多区域堆栈](https://aws.amazon.com/blogs/networking-and-content-delivery/building-highly-resilient-applications-using-amazon-route-53-application-recovery-controller-part-2-multi-region-stack/)

当您为 AWS 区域 正在使用的路由控制启动故障转移时，由于流量涉及的步骤，您可能不会看到流量立即流出该区域。区域中正在进行的现有连接也可能需要短暂的时间才能结束，具体取决于客户端行为和连接重用情况。根据您的 DNS 设置和其他因素，现有连接可能只需几分钟即可完成，也可能需要更长时间。有关更多信息，请参阅[确保流量转移快速完成](route53-arc-best-practices.zonal-shifts.md#arc-zonal-shift.existing-connections)。

## 路由控制的优势
<a name="routing-control.about-benefits"></a>

与使用传统运行状况检查重新路由流量相比，ARC 中的路由控制具有多种优势。例如：
+ 路由控制为您提供了一种对整个应用程序堆栈进行失效转移的方法。这与基于资源级运行状况检查对堆栈个体组件进行的失效转移（正如 Amazon EC2 实例的做法）形成鲜明对比。
+ 路由控制为您提供了一个安全、简单的手动覆盖机制，您可以用来转移流量以进行维护工作，或者在内部监控器未检测到问题时从故障中恢复。
+ 您可以将路由控制与安全规则结合使用，以防止基于运行状况检查的全自动化机制可能产生的常见副作用，例如失效转移到尚未做好失效转移准备的备用基础设施。

以下是将路由控制纳入故障转移策略的示例，以提高中应用程序的弹性和可用性 AWS。

您可以 AWS 通过跨区域运行多个（通常是三个）冗余副本来支持高可用性 AWS 应用程序。之后，您可以使用 Amazon Route 53 路由控制将流量路由到适当的副本。

例如，您可以将一个应用程序副本设置为活动状态并提供应用程序流量，而另一个则设置为备用副本。当活动副本出现故障时，您可以将用户流量重新路由到备用副本，以恢复应用程序的可用性。您应该根据来自监控和运行状况检查系统的信息来确定是否从某副本或向某副本进行失效转移。

如果您想更快地恢复，可以选择另一个架构选项，即主动-主动实现。使用这种方法，您的副本可以同时处于活动状态。这意味着，只需将流量重新路由到另一个活动副本，就可以将用户从受影响的应用程序副本中转移出去，从而从故障中恢复。

# AWS 用于路由控制的区域可用性
<a name="introduction-regions-routing"></a>

有关 Amazon 应用程序恢复控制器（ARC）的区域支持和服务端点的详细信息，请参阅《Amazon Web Services 一般参考》**中的 [Amazon 应用程序恢复控制器端点和配额](https://docs.aws.amazon.com/general/latest/gr/r53arc.html)。

**注意**  
Amazon 应用程序恢复控制器（ARC）中的路由控制是一项全球功能。但是，您必须在区域 ARC AWS CLI 命令中指定美国西部（俄勒冈`--region us-west-2`）区域（指定参数）。也就是说，当您创建诸如集群、控制面板或路由控制之类的资源时。

ARC 路由控制是一种 on/off 交换机，用于更改 ARC 运行状况检查的状态，然后可以将其与重定向流量的 DNS 记录相关联，例如，将流量从主部署副本重定向到备用部署副本。

如果应用程序出现故障或延迟问题，您可以更新路由控制状态以转移流量，例如将流量从主副本转移到备用副本。通过使用高度可靠的 ARC 数据面板 API 操作进行路由控制查询和路由控制状态更新，您可以依靠 ARC 在灾难恢复场景中进行失效转移。有关更多信息，请参阅 [使用 ARC API 获取和更新路由控制状态（推荐）](routing-control.update.api.md)。

ARC 在*集群*中维护路由控制状态，集群是五个冗余区域端点的集合。ARC 将路由控制状态更改传播到位于 Amazon EC2 队列中的集群，以获得跨五个区域的法定人数。 AWS 传播后，当您使用 API 和高度可靠的数据面板查询 ARC 以获取路由控制状态时，它会返回共识视图。

您可以与五个集群端点中的任何一个进行交互，以更新路由控制状态，例如从 `Off` 更新为 `On`。然后，ARC 将更新传播到集群的五个区域。

所有五个集群端点平均在 5 秒内实现数据一致性，最多不超过 15 秒。

ARC 通过数据面板让您极其可靠地手动对应用程序进行跨单元格的失效转移。ARC 确保您始终可以访问五个集群端点中的至少三个端点，以执行路由控制状态的更改。请注意，每个 ARC 集群都是单租户的，以确保您不会受到“嘈杂邻居”的影响，这种影响可能会降低访问速度。

更改路由控制状态时，需要遵循以下三个极不可能失效的标准：
+ 五个端点中至少有三个可用并参与仲裁。
+ 您具备有效的 IAM 凭证，并且可以在工作的区域集群端点上进行身份验证。
+ Route 53 数据面板运行正常（此数据面板旨在满足 100% 可用性 SLA）。

# 路由控制组件
<a name="introduction-components-routing"></a>

下图说明了支持 ARC 中的路由控制功能的组件示例。此处显示的路由控制（组合到一个控制面板）允许您管理两个区域中每个区域的两个可用区的流量。更新路由控制状态时，ARC 会更改 Amazon Route 53 中的运行状况检查，该检查会将 DNS 流量重定向到不同的单元格。您为路由控制配置的安全规则有助于避免打开失败的情况和其他意外的后果。

![\[ARC 中支持路由控制的组件\]](http://docs.aws.amazon.com/zh_cn/r53recovery/latest/dg/images/GS_RecoveryControlDiagram.png)


以下是 ARC 中路由控制功能的组件。

**Cluster**  
集群是一组由五个冗余区域端点组成的集合，您可以在这些端点上执行 API 调用，以更新或获取路由控制状态。集群包括默认控制面板，您可以在一个集群上托管多个控制面板和路由控制。

**路由控制**  
路由控制是托管在集群上的简单 on/off 交换机，用于控制进出小区的客户端流量的路由。在创建路由控制时，可以在 Route 53 中添加 ARC 运行状况检查。这样当您在 ARC 中更新路由控制状态时，就能重新路由流量（使用运行状况检查，配置有应用程序的 DNS 记录）。

**路由控制运行状况检查**  
路由控制与 Route 53 中的运行状况检查相集成。运行状况检查与每个应用程序副本前面的 DNS 记录相关联，例如失效转移记录。当您更改路由控制状态时，ARC 会更新相应的运行状况检查，这些检查将重定向流量，例如失效转移到备用副本。

**控制面板**  
控制面板将一组相关的路由控制聚合在一起。您可以将多个路由控制与一个控制面板相关联，然后为控制面板创建安全规则，以确保进行的流量重定向更新是安全的。例如，您可以为每个可用区中的每个负载均衡器配置一个路由控制，然后将它们组合到同一个控制面板中。然后，您可以添加安全规则（“断言规则”），确保在任何时候至少有一个可用区（由路由控制表示）处于活动状态，以避免出现意外的“打开失败”情况。

**默认控制面板**  
创建集群时，ARC 会创建一个默认的控制面板。默认情况下，您在集群上创建的所有路由控制都将添加到默认控制面板中。您也可以创建自己的控制面板来组合相关的路由控制。

**安全规则**  
安全规则是您添加到路由控制的规则，用于确保恢复操作不会意外影响应用程序的可用性。例如，您可以创建一个安全规则，该规则创建一个路由控制作为整体的“开关”，以便您可以启用或禁用一组其他路由控制。

****端点（集群端点）****  
ARC 中的每个集群都有五个区域端点，可用于设置和取回路由控制状态。在访问端点的过程中，应假设 ARC 定期启动和关闭端点以进行维护，因此您应该连续尝试每个端点，直到连接到一个端点。您可以访问端点以获取路由控制的当前状态（开或关），并通过更改路由控制状态来触发应用程序的失效转移。

# 路由控制的数据面板和控制面板
<a name="data-and-control-planes"></a>

在规划失效转移和灾难恢复时，请考虑失效转移机制的弹性。建议您确保在失效转移期间所依赖的机制高度可用，这样在灾难场景中有需要时就能使用它们。通常，应尽可能在机制中使用数据面板功能，以获得较高的可靠性和容错能力。考虑到这一点，请务必了解服务的功能如何在控制面板和数据面板之间划分，以及何时可以依赖服务的数据面板可预期的极高可靠性。

与大多数 AWS 服务一样，控制平面和数据平面支持路由控制功能。虽然两种面板均可靠，但控制面板已针对数据一致性进行优化，而数据面板已针对可用性进行优化。数据面板专为弹性而设计，因此即使在中断事件期间，当控制面板可能不可用时，它也能保持可用性。

一般而言，*控制面板*允许您执行基本的管理功能，例如在服务中创建、更新和删除资源。*数据面板*提供服务的核心功能。因此，我们建议您在可用性很重要的情况下使用数据面板操作，例如，在中断期间需要将流量重新路由到备用副本时。

对于路由控制，控制面板和数据面板按以下方式划分：
+ 路由控制的控制面板 API 是美国西部（俄勒冈州）区域（us-west-2）中支持的[恢复控制配置 API](https://docs.aws.amazon.com/recovery-cluster/latest/api/what-is-recovery-control.html)。您可以使用这些 API 操作或创建或删除集群、控制面板和路由控件，以帮助为可能需要为应用程序重新路由流量时发生的灾难恢复事件做好准备。 AWS 管理控制台 *路由控制配置控制面板不是高度可用的。*
+ 路由控制数据面板是一个横跨五个地理隔离的 AWS 区域的专用集群。每个客户都使用路由控制控制面板创建一个或多个集群。该集群托管控制面板和路由控制。然后，当您想要为应用程序重新路由流量时，可使用[路由控制（恢复集群）API](https://docs.aws.amazon.com/routing-control/latest/APIReference/Welcome.html) 获取、列出和更新路由控制状态。*路由控制数据面板是高度可用的。*

由于路由控制数据平面高度可用，因此我们建议您计划在 AWS Command Line Interface 要进行故障切换以从事件中恢复时，使用进行 API 调用以处理路由控制状态。有关准备和完成使用路由控制进行的恢复操作时重要注意事项的更多信息，请参阅 [ARC 中路由控制的最佳实践](route53-arc-best-practices.regional.md)。

有关数据平面、控制平面以及如何 AWS 构建服务以满足高可用性目标的更多信息，请参阅 Amazon Builders Library 中的 “[使用可用区的静态稳定性” 论文](https://aws.amazon.com/builders-library/static-stability-using-availability-zones/)。

# Amazon 应用程序恢复控制器（ARC）中路由控制的标记
<a name="introduction-tagging-routing-control"></a>

标签是您用来识别和组织 AWS 资源的单词或短语（元数据）。您可以为每个资源添加多个标签，每个标签都包含一个密钥和一个您定义的值。例如，键可能是环境，值可能是生产。您可以根据添加的标签搜索和筛选资源。

在 ARC 的路由控制中，您可以标记以下资源：
+ 集群
+ 控制面板
+ 安全规则

ARC 中的标记只能通过 API 使用，例如，通过使用 AWS CLI。

以下是使用 AWS CLI在路由控制中进行标记的示例。

`aws route53-recovery-control-config --region us-west-2 create-cluster --cluster-name example1-cluster --tags Region=PDX,Stage=Prod`

`aws route53-recovery-control-config --region us-west-2 create-control-panel --control-panel-name example1-control-panel --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh --tags Region=PDX,Stage=Prod`

有关更多信息，请参阅 [TagResource](https://docs.aws.amazon.com/recovery-cluster/latest/api/tags-resourcearn.html)Amazon 应用程序*恢复控制器 (ARC) 的恢复控制配置 API 参考指南*。

# ARC 中路由控制的定价
<a name="introduction-pricing-routing-control"></a>

对于 ARC 中的路由控制，您需要为创建的每个集群支付每小时费用。每个集群可以托管多个路由控制，您可以使用这些控制来触发应用程序失效转移。

为了帮助管理成本和提高效率，您可以为集群设置跨账户共享，将一个集群与多个 AWS 账户共享。有关更多信息，请参阅 [ARC 中对集群的跨账户支持](routing-control.failover-different-accounts.md)。

有关 ARC 的详细定价信息和定价示例，请参阅 [ARC 定价](https://aws.amazon.com/application-recovery-controller/pricing/)。

# 开始使用 Amazon 应用程序恢复控制器（ARC）中的多区域恢复
<a name="getting-started"></a>

要使用 Amazon 应用程序恢复控制器 (ARC) 中的路由控制对应用程序进行故障切换，您的 AWS 应用程序必须是多个应用程序 AWS 区域。要开始使用，首先，请确保您的应用程序设置在每个区域的孤立副本中，这样您就可以在发生事件期间从一个区域失效转移到另一个区域。然后，您可以创建路由控制来重新路由应用程序流量，使其从主应用程序失效转移到辅助应用程序，从而为用户保持连续性。

**注意**  
如果您的应用程序被可用区隔开，请考虑使用可用区转移或可用区自动转移进行失效转移恢复。无需进行任何设置即可使用可用区转移或可用区自动转移从受影响的可用区可靠地恢复应用程序。有关更多信息，请参阅 [可用区转移和可用区自动转移在 ARC 中恢复应用程序](multi-az.md)。

为了使您可以使用 ARC 路由控制，在发生事件期间恢复应用程序，建议您至少设置两个彼此互为副本的应用程序。每个副本或*单元格*都代表一个 AWS 区域。将应用程序资源设置为与区域保持一致后，请执行以下步骤，确保应用程序为成功恢复做好准备。

提示：为了帮助简化设置，我们提供 CloudFormation 了 HashiCorp Terraform 模板，用于创建具有相互独立失败的冗余副本的应用程序。要了解更多信息并下载模板，请参阅[设置示例应用程序](#getting-started-example)。

要准备使用路由控制，请执行以下操作，确保您的应用程序设置为具有弹性：

1. 创建应用程序堆栈（网络和计算层）的独立副本，这些副本在每个区域中彼此互为副本，以便在发生事件时可以将流量从一个区域失效转到移另一个区域。确保您的应用程序代码中不存在一个副本的故障会影响另一个副本的任何跨区域依赖关系。要在两者之间成功进行故障转移 AWS 区域，您的堆栈边界应位于一个区域内。

1. 为应用程序跨副本复制所有必需的有状态数据。您可以使用 AWS 数据库服务来帮助复制数据。

## 开始使用路由控制进行流量失效转移
<a name="getting-started-routing-controls"></a>

使用 Amazon 应用程序恢复控制器（ARC）中的路由控制，可触发在不同 AWS 区域中运行的冗余应用程序副本之间的流量失效转移。失效转移是使用 Amazon Route 53 数据面板通过 DNS 执行的。

在每个区域设置副本后（如下一节所述），您可以将每个副本与路由控制相关联。首先，您将路由控制与每个区域中副本的顶级域名相关联。然后，向路由控制添加路由控制运行状况检查，使其可以打开和关闭流量。这使您能够控制应用程序副本之间的流量路由。

您可以更新中的路由控制状态 AWS 管理控制台 以故障转移流量，但我们建议您改用 ARC 操作、API 或 AWS CLI，来更改它们。API 操作不依赖于控制台，因此它们更具弹性。

例如，要在可用区之间进行失效转移，例如从 us-west-1 失效转移到 us-east-1，可以使用 `update-routing-control-state` API 操作将 `us-west-1` 的状态设为 `Off`，将 `us-east-1` 的状态设为 `On`。

在创建路由控制组件以设置应用程序的失效转移之前，请确保将应用程序隔离为多个可用区副本，以便您可以从一个副本失效转移到另一个副本。要了解更多信息并开始隔离新应用程序或创建示例堆栈，请参阅下一节。

## 设置示例应用程序
<a name="getting-started-example"></a>

为了帮助您了解路由控制的工作原理，我们提供了一个名为 `TicTacToe` 的示例应用程序。该示例使用 CloudFormation 模板来简化流程，并使用可下载的 CloudFormation 模板让您可以自己快速探索如何设置和使用 ARC。

部署示例应用程序后，您可以使用这些模板创建 ARC 组件，然后探索如何使用路由控制来管理流向该应用程序的流量。您可以根据自己的应用场景和应用程序调整模板和流程。

要开始使用示例应用程序和 CloudFormation 模板，请参阅 [ARC GitHub](https://github.com/aws-samples/r53-arc-iad) 存储库中的自述文件说明。您可以通过阅读 AWS CloudFormation 用户指南中的[CloudFormation 概念](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html)来了解有关使用 CloudFormation 模板的更多信息。

# ARC 中路由控制的最佳实践
<a name="route53-arc-best-practices.regional"></a>

建议采用以下最佳实践，为 ARC 中的路由控制做好恢复和失效转移准备。

**主题**
+ [确保专门构建、使用寿命长的 AWS 凭证安全且始终可访问](#RCBestPracticeCredentials)
+ [为故障转移中涉及的 DNS 记录选择较低的 TTL 值](#RCBestPracticeLowerTTL)
+ [限制客户端与您的端点保持连接的时间](#RCBestPracticeCurrentConnections)
+ [为您的五个区域集群终端节点和路由控制添加书签或硬编码 ARNs](#RCBestPracticeBookmarkEndpoints)
+ [随机选择一个终端节点来更新您的路由控制状态](#RCBestPracticeRandomEndpoint)
+ [使用极其可靠的数据平面 API 来列出和更新路由控制状态，而不是使用控制台](#RCBestPracticeUseDataPlane)

**确保专门构建、使用寿命长的 AWS 凭证安全且始终可访问**  
在灾难恢复 (DR) 场景中，通过使用一种简单的方法来访问 AWS 和执行恢复任务，将系统依赖性降至最低。专为 DR 任务创建 [IAM 长效凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html)，并将凭证安全地保存在本地物理保险箱或虚拟保管库中，以便在需要时进行访问。借助 IAM，您可以集中管理安全证书，例如访问密钥和 AWS 资源访问权限。对于非 DR 任务，我们建议您继续使用 [AWS 单点登录](https://aws.amazon.com/single-sign-on/)等 AWS 服务进行联合访问。  
要使用恢复集群数据面板 API 在 ARC 中执行失效转移任务，您可以将 ARC IAM 策略附加到您的用户。要了解更多信息，请参阅[Amazon 应用程序恢复控制器（ARC）基于身份的策略示例](security_iam_id-based-policy-examples.md)。

**为故障转移中涉及的 DNS 记录选择较低的 TTL 值**  
对于在失效转移机制中可能需要更改的 DNS 记录，尤其是经过运行状况检查的记录，使用较低的 TTL 值是合适的做法。在这种情况下，通常选择将 TTL 设置为 60 秒或 120 秒。  
DNS TTL（生存时间）设置会告诉 DNS 解析器在一条记录缓存多长时间后再请求新记录。选择 TTL 时，要在延迟和可靠性与应变能力之间进行权衡。如果记录的 TTL 较短，DNS 解析器将更快地注意到记录的更新，因为 TTL 指定了它们必须更频繁地查询。  
有关更多信息，请参阅 [Amazon Route 53 DNS 最佳实践](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/best-practices-dns.html)中的*为 DNS 记录选择 TTL 值*。

**限制客户端与您的端点保持连接的时间**  
当您使用路由控制从一个路由控制切换 AWS 区域 到另一个时，Amazon 应用程序恢复控制器 (ARC) 用来移动应用程序流量的机制是 DNS 更新。此更新会导致所有新连接都避开受影响的位置。  
但是，先前已打开连接的客户端可能会继续向受影响的位置发出请求，直到客户端重新连接。为确保快速恢复，建议您限制客户端与您的端点保持连接的时间。  
如果使用的是应用程序负载均衡器，则可以使用 `keepalive` 选项来配置连接的持续时间。有关更多信息，请参阅《应用程序负载均衡器用户指南》中的 [HTTP 客户端保持连接持续时间](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#http-client-keep-alive-duration)。  
默认情况下，应用程序负载均衡器将 HTTP 客户端保持连接的持续时间值设置为 3600 秒（即 1 小时）。建议您降低该值，使其与应用程序的恢复时间目标保持一致，例如 300 秒。在选择 HTTP 客户端保持连接的持续时间时，请考虑此值在更频繁地重新连接（这可能会影响延迟）和更快地将所有客户端从受影响的可用区或区域移出之间是一个折中值。

**为您的五个区域集群终端节点和路由控制添加书签或硬编码 ARNs**  
建议您将 ARC 区域集群端点的本地副本保存在书签中，或者保存到用于重试端点的自动化代码中。在发生故障事件期间，您可能无法访问某些 API 操作，包括未托管在极其可靠的数据面板集群上的 ARC API 操作。您可以使用 [DescribeCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster-clusterarn.html)API 操作列出 ARC 集群的终端节点。

**随机选择一个终端节点来更新您的路由控制状态**  
路由控制提供五个区域端点，确保在发生故障时也能保持高可用性。要实现其完整韧性，重要的是要具备重试逻辑，可以根据需要使用所有五个端点。有关在 AWS SDK 中使用代码示例的信息，包括试用集群终端节点的示例，请参阅[应用程序恢复控制器的代码示例 AWS SDKs](service_code_examples.md)。

**使用极其可靠的数据平面 API 来列出和更新路由控制状态，而不是使用控制台**  
使用 ARC 数据平面 API，查看[ListRoutingControls](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_ListRoutingControls.html)操作中的路由控制和状态，并更新路由控制状态以重定向流量，以便在[UpdateRoutingControlState](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_UpdateRoutingControlState.html)操作中进行故障转移。您可以使用 AWS CLI [（如这些示例所示）](getting-started-cli-routing.control-state.md)或使用其中一个编写的代码 AWS SDKs。ARC 数据面板中的 API 可以极其可靠地对流量进行失效转移。我们建议使用 API，而不是在 AWS 管理控制台中更改路由控制状态。  
连接到 ARC 的区域集群端点之一，以使用数据面板 API。如果端点不可用，请尝试连接到另一个集群端点。  
如果安全规则阻止路由控制状态更新，则可以绕过该规则进行更新并对流量进行失效转移。有关更多信息，请参阅 [覆盖安全规则以重新路由流量](routing-control.override-safety-rule.md)。

**使用 ARC 测试失效转移**  
使用 ARC 路由控制定期测试失效转移，以便从主应用程序堆栈失效转移到辅助应用程序堆栈。务必要确保您添加的 ARC 结构与堆栈中的正确资源保持一致，并且一切都按预期运行。您应该在为您的环境设置好 ARC 之后进行该测试，并持续定期进行测试，以便在发生故障之前准备好失效转移环境，这样就能快速启动并运行辅助系统以避免用户停机。

# 路由控制 API 操作
<a name="actions.routing-control"></a>

本节提供的表中列出了您可以用于在 Amazon 应用程序恢复控制器（ARC）中设置和使用路由控制的 API 操作以及相关文档的链接。

有关如何在 AWS Command Line Interface中执行常见恢复控制配置 API 操作的示例，请参阅[使用 ARC 路由控制 API 操作的示例 AWS CLI](getting-started-cli-routing.md)。

下表列出了可用于路由控制配置的 ARC API 操作以及相关文档的链接。


| Action | 使用 ARC 控制台 | 使用 ARC API | 
| --- | --- | --- | 
| 创建集群 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [CreateCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster.html) | 
| 描述集群 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [DescribeCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster-clusterarn.html) | 
| 删除集群 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [DeleteCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster-clusterarn.html) | 
| 列出账户的集群 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [ListClusters](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster.html) | 
| 创建路由控制 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [CreateRoutingControl](https://docs.aws.amazon.com/recovery-cluster/latest/api/routingcontrol.html) | 
| 描述路由控制 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [DescribeRoutingControl](https://docs.aws.amazon.com/recovery-cluster/latest/api/routingcontrol-routingcontrolarn.html) | 
| 更新路由控制 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [UpdateRoutingControl](https://docs.aws.amazon.com/recovery-cluster/latest/api/routingcontrol.html) | 
| 删除路由控制 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [DeleteRoutingControl](https://docs.aws.amazon.com/recovery-cluster/latest/api/routingcontrol-routingcontrolarn.html) | 
| 列出路由控制 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [ListRoutingControls](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanel-controlpanelarn-routingcontrols.html) | 
| 创建控制面板 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [CreateControlPanel](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanel.html) | 
| 描述控制面板 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [DescribeControlPanel](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanel-controlpanelarn.html) | 
| 更新控制面板 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [UpdateControlPanel](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanel.html) | 
| 删除控制面板 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [DeleteControlPanel](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanel-controlpanelarn.html) | 
| 列出控制面板 | 请参阅 [在 ARC 中创建路由控制组件](routing-control.create.md)。 | 请参阅 [ListControlPanels](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanels.html) | 
| 创建安全规则 | 请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。 | 请参阅 [CreateSafetyRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html) | 
| 描述安全规则 | 请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。 | 请参阅 [DescribeSafetyRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule-safetyrulearn.html) | 
| 更新安全规则 | 请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。 | 请参阅 [UpdateSafetyRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html) | 
| 删除安全规则 | 请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。 | 请参阅 [DeleteSafetyRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule-safetyrulearn.html) | 
| 列出安全规则 | 请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。 | 请参阅 [ListSafetyRules](https://docs.aws.amazon.com/recovery-cluster/latest/api/controlpanel-controlpanelarn-safetyrules.html) | 
| 列出关联的 Route 53 运行状况检查 | 请参阅 [在 ARC 中创建路由控制运行状况检查](routing-control.create-health-check.md)。 | 见 [ListAssociatedRoute53 HealthChecks](https://docs.aws.amazon.com/recovery-cluster/latest/api/routingcontrol-routingcontrolarn-associatedroute53healthchecks.html) | 
| 列出用于群集共享的 AWS RAM 资源策略 | 请参阅 [ARC 中对集群的跨账户支持](routing-control.failover-different-accounts.md)。 | 请参阅 [GetResourcePolicy](https://docs.aws.amazon.com/recovery-cluster/latest/api/resourcepolicy-resourcearn.html) | 

下表列出了可用于在路由控制数据面板中管理流量失效转移的常见 ARC API 操作，以及相关文档的链接。


| Action | 使用 ARC 控制台 | 使用 ARC API | 
| --- | --- | --- | 
| 获取路由控制状态 | 请参阅 [获取和更新中的路由控制状态 AWS 管理控制台](routing-control.update.console.md)。 | 请参阅 [GetRoutingControlState](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_GetRoutingControlState.html) | 
| 列出路由控制 | 不适用 | 请参阅 [ListRoutingControls](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_ListRoutingControls.html)。 | 
| 更新路由控制状态 | 请参阅 [获取和更新中的路由控制状态 AWS 管理控制台](routing-control.update.console.md)。 | 请参阅 [UpdateRoutingControlState](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_UpdateRoutingControlState.html) | 
| 更新多个路由控制状态 | 请参阅 [获取和更新中的路由控制状态 AWS 管理控制台](routing-control.update.console.md)。 | 请参阅 [UpdateRoutingControlStates](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_UpdateRoutingControlStates.html) | 

# 将此服务与 AWS SDK 配合使用
<a name="sdk-general-information-section"></a>

AWS 软件开发套件 (SDKs) 可用于许多流行的编程语言。每个软件开发工具包都提供 API、代码示例和文档，使开发人员能够更轻松地以其首选语言构建应用程序。


| SDK 文档 | 代码示例 | 
| --- | --- | 
| [适用于 C\$1\$1 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-cpp) | [适用于 C\$1\$1 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI 代码示例](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [适用于 Go 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-go) | [适用于 Go 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [适用于 Java 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-java) | [适用于 Java 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [适用于 JavaScript 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-javascript) | [适用于 JavaScript 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [适用于 Kotlin 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-kotlin) | [适用于 Kotlin 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-net) | [适用于 .NET 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [适用于 PHP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-php) | [适用于 PHP 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell) | [AWS Tools for PowerShell 代码示例](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [适用于 Python (Boto3) 的 AWS SDK](https://docs.aws.amazon.com/pythonsdk) | [适用于 Python (Boto3) 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [适用于 Ruby 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-ruby) | [适用于 Ruby 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [适用于 Rust 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-rust) | [适用于 Rust 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [适用于 SAP ABAP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-sapabap) | [适用于 SAP ABAP 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [适用于 Swift 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-swift) | [适用于 Swift 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

有关特定于此服务的示例，请参阅[应用程序恢复控制器的代码示例 AWS SDKs](service_code_examples.md)。

**示例可用性**  
找不到所需的内容？ 通过使用此页面底部的**提供反馈**链接请求代码示例。

# 使用 ARC 路由控制 API 操作的示例 AWS CLI
<a name="getting-started-cli-routing"></a>

本节介绍使用路由控制的简单应用示例，使用使用 API 操作 AWS Command Line Interface 与 Amazon 应用程序恢复控制器 (ARC) 中的路由控制功能配合使用。这些示例旨在帮助您基本了解如何使用 CLI 执行路由控制。

借助 Amazon Application Recovery Controller (ARC) 中的路由控制，您可以在独立 AWS 区域 或可用区域中运行的冗余应用程序副本或副本之间触发流量故障转移。

您可以将路由控制整理到集群上预调配的组中，这些组叫做控制面板。ARC 集群是一组全球部署的区域端点。集群端点提供了一个高度可用的 API，可用于设置和检索路由控制状态。有关路由控制功能组件的更多信息，请参阅[路由控制组件](introduction-components-routing.md)。

**注意**  
ARC 是一项全球服务，可支持多个 AWS 区域中的端点。但是，您必须在大部分 ARC CLI 命令中指定美国西部（俄勒冈州）区域（即指定参数 `--region us-west-2`）。例如，在创建恢复组、控制面板和集群时使用 `region` 参数。  
创建集群时，ARC 会为您提供一组区域端点。要获取或更新路由控制状态，您必须在 CLI 命令中指定区域终端节点（ AWS 区域 和终端节点 URL）。

有关使用的更多信息 AWS CLI，请参阅《 AWS CLI 命令参考》。有关路由控制 API 操作的列表，请参阅[路由控制 API 操作](actions.routing-control.md)和[路由控制 API 操作](actions.routing-control.md)。

我们将从创建集群开始，使用路由控制来创建管理失效转移所需的组件。

# 设置路由控制组件
<a name="getting-started-cli-routing-config"></a>

第一步是创建集群。ARC 集群是由五个端点组成的一个组，分别位于五个不同的 AWS 区域。ARC 基础设施支持这些端点协同工作，从而保证失效转移操作的高可用性和顺序一致性。

## 1. 创建集群
<a name="getting-started-cli-routing.cluster"></a>

1a. 创建集群。`network-type` 是可选的，可以是 `IPV4` 或 `DUALSTACK`。默认值为 `IPV4`。

```
aws route53-recovery-control-config create-cluster --cluster-name test --network-type DUALSTACK
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "PENDING",
    "Owner": "123456789123",
    "NetworkType": "DUALSTACK"
}
```

首次创建 ARC 资源时，在集群创建过程中其状态为 `PENDING`。您可以通过调用 `describe-cluster` 查看其进度。

1b. 描述集群。

```
aws route53-recovery-control-config --region us-west-2 \
				describe-cluster --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "DEPLOYED",
    "Owner": "123456789123",
    "NetworkType": "DUALSTACK"
}
```

当状态为“DEPLOYED”时，说明 ARC 已成功创建集群，其中包含一组可与您交互的端点。您可以通过调用 `list-clusters` 列出所有集群。

1c. 列出您的集群。

```
aws route53-recovery-control-config --region us-west-2 list-clusters
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "DEPLOYED",
    "Owner": "123456789123",
    "NetworkType": "DUALSTACK"
}
```

1d. 更新集群的网络类型。选项有 `IPV4` 或 `DUALSTACK`。

```
aws route53-recovery-control-config update-cluster \
--cluster-arn arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234 \
--network-type DUALSTACK
```

```
"Cluster": {
    "ClusterArn": "arn:aws:route53-recovery-control::123456789123:cluster/12341234-1234-1234-1234-123412341234",
    "Name": "test",
    "Status": "PENDING",
    "Owner": "123456789123",
   "NetworkType": "DUALSTACK"
}
```

## 2. 创建控制面板
<a name="getting-started-cli-routing.panel"></a>

控制面板是用于整理 ARC 路由控制的逻辑分组。当您创建集群时，ARC 会自动为您提供一个名为 `DefaultControlPanel` 的控制面板。您可以立即使用该控制面板。

一个控制面板只能存在于一个集群中。如果要将控制面板移到另一个集群，则必须将其删除，然后在第二个集群中创建它。您可以通过调用 `list-control-panels` 查看账户中的所有控制面板。要仅查看特定集群中的控制面板，请添加 `--cluster-arn` 字段。

2a. 列出控制面板。

```
aws route53-recovery-control-config --region us-west-2 \
				list-control-panels --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/eba23304-1a51-4674-ae32-b4cf06070bdd
```

```
{
    "ControlPanels": [
        {
            "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/1234567dddddd1234567dddddd1234567",
            "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh",
            "DefaultControlPanel": true,
            "Name": "DefaultControlPanel",
            "RoutingControlCount": 0,
            "Status": "DEPLOYED"
        }
    ]
}
```

也可以选择通过调用 `create-control-panel` 创建自己的控制面板。

2b. 创建控制面板。

```
aws route53-recovery-control-config --region us-west-2 create-control-panel \
        --control-panel-name NewControlPanel2 \
        --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
{
    "ControlPanel": {
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh",
        "DefaultControlPanel": false,
        "Name": "NewControlPanel2",
        "RoutingControlCount": 0,
        "Status": "PENDING"
    }
}
```

首次创建 ARC 资源时，它在创建过程中状态为 `PENDING`。您可以通过调用 `describe-control-panel` 查看进度。

2c. 描述控制面板。

```
aws route53-recovery-control-config --region us-west-2 describe-control-panel \
				--control-panel-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456
```

```
{
    "ControlPanel": {
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ClusterArn": "arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh",
        "DefaultControlPanel": true,
        "Name": "DefaultControlPanel",
        "RoutingControlCount": 0,
        "Status": "DEPLOYED"
    }
}
```

## 3. 创建路由控制
<a name="getting-started-cli-routing.control"></a>

现在您已设置集群并查看控制面板，接着可以开始创建路由控制。创建路由控制时，您必须至少指定路由控制所在集群的 Amazon 资源名称 (ARN)。您也可以为路由控制指定控制面板的 ARN。您还需要指定控制面板所在的集群。

如果您未指定控制面板，路由控制将添加到自动创建的控制面板 `DefaultControlPanel`。

通过调用 `create-routing-control` 创建路由控制。

3a. 创建路由控制。

```
aws route53-recovery-control-config --region us-west-2 create-routing-control \
				--routing-control-name NewRc1 \
				--cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
{
    "RoutingControl": {
        "ControlPanelArn": " arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "Name": "NewRc1",
        "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "Status": "PENDING"
    }
}
```

路由控制的创建模式与其他 ARC 资源相同，因此您可以通过调用描述操作来跟踪它们的进度。

3b. 描述路由控制。

```
aws route53-recovery-control-config --region us-west-2 describe-routing-control \
			    --routing-control-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
```

```
{
    "RoutingControl": {
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "Name": "NewRc1",
        "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "Status": "DEPLOYED"
    }
}
```

您可以通过调用 `list-routing-controls` 列出控制面板中的路由控制。控制面板 ARN 为必填项。

3c. 列出路由控制。

```
aws route53-recovery-control-config --region us-west-2 list-routing-controls \
        --control-panel-arn arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456
```

```
{
    "RoutingControls": [
        {
            "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
            "Name": "Rc1",
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
            "Status": "DEPLOYED"
        },
        {
            "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
            "Name": "Rc2",
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/hijklmnop987654321",
            "Status": "DEPLOYED"
        }
    ]
}
```

在使用路由控制状态的以下示例中，我们假设您有本节中列出的两个路由控制（Rc1 和 Rc2）。在本例中，每个路由控制代表部署了应用程序的一个可用区。

## 4. 创建安全规则
<a name="getting-started-cli-routing.safety"></a>

同时使用多个路由控制时，您可能会决定在启用和禁用它们时采取一些保障措施，以避免意想不到的后果，例如关闭两个路由控制和停止所有流量。要建立这些保障措施，需要创建路由控制安全规则。

安全规则有两种类型：断言规则和门控规则。如需了解有关安全规则的详情，请参阅[为路由控制创建安全规则](routing-control.safety-rules.md)。

以下调用提供了创建断言规则的示例，该规则可确保在任何给定时间至少将两个路由控制之一设置为 `On`。要创建规则，请运行使用 `assertion-rule` 参数的 `create-safety-rule`。

有关断言规则 API 操作的详细信息，请参阅 [AssertionRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-assertionrule)Amazon 应用程序恢复控制器的路由控制 API 参考指南。

4a. 创建断言规则。

```
aws route53-recovery-control-config --region us-west-2 create-safety-rule \
        --assertion-rule '{"Name": "TestAssertionRule", 
        "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", 
        "WaitPeriodMs": 5000, 
        "AssertedControls":
        ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" 
        "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi"], 
        "RuleConfig": {"Threshold": 1, "Type": "ATLEAST", "Inverted": false}}'
```

```
{
    "Rule": {
        "ASSERTION": {
            "Arn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/safetyrule/333333444444",
            "AssertedControls": [
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def" 
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi"],
            "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx",
            "Name": "TestAssertionRule",
            "RuleConfig": {
                "Inverted": false,
                "Threshold": 1,
                "Type": "ATLEAST"
            },
            "Status": "PENDING",
            "WaitPeriodMs": 5000
        }
    }
}
```

以下调用提供了创建门控规则的示例，该规则为控制面板中的一组目标路由控制提供了整体的“开启/关闭”或“门控”开关。这样便可以禁止更新目标路由控制，例如，自动化机制无法进行未授权更新。在本例中，门控开关是通过 `GatingControls` 参数指定的路由控制，受到控制或“门控”的两个路由控制通过 `TargetControls` 参数指定。

**注意**  
在创建门控规则之前，必须创建门控路由控制（不包括 DNS 故障转移记录）和目标路由控制（需配置有 DNS 故障转移记录）。

要创建规则，请运行使用 `gating-rule` 参数的 `create-safety-rule`。

有关断言规则 API 操作的详细信息，请参阅 [GatingRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-gatingrule)Amazon 应用程序恢复控制器的路由控制 API 参考指南。

4b. 创建门控规则。

```
aws route53-recovery-control-config --region us-west-2 create-safety-rule \
        --gating-rule '{"Name": "TestGatingRule", 
        "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx", 
        "WaitPeriodMs": 5000, 
        "GatingControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def"] 
        "TargetControls": ["arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi", 
        "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/lmn789lmn789lmn"], 
        "RuleConfig": {"Threshold": 0, "Type": "OR", "Inverted": false}}'
```

```
{
    "Rule": {
        "GATING": {
            "Arn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/safetyrule/444444444444",
            "GatingControls": [
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/def123def123def"
            ],
            "TargetControls": [
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/ghi456ghi456ghi" 
                "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx/routingcontrol/lmn789lmn789lmn"
            ],
            "ControlPanelArn": "arn:aws:route53-recovery-control::888888888888:controlpanel/zzz123yyy456xxx789zzz123yyy456xxx",
            "Name": "TestGatingRule",
            "RuleConfig": {
                "Inverted": false,
                "Threshold": 0,
                "Type": "OR"
            },
            "Status": "PENDING",
            "WaitPeriodMs": 5000
        }
    }
}
```

与其他路由控制资源一样，您可以在安全规则传播到数据面板后描述、列出或删除它们。

设置一个或多个安全规则后，您可以继续与集群交互，以设置或检索路由控制的状态。如果某项 `set-routing-control-state` 操作违反了您创建的规则，您将收到类似下方的异常：

`Cannot modify control state for [0123456bbbbbbb0123456bbbbbb01234560123 abcdefg1234567] due to failed rule evaluation 0123456bbbbbbb0123456bbbbbb0123456333333444444`

第一个标识符是控制面板 ARN 与路由控制 ARN 的连接体。第二个标识符是控制面板 ARN 与安全规则 ARN 的连接体。

## 5. 创建运行状况检查
<a name="getting-started-cli-routing.healthcheck"></a>

要使用路由控制对流量进行失效转移，您可以在 Amazon Route 53 中创建运行状况检查，并将运行状况检查与您的 DNS 记录关联起来。为了对流量进行失效转移，ARC 路由控制会将运行状况检查设置为失败，这样 Route 53 就会重新路由流量。（运行状况检查不会影响应用程序的运行状况；它只是用作重新路由流量的方法。）

例如，假设您有两个单元格（区域或可用区）。您可以将一个单元格配置为应用程序的主单元格，将另一个配置为辅助单元格，以进行失效转移。

要为失效转移设置运行状况检查，您可以执行以下操作，例如：

1. 使用 ARC CLI 为每个单元格创建路由控制。

1. 使用 Route 53 CLI 在 Route 53 中为每个路由控制创建 ARC 运行状况检查。

1. 使用 Route 53 CLI 在 Route 53 中创建两个失效转移 DNS 记录，并将运行状况检查与每个记录关联起来。

5a. 为每个单元格创建路由控制。

```
aws route53-recovery-control-config --region us-west-2 create-routing-control \
        --routing-control-name RoutingControlCell1 \
        --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

```
aws route53-recovery-control-config --region us-west-2 create-routing-control \
        --routing-control-name RoutingControlCell2 \
        --cluster-arn arn:aws:route53-recovery-control::111122223333:cluster/5678abcd-abcd-5678-abcd-5678abcdefgh
```

5b. 为每个路由控制创建运行状况检查。

**注意**  
使用 Amazon Route 53 CLI 创建 ARC 运行状况检查。

```
aws route53 create-health-check --caller-reference RoutingControlCell1 \
        --health-check-config \
        Type=RECOVERY_CONTROL,RoutingControlArn=arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
```

```
{
    "Location": "https://route53.amazonaws.com/2015-01-01/healthcheck/11111aaaa-bbbb-cccc-dddd-ffffff22222",
    "HealthCheck": {
        "Id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "CallerReference": "RoutingControlCell1",
        "HealthCheckConfig": {
            "Type": "RECOVERY_CONTROL",
            "Inverted": false,
            "Disabled": false,
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567"
        },
        "HealthCheckVersion": 1
    }
}
```

```
aws route53 create-health-check --caller-reference RoutingControlCell2 \
				--health-check-config \
				Type=RECOVERY_CONTROL,RoutingControlArn=arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567
```

```
{
    "Location": "https://route53.amazonaws.com/2015-01-01/healthcheck/11111aaaa-bbbb-cccc-dddd-ffffff22222",
    "HealthCheck": {
        "Id": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "CallerReference": "RoutingControlCell2",
        "HealthCheckConfig": {
            "Type": "RECOVERY_CONTROL",
            "Inverted": false,
            "Disabled": false,
            "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567"
        },
        "HealthCheckVersion": 1
    }
}
```

5c. 创建两个失效转移 DNS 记录，并将运行状况检查与每个记录关联起来。

使用 Route 53 CLI 在 Route 53 中创建失效转移 DNS 记录。要创建记录，请按照《Amazon Route 53 AWS CLI 命令参考》中该[change-resource-record-sets](https://docs.aws.amazon.com/cli/latest/reference/route53/change-resource-record-sets.html)命令的说明进行操作。在记录中，指定每个单元格的 DNS 值以及 Route 53 为运行状况检查创建的相应 `HealthCheckID` 值（请参阅 6b）。

对于主单元格：

```
{
    "Name": "myapp.yourdomain.com",
    "Type": "CNAME",
    "SetIdentifier": "primary",
    "Failover": "PRIMARY",
    "TTL": 0,
    "ResourceRecords": [
        {
            "Value": "cell1.yourdomain.com"
        }
    ],
    "HealthCheckId": "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
```

对于辅助单元格：

```
{
    "Name": "myapp.yourdomain.com",
    "Type": "CNAME",
    "SetIdentifier": "secondary",
    "Failover": "SECONDARY",
    "TTL": 0,
    "ResourceRecords": [
        {
            "Value": "cell2.yourdomain.com"
        }
    ],
    "HealthCheckId": "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
}
```

现在，要从主单元格失效转移到辅助单元格，可以按照步骤 4b 中的 CLI 示例将 `RoutingControlCell1` 的状态更新为 `OFF`，将 `RoutingControlCell2` 的状态更新为 `ON`。

# 使用列出并更新路由控制和状态 AWS CLI
<a name="getting-started-cli-routing.control-state"></a>

创建 Amazon 应用程序恢复控制器（ARC）资源（例如，集群、路由控制和控制面板）后，您可以与集群交互，以列出和更新路由控制状态，以便进行失效转移。

对于您创建的每个集群，ARC 都会为您提供一组集群端点，五个 AWS 区域中各一个端点。在调用集群以检索或将路由控制状态设置为或时，必须指定其中一个区域终端节点（ AWS 区域 和终端节点 URL）`Off`。`On`当您使用 AWS CLI、获取或更新路由控制状态时，除了区域终端节点外，还必须指定区域终端节点`--region`的终端节点，如本节中的示例所示。

您可以使用任何区域集群端点。建议您的系统能够通过区域端点路由，准备好重试每个可用的端点。有关说明按顺序尝试集群端点的代码示例，请参阅[应用程序恢复控制器使用的操作 AWS SDKs](service_code_examples_actions.md)。

有关使用的更多信息 AWS CLI，请参阅《 AWS CLI 命令参考》。有关路由控制 API 操作的列表以及指向更多信息的链接，请参阅[路由控制 API 操作](actions.routing-control.md)。

**重要**  
尽管您可以在 Amazon Route 53 控制台上[更新路由控制状态](routing-control.update.api.md)，但我们建议您使用 AWS CLI 或 AWS SDK 更新路由控制状态。ARC 通过 ARC 路由控制数据面板提供极高的可靠性，以重新路由流量和跨单元格失效转移。有关使用 ARC 进行失效转移的更多建议，请参阅 [ARC 中路由控制的最佳实践](route53-arc-best-practices.regional.md)。

创建路由控制时，状态设置为 `Off`。这意味着流量不会路由到该路由控制的目标单元格。您可以通过运行 `get-routing-control-state` 命令验证路由控制的状态。

要确定将要指定的区域和端点，请运行 `describe-clusters` 命令以查看 `ClusterEndpoints`。每个都`ClusterEndpoint`包括一个区域和相应的终端节点，您可以使用它们来获取或更新路由控制状态。 *[DescribeCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster-clusterarn.html)是一项恢复控制配置 API 操作。建议您将 ARC 区域集群端点的本地副本保存在书签中，或者硬编码到用于重试端点的自动化代码中。*

## 1. 列出路由控制
<a name="getting-started-cli-routing.view-rc"></a>

您可以使用高度可靠的 ARC 数据面板端点查看路由控制和路由控制状态。

1. 列出特定控制面板的路由控制。如果不指定控制面板，`list-routing-controls` 会返回集群中的所有路由控制。

```
aws route53-recovery-cluster list-routing-controls --control-panel-arn \
        arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456 \ 
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{
    "RoutingControls": [{
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ControlPanelName": "ExampleControlPanel",
        "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "RoutingControlName": "RCOne",
        "RoutingControlState": "On"
    },
    {
        "ControlPanelArn": "arn:aws:route53-recovery-control::023759465626:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ControlPanelName": "ExampleControlPanel",
        "RoutingControlArn": "arn:aws:route53-recovery-control::023759465626:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/zzzzxxxxyyyy123456",
        "RoutingControlName": "RCTwo",
        "RoutingControlState": "Off"
    }
]
```

## 2. 获取路由控制
<a name="getting-started-cli-routing.get-rc"></a>

2. 获取路由控制状态。

```
aws route53-recovery-cluster get-routing-control-state --routing-control-arn \
        arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567 \
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{"RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
    "RoutingControlName": "RCOne",
    "RoutingControlState": "On"
}
```

## 2. 更新路由控制
<a name="getting-started-cli-routing.update-rc"></a>

要将流量路由到路由控制所控制的目标端点，请将路由控制状态更新为 `On`。通过运行 `update-routing-control-state` 命令更新路由控制状态。（请求成功时，响应为空。）

2a. 更新路由控制状态。

```
aws route53-recovery-cluster update-routing-control-state \
        --routing-control-arn \
        arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567 \
        --routing-control-state On \
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{}
```

您可以通过一个 API 调用同时更新多个路由控制：`update-routing-control-states`。（请求成功时，响应为空。）

2b. 一次更新多个路由控制状态（批量更新）。

```
aws route53-recovery-cluster update-routing-control-states \
        --update-routing-control-state-entries \
        '[{"RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "RoutingControlState": "Off"}, \
        {"RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/hijklmnop987654321",
        "RoutingControlState": "On"}]' \
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{}
```

# 在 ARC 中使用路由控制组件
<a name="routing-control.working-with"></a>

**Topics**
+ [在 ARC 中创建路由控制组件](routing-control.create.md)
+ [在 ARC 中查看和更新路由控制状态](routing-control.update.md)
+ [为路由控制创建安全规则](routing-control.safety-rules.md)
+ [ARC 中对集群的跨账户支持](routing-control.failover-different-accounts.md)

# 在 ARC 中创建路由控制组件
<a name="routing-control.create"></a>

本节介绍如何创建集群、路由控制、运行状况检查和控制面板，以便在 Amazon 应用程序恢复控制器（ARC）中使用路由控制。

首先创建一个集群，以托管您的路由控制和用于给路由控制分组的控制面板。然后创建路由控制和运行状况检查，这样就可以重新路由流量，从一个单元格失效转移到另一个单元格，使流量流向别处，例如您的备份副本。

请注意，您创建的每个集群均按小时收费。通常，您只需要一个集群来托管路由控制和控制面板，以管理应用程序的恢复控制。此外，您可以使用设置资源共享 AWS Resource Access Manager，以便一个集群可以托管路由控制和多个集群拥有的其他 ARC 资源 AWS 账户。要了解 ARC 中的资源共享，请参阅 [ARC 中对集群的跨账户支持](routing-control.failover-different-accounts.md)。有关定价信息，请参阅 [Amazon 应用程序恢复控制器 (ARC) 定价](https://aws.amazon.com/application-recovery-controller/pricing/)。

要使用路由控制对流量进行失效转移，您需要创建路由控制运行状况检查，并将其与应用程序中资源的 Amazon Route 53 DNS 记录相关联。举个例子，假设您有两个单元格，一个配置为应用程序的主单元格，另一个配置为辅助单元格（失效转移的目的地）。

要为失效转移设置运行状况检查，请执行以下操作：

1. 为每个单元格创建路由控制。

1. 为每个路由控制创建运行状况检查。

1. 创建两个 DNS 记录（例如两个 DNS 故障转移记录），并将运行状况检查与每个记录关联起来。

当您创建的安全规则是门控规则时，也可能需要创建路由控制。在这种情况下，不要将运行状况检查和 DNS 记录与路由控制相关联，因为您要把它用作*门控路由控制*。有关更多信息，请参阅 [为路由控制创建安全规则](routing-control.safety-rules.md)。

这些节中包含在 ARC 控制台上创建路由控制组件的步骤。要了解如何在 ARC 中使用恢复控制配置 API 操作，请参阅[路由控制 API 操作](actions.routing-control.md)。

# 在 ARC 中创建集群
<a name="routing-control.create-cluster"></a>

您必须在 ARC 中创建一个集群才能托管路由控制和控制面板。

*集群*是一组冗余的区域端点，您可以在这些端点上执行 API 调用，以更新或获取一个或多个路由控制的状态。一个集群可以托管许多路由控制。

**重要**  
请注意，您创建的每个集群均按小时收费。一个集群可以托管许多路由控制和控制面板，通常足够用来管理应用程序的恢复控制。

# 创建集群


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**集群**。

1. 选择**创建**，然后输入集群的名称。

1. 选择**创建集群**。

# 在 ARC 中创建路由控制
<a name="routing-control.create-control"></a>

为流量路由的每个目标单元格创建路由控制。例如，当您的应用程序的资源孤立以实现可恢复性时，每个应用程序可能都有一个单元，每个区域的每个 AWS 区域可用区都有嵌套单元格。在这种情况下，要为每个单元格和每个嵌套单元格创建一个路由控制。

创建路由控制时，请记住路由控制名称在每个控制面板中必须是唯一的。

创建用于重新路由流量的路由控制后，您可以将每个路由控制与运行状况检查相关联，这样您就可以根据与每个检查关联的 DNS 记录将流量路由到单元格。如果您要设置门控规则作为安全规则并创建门控路由控制，则不要向路由控制中添加运行状况检查。

# 创建路由控制的步骤


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**路由控制**。

1. 在**路由控制**页面上，选择**创建**，然后选择**路由控制**。

1. 输入路由控制的名称，选择要添加控制的目标集群，然后选择把它添加到现有的控制面板，包括使用默认控制面板。或者创建新的控制面板。

1. 如果您选择创建新的控制面板，请选择要在上面创建控制面板的集群，然后输入面板的名称。

1. 选择**创建路由控制**。

1. 按照步骤命名和创建路由控制。

# 在 ARC 中创建路由控制运行状况检查
<a name="routing-control.create-health-check"></a>

请将路由控制运行状况检查与要用于重新路由流量的每个路由控制关联起来。然后，为每个运行状况检查配置 Amazon Route 53 DNS 记录（例如失效转移 DNS 记录）。然后，您只需更新关联的路由控制的状态，将其设置为 `On` 或 `Off`，即可在 Amazon 应用程序恢复控制器（ARC）中重新路由流量。

**注意**  
您无法编辑现有的路由控制运行状况检查，将其与其他路由控制相关联。

# 创建路由控制运行状况检查的步骤


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**路由控制**。

1. 在**路由控制**页面上，选择一个路由控制。

1. 在**路由控制**详细信息页面上，选择**创建运行状况检查**。

1. 输入运行状况检查的名称，然后选择**创建**。

接下来，创建 Route 53 DNS 记录，并将您的路由控制运行状况检查与每个记录相关联。例如，假设您希望使用两个 DNS 失效转移记录来与路由控制运行状况检查相关联。要让 ARC 通过使用路由控制正确地对流量进行失效转移，首先要在 Route 53 中创建两个失效转移记录：主失效转移记录和辅助失效转移记录。有关配置 DNS 故障转移记录的更多信息，请参阅[运行状况检查概念](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html#route-53-concepts-health-checking)。

创建主失效转移记录时，其值应如下所示：

```
			Name: myapp.yourdomain.com
			Type: CNAME
			Set Identifier: Primary
			Failover: Primary
			TTL: 0
			Resource Records:
			Value: cell1.yourdomain.com
			Health Check ID: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

辅助失效转移记录值应如下所示：

```
			Name: myapp.yourdomain.com
			Type: CNAME
			Set Identifier: Secondary
			Failover: Secondary
			TTL: 0
			Resource Records:
			Value: cell2.yourdomain.com
			Health Check ID: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

现在，假设您要重新路由流量，因为出现了故障。为此，您需要更新关联的路由控制状态，将主路由控制状态更改为 `OFF`，将辅助路由控制状态更改为 `ON`。执行此操作时，关联的运行状况检查会阻止流量流向主副本，而是将其路由到辅助副本。有关使用路由控制对流量进行失效转移的更多信息，请参阅[使用 ARC API 获取和更新路由控制状态（推荐）](routing-control.update.api.md)。

要查看使用 ARC API 操作创建路由控制和相关运行状况检查的 AWS CLI 命令示例，请参阅[使用 ARC 路由控制 API 操作的示例 AWS CLI](getting-started-cli-routing.md)。

# 在 ARC 中创建控制面板
<a name="routing-control.create-control-panel"></a>

Amazon 应用程序恢复控制器（ARC）中的控制面板可以将相关的路由控制聚合在一起。控制面板可以包含代表应用程序中的微服务、整个应用程序或一组应用程序的路由控制，具体取决于失效转移的范围。将路径控制组合到控制面板中的一个好处是，您可以配合使用安全规则和控制面板，帮助保护流量路由的变化。

创建集群时，ARC 会创建一个默认的控制面板。您可以使用默认控制面板放置路由控制，也可以创建一个或多个控制面板，对路由控制进行分组。请注意，控制面板名称仅支持 ASCII 字符。

本节包含在 ARC 控制台上创建控制面板的步骤。有关在 ARC 中使用恢复控制配置 API 操作的信息，请参阅[路由控制 API 操作](actions.routing-control.md)。

# 创建控制面板的步骤


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**路由控制**。

1. 在**路由控制**页面上，选择**创建**，然后选择**控制面板**。

1. 请选择要在上面创建控制面板的集群，然后输入面板的名称。

1. 选择**创建控制面板**。

# 在 ARC 中查看和更新路由控制状态
<a name="routing-control.update"></a>

本节介绍如何在 Amazon 应用程序恢复控制器（ARC）中查看和更新路由控制状态。路由控制是简单的开关机构，管理流向恢复组中的单元格的流量。单元通常是可用区 AWS 区域，有时是包含您的资源的可用区。当路由控制状态为 `On` 时，流量会流向由受该路由控制所控的单元格。

您可以将路由控制组合到控制面板中，后者是失效转移逻辑分组。例如，当您在控制台上打开控制面板时，您可以同时查看一个分组的所有路由控制，从而看清流量流向何处。

您可以在 ARC 控制台上或使用 ARC API 更新路由控制状态。我们建议您使用 API 更新路由控制状态。首先，ARC 在数据面板中提供极其可靠的 API 来执行这些操作。当您更改路由控制状态时，这一点很重要，因为路由状态的更改会通过重新路由应用程序流量进行跨单元格的失效转移。此外，使用 API 时，如果您尝试连接的集群端点不可用，可以根据需要尝试轮流连接到不同的集群端点。

您可以更新一个路由控制状态，也可以同时更新多个路由控制状态。例如，您可能想要将一个路由控制状态设置为 `Off`，以阻止流量流向一个单元格，比如应用程序延迟增加的可用区。同时，您可能想要将另一个路由控制状态设置为 `On`，以启动流向另一个单元格或可用区的流量。在这种情况下，您可以同时更新两个路由控制状态，以使流量可以持续流动。

**Topics**
+ [使用 ARC API 获取和更新路由控制状态（推荐）](routing-control.update.api.md)
+ [获取和更新中的路由控制状态 AWS 管理控制台](routing-control.update.console.md)

# 使用 ARC API 获取和更新路由控制状态（推荐）
<a name="routing-control.update.api"></a>

我们建议您使用 Amazon Application Recovery Controller (ARC) API 操作来获取或更新路由控制状态，方法是使用 AWS CLI 命令或使用您开发的用于将 ARC API 操作与其中一个操作一起使用的代码 AWS SDKs。建议使用 CLI 或代码中的 API 操作（而不是使用 AWS 管理控制台）来处理路由控制状态。

由于路由控制存储在高度可用的集群中，所以 ARC 通过使用 API 更新路由控制状态，可以极其可靠地进行跨单元格（AWS 区域）失效转移。ARC 确保您始终可以访问五个区域集群端点中的至少三个端点，以进行路由控制状态更改。要使用 API 获取或更改路由控制状态，您需要连接到其中一个区域集群端点。如果该端点不可用，可尝试连接到另一个集群端点。

您可以在 Route 53 控制台中查看集群的区域集群终端节点列表，也可以使用 API 操作查看[DescribeCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster-clusterarn.html)。在获取和更改路由控制状态的过程中，应根据需要轮流尝试每个端点，因为集群端点会在可用和不可用状态之间循环，以便定期维护和更新。

我们提供了有关使用 ARC API 操作获取和更新路由控制状态以及使用区域集群端点的详细信息和代码示例。有关更多信息，请参阅下列内容：
+ 有关说明如何轮换区域集群端点以获取和设置路由控制状态的代码示例，请参阅[应用程序恢复控制器使用的操作 AWS SDKs](service_code_examples_actions.md)。
+ 有关使用获取和更新路由控制状态的信息，请参阅[使用列出并更新路由控制和状态 AWS CLI](getting-started-cli-routing.control-state.md)。 AWS CLI 

# 获取和更新中的路由控制状态 AWS 管理控制台
<a name="routing-control.update.console"></a>

您可以在 AWS 管理控制台中获取和更新路由控制状态。但请注意，您不能在控制台中选择不同的区域集群端点。也就是说，在控制台中没有选择和轮换集群端点的过程，这一点与使用 Amazon 应用程序恢复控制器（ARC）API 不一样。此外，控制台的可用性不高，而 ARC 数据面板提供了极高的可靠性。出于这些原因，建议您在生产运营中使用 ARC API 获取和更新路由控制状态。

有关使用 ARC 进行失效转移的更多建议，请参阅 [ARC 中路由控制的最佳实践](route53-arc-best-practices.regional.md)。

要在控制台中查看和更新路由控制，请按照以下过程中的步骤操作。

# 获取路由控制状态的步骤


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**路由控制**。

1. 从列表中选择控制面板并查看路由控制。

# 更新一个或多个路由控制状态的步骤


1. 在[https://console.aws.amazon.com/route53/家](https://console.aws.amazon.com/route53/home)中打开亚马逊 Route 53 控制台。

1. 在**应用程序恢复控制器**下，选择**路由控制**。

1. 选择**操作**，然后选择**更改流量路由**。

1. 根据您想让应用程序的流量流向或停止流向何处，将一个或多个路由控制的状态更新为 `Off` 或 `On`。

1. 在文本框中输入 `confirm`。

1. 选择**更新流量路由**。

# 为路由控制创建安全规则
<a name="routing-control.safety-rules"></a>

当您同时使用多个路由控制时，您可能会决定采取保障措施以避免意想不到的后果。例如，您可能希望防止无意中关闭应用程序的所有路由控制，因为这样会导致出现打开失败情况。也许为了防止自动化机制重新路由流量，您也可能想实现一个主开关机构来禁用一组路由控制。要在 ARC 中建立这样的路径控制保障措施，您需要创建*安全规则*。

请组合使用路由控制、规则和您指定的其他选项来为路由控制配置安全规则。每个安全规则都与一个控制面板相关联，但一个控制面板可以有多个安全规则。创建安全规则时，请记住在每个控制面板中安全规则名称必须是唯一的。

**Topics**
+ [安全规则的类型](#routing-control.about-safety-rule)
+ [在控制台上创建安全规则](routing-control.create-safety-rule.md)
+ [在控制台上编辑或删除安全规则](routing-control.edit-delete-safety-rule.md)
+ [覆盖安全规则以重新路由流量](routing-control.override-safety-rule.md)

## 安全规则的类型
<a name="routing-control.about-safety-rule"></a>

安全规则有两种类型，即*断言规则*和*门控规则*，您可以使用它们以不同的方式保护失效转移。

**断言规则**  
使用断言规则时，如果您更改一个或一组路由控制状态，ARC 会强制满足您在配置规则时设置的标准，否则路由控制状态不会更改。  
预防打开失败就是适合使用这种规则的一个例子。在打开失败的情况中，您会阻止流量流向一个单元格，但没有让流量开始流向另一个单元格。为了避免这种情况，断言规则确保在任何给定时间控制面板的一组路由控制中至少有一个路由控制是 `On` 状态。这样可以确保流量流向应用程序的至少一个区域或可用区。  
要查看创建断言规则以强制执行此标准的 AWS CLI 命令示例，请参阅中的*[使用 ARC 路由控制 API 操作的示例 AWS CLI](getting-started-cli-routing.md)创建安全规则*。  
有关断言规则 API 操作属性的详细信息，请参阅 [AssertionRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-assertionrule)Amazon 应用程序恢复控制器的路由控制 API 参考指南。

**门控规则**  
使用门控规则时，您可以对一组路由控制实施整体的开关，以根据您在规则中指定的一组标准来判断这些路由控制状态是否可以更改。最简单的标准是，指定为开关的单个路由控制设置为 `ON` 还是 `OFF`。  
要实现这一点，您需要创建*门控路由控制*作为整体开关，并创建*目标路由控制*，以控制流量流向不同的区域或可用区。然后，要防止手动或自动更新您为门控规则配置的目标路由控制的状态，您需要将门控路由控制状态设置为 `Off`。要允许更新，请将其设置为 `On`。  
要查看用于创建实现此类整体开关的门控规则的示例 AWS CLI 命令，请参阅中的*创建安全规则*[使用 ARC 路由控制 API 操作的示例 AWS CLI](getting-started-cli-routing.md)。  
有关门控规则 API 操作属性的详细信息，请参阅 [GatingRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-gatingrule)Amazon 应用程序恢复控制器的路由控制 API 参考指南。

# 在控制台上创建安全规则
<a name="routing-control.create-safety-rule"></a>

本节中的步骤说明了如何在 ARC 控制台中创建安全规则。无论您创建断言规则还是门控规则，步骤都是相似的。差异已在程序中注明。

要了解如何在 Amazon 应用程序恢复控制器（ARC）中使用恢复和路由控制 API 操作，请参阅[路由控制 API 操作](actions.routing-control.md)。

# 创建安全规则的步骤


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**路由控制**。

1. 在**路由控制**页面上，选择一个控制面板。

1. 在控制面板详细信息页面上，选择**操作**，然后选择**添加安全规则**。

1. 选择要添加的规则类型：**断言规则**或**门控规则**。

1. 选择一个名称，然后（可选）更改等待时间。

1. 指定安全规则的配置选项。
   + 对于断言规则，请指定断言的路由控制。
   + 对于门控规则，请指定门控路由控制和目标路由控制。

   对于两种规则，通过选择类型和阈值以及规则是否反转来指定规则配置。
**注意**  
要了解有关指定断言规则的更多信息，请参阅 Amazon 应用程序恢复控制器的路由控制 API 参考指南中提供的[AssertionRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-assertionrule)操作信息。要了解有关指定门控规则的更多信息，请参阅 Amazon 应用程序恢复控制器的路由控制 API 参考指南中为该[GatingRule](https://docs.aws.amazon.com/recovery-cluster/latest/api/safetyrule.html#safetyrule-model-gatingrule)操作提供的信息。

1. 选择**创建**。

# 在控制台上编辑或删除安全规则
<a name="routing-control.edit-delete-safety-rule"></a>

本节中的步骤说明了如何在 ARC 控制台中编辑或删除安全规则。您只能对安全规则进行有限的编辑，以更改名称或更新等待时间。要进行其他更改，请删除并重新创建安全规则。

要了解如何在 Amazon 应用程序恢复控制器（ARC）中使用 API 操作，请参阅[路由控制 API 操作](actions.routing-control.md)。

# 删除安全规则的步骤


1. 访问 [https://console.aws.amazon.com/route53recovery/home#/dashboard](https://console.aws.amazon.com/route53recovery/home#/dashboard)，打开 ARC 控制台。

1. 选择**路由控制**。

1. 在**路由控制**页面上，选择一个控制面板。

1. 在控制面板详细信息页面上，选择安全规则，然后选择**删除**或**编辑**。

# 覆盖安全规则以重新路由流量
<a name="routing-control.override-safety-rule"></a>

在某些情况下，您可能想绕过通过配置的安全规则强制执行的路由控制保护措施。例如，您可能想要快速失效转移以进行灾难恢复，而一个或多个安全规则可能会意外阻止您更新路由控制状态以重新路由流量。在这种“打碎玻璃”的情况下，您可以覆盖一个或多个安全规则来更改路由控制状态并对应用程序进行失效转移。

使用带`safety-rules-to-override`参数的或`update-routing-control-states` AWS CLI 命令更新路由控制状态（或多个路由控制状态）时，可以绕过安全规则。`update-routing-control-state`使用您要覆盖的安全规则的 Amazon 资源名称 (ARN) 来指定参数，或者指定以逗号分隔的列表 ARNs 来覆盖两个或多个安全规则。

当安全规则阻止路由控制状态更新时，错误消息将包含阻止更新的规则的 ARN。您可以记下 ARN，然后在路由控制状态 CLI 命令的安全规则覆盖参数中指定它。

**注意**  
由于您正在更新的路由控制可能设有多个安全规则，因此您可能在运行 CLI 命令更新路由控制状态时只覆盖一个安全规则，而收到另一个安全规则阻止更新的错误。继续将安全规则 ARNs 添加到更新命令中要覆盖的规则列表中，以逗号分隔，直到更新命令成功完成。

要详细了解如何将该`SafetyRulesToOverride`属性与 API 和一起使用 SDKs，请参阅[UpdateRoutingControlState](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_UpdateRoutingControlState.html)。

以下是覆盖安全规则以更新路由控制状态的两个 CLI 命令示例。

**覆盖一个安全规则**  

```
aws route53-recovery-cluster --region us-west-2 update-routing-control-state \
				--routing-control-arn \
				arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567 \
				--routing-control-state On \
				--safety-rules-to-override arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/safetyrule/yyyyyyy8888888 \
				--endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

**覆盖两个安全规则**  

```
aws route53-recovery-cluster --region us-west-2 update-routing-control-state \
				--routing-control-arn \
				arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567 \
				--routing-control-state On \
				--safety-rules-to-override "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/safetyrule/yyyyyyy8888888" \
				"arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/safetyrule/qqqqqqq7777777"
				--endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

# ARC 中对集群的跨账户支持
<a name="routing-control.failover-different-accounts"></a>

Amazon 应用程序恢复控制器 (ARC) 与集成 AWS Resource Access Manager 以实现资源共享。 AWS RAM 是一项使您能够与他人共享资源 AWS 账户 或通过共享资源的服务 AWS Organizations。对于 ARC 路由控制，您可以共享集群资源。

使用 AWS RAM，您可以通过创建资源共享来*共享您拥有的资源*。资源共享指定要共享的资源以及共享资源的*参与者*。参与者可以包括：
+ 特定于所有者组织 AWS 账户 内部或外部 AWS Organizations
+ 其组织内部的组织单位 AWS Organizations
+ 它的整个组织都在 AWS Organizations

有关的更多信息 AWS RAM，请参阅《*[AWS RAM 用户指南》](https://docs.aws.amazon.com/ram/latest/userguide/)*。

通过使用 AWS Resource Access Manager 在 ARC 中跨账户共享集群资源，您可以使用一个集群来托管由多个不同账户拥有的控制面板和路由控件 AWS 账户。当您选择共享集群时，您指定的其他 AWS 账户 人可以使用该集群来托管自己的控制面板和路由控件，从而可以对不同团队之间的路由功能进行更多的控制和灵活性。

AWS RAM 是一项可帮助 AWS 客户安全地共享资源的服务 AWS 账户。借 AWS RAM助，您可以使用 IAM 角色和用户在 AWS Organizations组织或组织单位 (OUs) 内共享资源。 AWS RAM 是一种集中和受控的群集共享方式。

通过共享集群，可以减少组织所需的集群总数。集群共享后，您可以将运行集群的总成本分摊给不同的团队，从而以更低的成本更大限度地发挥 ARC 的优势。（创建托管在集群中的资源不会给拥有者或参与者增加成本。） 跨账户共享集群还可以简化将多个应用程序加载到 ARC 的过程，尤其是在大量应用程序分布在多个账户和运营团队中的情况下。

要开始在 ARC 中进行跨账户共享，请在 AWS RAM中创建资源共享**。资源共享指定有权共享您的账户所拥有的集群的*参与者*。然后，参与者可以在集群中创建资源，例如控制面板和路由控件，方法是使用 AWS 管理控制台 或运行 ARC API 操作 AWS SDKs。 AWS Command Line Interface 

本主题说明如何共享您拥有的资源以及如何使用共享给您的资源。

**Topics**
+ [共享集群的先决条件](#sharing-prereqs)
+ [共享集群](#sharing-share)
+ [取消共享集群](#sharing-unshare)
+ [识别共享集群](#sharing-identify)
+ [共享集群的责任和权限](#sharing-perms)
+ [成本计费](#sharing-billing)
+ [配额](#sharing-quotas)

## 共享集群的先决条件
<a name="sharing-prereqs"></a>
+ 要共享集群，您必须在自己的集群中拥有该集群 AWS 账户。这意味着资源必须分配或预调配到您的账户。您无法共享已共享给您的集群。
+ 要与您的组织或 AWS Organizations内的组织单位共享集群，您必须允许与 AWS Organizations共享。有关更多信息，请参阅《*AWS RAM 用户指南*》中的[允许与 AWS Organizations共享](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。
+ AWS RAM 集群等全球资源的资源共享必须在美国东部（弗吉尼亚北部）区域 (us-east-1) 创建。

## 共享集群
<a name="sharing-share"></a>

当您共享自己拥有的集群时，您指定共享该集群的参与者可以在集群中创建和托管自己的 ARC 资源。

要共享集群，您必须将它添加到资源共享中。资源共享是一项 AWS RAM 资源，可让您跨 AWS 账户共享资源。资源共享将指定要共享的资源以及共享资源的参与者。要共享集群，您可以创建新的资源共享或将资源添加到现有资源共享。要创建新的资源共享，您可以使用[AWS RAM 控制台](https://console.aws.amazon.com/ram)，也可以将 AWS RAM API 操作与 AWS Command Line Interface 或一起使用 AWS SDKs。

如果您是组织中组织的一员， AWS Organizations 并且启用了组织内部共享，则系统会自动授予组织中的参与者访问共享群集的权限。否则，参与者会收到加入资源共享的邀请，并在接受邀请后获得对共享集群的访问权限。

您可以使用 AWS RAM 控制台共享您拥有的集群，也可以通过使用或的 AWS RAM API 操作来共享您拥有的 AWS CLI 集群 SDKs。

**使用 AWS RAM 控制台共享您拥有的集群**  
请参阅《AWS RAM 用户指南**》中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)。

**要共享您拥有的集群，请使用 AWS CLI**  
使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

**授予共享集群的权限**

跨账户共享集群需要通过共享集群的 IAM 委托人的权限 AWS RAM。

建议使用 `AmazonRoute53RecoveryControlConfigFullAccess` 托管 IAM 策略，确保 IAM 主体拥有共享和使用所共享集群的必需权限。

使用自定义 IAM 策略共享集群需要该集群的 `route53-recovery-control-config:PutResourcePolicy`、`route53-recovery-control-config:GetResourcePolicy`、和 `route53-recovery-control-config:DeleteResourcePolicy` 权限。`PutResourcePolicy` 和 `DeleteResourcePolicy` 是仅限权限的 IAM 操作。在没有这些权限 AWS RAM 的情况下尝试通过共享集群将导致错误。

有关 AWS Resource Access Manager 使用 IAM 的方式的更多信息，请参阅*AWS RAM 用户指南*中的[如何 AWS Resource Access Manager 使用 IAM](https://docs.aws.amazon.com/ram/latest/userguide/security-iam-policies.html)。

## 取消共享集群
<a name="sharing-unshare"></a>

取消共享集群时，以下规则适用于参与者和拥有者：
+ 现有参与者资源将继续留存在已取消共享的集群中。
+ 参与者可以继续在已取消共享的集群中更新路由控制状态，以管理应用程序失效转移的路由。
+ 参与者不能再在已取消共享的集群中创建新资源。
+ 如果参与者在已取消共享的集群中仍有资源，则拥有者无法删除共享集群。

要取消共享您拥有的共享集群，必须从资源共享中将其删除。您可以通过使用 AWS RAM 控制台或将 AWS RAM API 操作与或结合使用 API 操作来实现此 AWS CLI 目的 SDKs。

**使用控制台取消共享您拥有的共享集群 AWS RAM**  
请参阅《AWS RAM 用户指南》中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)。

**要取消共享您拥有的共享集群，请使用 AWS CLI**  
使用 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 命令。

## 识别共享集群
<a name="sharing-identify"></a>

拥有者和参与者可以通过查看 AWS RAM中的信息来识别共享集群。他们还可以通过使用 ARC 控制台和 AWS CLI获取有关共享资源的信息。

一般而言，要详细了解您已共享或已与您共享的资源，请参阅《 AWS Resource Access Manager 用户指南》中的信息：
+ 作为拥有者，您可以使用 AWS RAM查看与他人共享的所有资源。有关更多信息，请参阅[中的查看共享资源 AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-view-sr.html)。
+ 作为参与者，您可以使用查看与您共享的所有资源 AWS RAM。有关更多信息，请参阅[中的查看共享资源 AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-view-sr.html)。

作为所有者，您可以通过查看中的信息 AWS 管理控制台 或使用 with ARC API 操作来确定是否共享集群。 AWS Command Line Interface 

**使用控制台确定您拥有的集群是否已共享的步骤**  
在 AWS 管理控制台集群的详细信息页面上，查看**集群共享状态**。

**要确定您拥有的集群是否已共享，请使用 AWS CLI**  
使用 [ get-resource-policy](https://docs.aws.amazon.com/recovery-cluster/latest/api/resourcepolicy-resourcearn.html.html) 命令。如果集群有资源策略，则该命令将返回有关该策略的信息。

作为参与者，当集群共享给您时，您通常必须接受共享。此外，集群的**拥有者**字段包含集群拥有者的帐户。

## 共享集群的责任和权限
<a name="sharing-perms"></a>

### 拥有者的权限
<a name="perms-owner"></a>

当您与其他人共享您拥有的集群时 AWS 账户，允许使用该集群的参与者可以在集群中创建控制面板、路由控件和其他资源。

作为集群的拥有者，您负责创建、管理和删除集群。您不能修改或删除参与者创建的资源，例如路由控制和安全规则。例如，您不能更新参与者创建的路由控制，以更改路由控制状态。

但是，您可以查看参与者在您拥有的集群中创建的路由控制的详细信息。例如，您可以使用 AWS Command Line Interface 或调用 [ARC 路由控制 API 操作](actions.routing-control.md)来查看路由控制状态 AWS SDKs。

如果您需要修改参与者创建的资源，他们可以在 IAM 中设置一个拥有资源访问权限的角色，并将您的账户添加到该角色中。

### 参与者的权限
<a name="perms-consumer"></a>

一般而言，参与者可以创建和使用他们在共享的集群中创建的控制面板、路由控制、安全规则和运行状况检查。只有他们在共享集群中拥有资源，才能查看、修改或删除这些集群资源。例如，参与者可以为自己创建的控制面板创建和删除安全规则。

以下限制适用于参与者：
+ 参与者无法查看、修改或删除由使用共享集群的其他账户创建的控制面板。
+ 参与者无法查看、创建或修改其他账户在共享集群中创建的资源的路由控制，包括路由控制状态。
+ 参与者无法创建、修改或查看其他账户在共享集群中创建的安全规则。
+ 参与者无法在共享集群的默认控制面板中添加资源，因为它属于集群拥有者。

如前所述，参与者无法在共享集群的默认控制面板中创建路由控制，因为集群拥有者拥有默认控制面板。但是，集群拥有者可以创建跨账户 IAM 角色，以提供访问集群默认控制面板的权限。然后，拥有者可以向参与者授予权限以担任该角色，这样参与者就可以访问默认控制面板，按照拥有者通过角色权限指定的方式使用该面板。

## 成本计费
<a name="sharing-billing"></a>

ARC 中集群的拥有者需要支付与该集群相关的费用。对于集群拥有者或参与者来说，创建托管在集群中的资源不会产生任何额外成本。

有关详细定价信息和示例，请参阅 [Amazon 应用程序恢复控制器 (ARC) 定价](https://aws.amazon.com/application-recovery-controller/pricing/)。

## 配额
<a name="sharing-quotas"></a>

在共享集群中创建的所有资源（包括有权访问共享集群的所有参与者创建的资源）都计入该群集和其他资源（例如路由控制）的有效限额。如果共享集群资源的账户的配额高于集群所有者的配额，则集群所有者的配额优先于参与共享的账户的配额。

 为了更好地理解其工作原理，请参阅以下示例。为了说明配额如何与资源共享一起使用，在这些示例中，假设集群所有者是所有者，而与之共享集群的账户是参与者。

**控制面板配额**  
对于所有者每个集群的控制面板总数，系统会强制实施配额。  
例如，假设所有者每个集群的控制面板数量配额为 50，并且集群中已有 13 个控制面板。现在，假设参与者将此配额设置为 150。在这种情况下，参与者只能在共享集群中创建最多 37 个控制面板（即 50-13）。  
此外，如果共享集群的其他账户也创建了控制面板，则这些控制面板也都计入集群总配额（50 个控制面板）。

**路由控制配额**  
路由控制有多个配额：每个控制面板的配额、每个集群的配额以及每个安全规则的配额。对于所有这些配额，优先考虑所有者的配额。  
例如，假设所有者每个集群的路由控制数量配额为 300，并且集群中已有 300 个路由控制。现在，假设参与者已将此配额设置为 500。在这种情况下，参与者无法在共享集群中创建任何新的路由控制。

**安全规则配额**  
对于所有者每个控制面板配额的安全规则数量，系统会强制实施配额。  
例如，假设所有者每个控制面板的安全规则数量配额为 20，参与者将此配额设置为 80。在这种情况下，由于所有者的下限优先，因此参与者只能在共享集群的控制面板中创建最多 20 条安全规则。

有关路由控制配额的列表，请参阅[路由控制的配额](routing-control.quotas.md)。

# Amazon 应用程序恢复控制器（ARC）中路由控制的日志记录和监控
<a name="monitoring-routing"></a>

您可以使用 AWS CloudTrail 监控 Amazon 应用程序恢复控制器 (ARC) 中的路由控制，以分析模式并帮助解决问题。

**Topics**
+ [使用 AWS CloudTrail 记录 ARC API 调用日志](cloudtrail-routing.md)

# 使用 AWS CloudTrail 记录 ARC API 调用日志
<a name="cloudtrail-routing"></a>

Amazon 应用程序恢复控制器（ARC）与 AWS CloudTrail 集成，后者是一项服务，可用于记录 ARC 中由用户、角色或 AWS 服务所采取的操作。CloudTrail 将 ARC 的所有 API 调用作为事件捕获。捕获的调用包含来自 ARC 控制台的调用和对 ARC API 操作的代码调用。

如果您创建跟踪，则可以使 CloudTrail 事件持续传送到 Amazon S3 存储桶（包括 ARC 的事件）。如果您不配置跟踪，则仍可在 CloudTrail 控制台中的**事件历史记录**中查看最新事件。

使用 CloudTrail 收集的信息，您可以确定向 ARC 发出了什么请求、发出请求的 IP 地址、请求方、请求时间以及其他详细信息。

要了解有关 CloudTrail 的更多信息，请参阅《AWS CloudTrail 用户指南》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。

## CloudTrail 中的 ARC 信息
<a name="service-name-info-in-cloudtrail"></a>

在您创建 AWS 账户时，将在该账户上启用 CloudTrail。当 ARC 中发生活动时，该活动将记录在 CloudTrail 事件中，并与其他 AWS 服务事件一同保存在**事件历史记录**中。您可以在 AWS 账户 中查看、搜索和下载最新事件。有关更多信息，请参阅 [Working with CloudTrail Event history](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

对于 AWS 账户中的事件的持续记录（包括 ARC 的事件），请创建跟踪记录。通过*跟踪记录*，CloudTrail 可将日志文件传送至 Amazon S3 存储桶。预设情况下，在控制台中创建跟踪记录时，此跟踪记录应用于所有AWS 区域。此跟踪记录在 AWS 分区中记录所有区域中的事件，并将日志文件传送至您指定的 Amazon S3 存储桶。此外，您可以配置其他 AWS 服务，进一步分析在 CloudTrail 日志中收集的事件数据并采取行动。有关更多信息，请参阅下列内容：
+ [创建跟踪记录概述](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支持的服务和集成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ [Configuring Amazon SNS notifications for CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [从多个区域接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)和[从多个账户接收 CloudTrail 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

所有 ARC 操作由 CloudTrail 记录，[Amazon 应用程序恢复控制器的恢复就绪 API 参考指南](https://docs.aws.amazon.com/recovery-readiness/latest/api/)、[Amazon 应用程序恢复控制器的恢复控制配置 API 参考指南](https://docs.aws.amazon.com/recovery-cluster/latest/api/)和 [Amazon 应用程序恢复控制器的路由控制 API 参考指南](https://docs.aws.amazon.com/routing-control/latest/APIReference/)中有详细说明。例如，对 `CreateCluster`、`UpdateRoutingControlState` 和 `CreateRecoveryGroup` 操作的调用会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息可帮助您确定以下内容：
+ 请求是使用根用户凭证还是 AWS Identity and Access Management（IAM）用户凭证发出的。
+ 请求是使用角色还是联合用户的临时安全凭证发出的。
+ 请求是否由其他 AWS 服务发出。

有关更多信息，请参阅 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## 在事件历史记录中查看 ARC 事件
<a name="amazon-arc-events-in-cloudtrail-event-history"></a>

CloudTrail 可让您在 **Event history**（事件历史记录）中查看最新事件。要查看 ARC API 请求事件，您必须在控制台顶部的“区域”选择器中选择**美国西部（俄勒冈州）**。有关更多信息，请参见《AWS CloudTrail 用户指南》的 [使用 CloudTrail 事件历史记录](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)**。

## 了解 ARC 日志文件条目
<a name="understanding-service-name-entries"></a>

跟踪是一种配置，可用于将事件作为日志文件传送到您指定的 Amazon S3 存储桶。CloudTrail 日志文件包含一个或多个日记账条目。一个事件表示来自任何源的一个请求，包括有关所请求的操作、操作的日期和时间、请求参数等方面的信息。CloudTrail 日志文件不是公用 API 调用的有序堆栈跟踪，因此它们不会按任何特定顺序显示。

下面的示例显示了一个 CloudTrail 日志条目，该条目说明了用于配置路由控制的 `CreateCluster` 操作。

```
{
  "eventVersion": "1.08",
   "userIdentity": {
     "type": "IAMUser",
     "principalId": "A1B2C3D4E5F6G7EXAMPLE",
     "arn": "arn:aws:iam::111122223333:user/smithj",
     "accountId": "111122223333",
     "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
     "sessionContext": {
          "sessionIssuer": {
              "type": "Role",
              "principalId": "A1B2C3D4E5F6G7EXAMPLE",
              "arn": "arn:aws:iam::111122223333:role/smithj",
              "accountId": "111122223333",
              "userName": "smithj"
          },
          "webIdFederationData": {},
          "attributes": {
              "mfaAuthenticated": "false",
              "creationDate": "2021-06-30T04:44:41Z"
          }
      }
  },
  "eventTime": "2021-06-30T04:45:46Z",
  "eventSource": "route53-recovery-control-config.amazonaws.com",
  "eventName": "CreateCluster",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "192.0.2.50",
  "userAgent": "aws-cli/2.0.0 Python/3.8.2 Darwin/19.6.0 botocore/2.0.0dev7",
  "requestParameters": {
      "ClientToken": "12345abcdef-1234-5678-abcd-12345abcdef",
      "ClusterName": "XYZCluster"
  },
  "responseElements": {
      "Cluster": {
          "Arn": "arn:aws:route53-recovery-control::012345678901:cluster/abc123456-aa11-bb22-cc33-abc123456",
          "ClusterArn": "arn:aws:route53-recovery-control::012345678901:cluster/abc123456-aa11-bb22-cc33-abc123456",
          "Name": "XYZCluster",
          "Status": "PENDING"
      }
  },
  "requestID": "6090509a-5a97-4be6-8e6a-7d73example",
  "eventID": "9cab44ef-0777-41e6-838f-f249example",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "eventCategory": "Management",
  "recipientAccountId": "111122223333"
}
```

下面的示例显示了一个 CloudTrail 日志条目，该条目说明了路由配置的 `UpdateRoutingControlState` 操作。

```
{
  "eventVersion": "1.08",
   "userIdentity": {
     "type": "AssumedRole",
     "principalId": "A1B2C3D4E5F6G7EXAMPLE",
     "arn": "arn:aws:sts::111122223333:assumed-role/admin/smithj",
     "accountId": "111122223333",
     "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
     "sessionContext": {
          "sessionIssuer": {
              "type": "Role",
              "principalId": "A1B2C3D4E5F6G7EXAMPLE",
              "arn": "arn:aws:iam::111122223333:role/admin",
              "accountId": "111122223333",
              "userName": "admin"
          },
          "webIdFederationData": {},
          "attributes": {
              "mfaAuthenticated": "false",
              "creationDate": "2021-06-30T04:44:41Z"
          }
      }
  },
  "eventTime": "2021-06-30T04:45:46Z",
  "eventSource": "route53-recovery-control-config.amazonaws.com",
  "eventName": "UpdateRoutingControl",
  "awsRegion": "us-west-2",
  "sourceIPAddress": "192.0.2.50",
  "userAgent": "aws-cli/2.0.0 Python/3.8.2 Darwin/19.6.0 botocore/2.0.0dev7",
  "requestParameters": {
      "RoutingControlName": "XYZRoutingControl3",
      "RoutingControlArn": "arn:aws:route53-recovery-control::012345678:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567"
  },
  "responseElements": {
      "RoutingControl": {
          "ControlPanelArn": "arn:aws:route53-recovery-control::012345678:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
          "Name": "XYZRoutingControl3",
          "Status": "DEPLOYED",
          "RoutingControlArn": "arn:aws:route53-recovery-control::012345678:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567"
      }
  },
  "requestID": "6090509a-5a97-4be6-8e6a-7d73example",
  "eventID": "9cab44ef-0777-41e6-838f-f249example",
  "readOnly": false,
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "eventCategory": "Management",
  "recipientAccountId": "111122223333"
}
```

# 路由控制的身份管理和访问控制
<a name="security-iam-routing"></a>

AWS Identity and Access Management (IAM) AWS 服务 可帮助管理员安全地控制对 AWS 资源的访问权限。IAM 管理员控制可以通过“身份验证”**（登录）和“授权”**（具有权限）使用 ARC 资源的人员。您可以使用 IAM AWS 服务 ，无需支付额外费用。

**Topics**
+ [路由控制如何与 IAM 结合使用](security_iam_service-with-iam-routing.md)
+ [基于身份的策略示例](security_iam_id-based-policy-examples-routing.md)
+ [AWS 托管策略](security-iam-awsmanpol-routing.md)

# Amazon 应用程序恢复控制器（ARC）中的路由控制如何与 IAM 结合使用
<a name="security_iam_service-with-iam-routing"></a>

在使用 IAM 管理对 Amazon 应用程序恢复控制器（ARC）中路由控制的访问之前，您应该了解哪些 IAM 功能可用于路由转移。


**可与 Amazon 应用程序恢复控制器（ARC）中的路由控制结合使用的 IAM 功能**  

| IAM 功能 | 路由控制支持 | 
| --- | --- | 
|  [基于身份的策略](#security_iam_service-with-iam-routing-id-based-policies)  |   是  | 
|  [基于资源的策略](#security_iam_service-with-iam-routing-resource-based-policies)  |   否   | 
|  [策略操作](#security_iam_service-with-iam-routing-id-based-policies-actions)  |   是  | 
|  [策略资源](#security_iam_service-with-iam-routing-id-based-policies-resources)  |   是  | 
|  [策略条件键](#security_iam_service-with-iam-routing-id-based-policies-conditionkeys)  |   是  | 
|  [ACLs](#security_iam_service-with-iam-routing-acls)  |   否   | 
|  [ABAC（策略中的标签）](#security_iam_service-with-iam-routing-tags)  |   部分  | 
|  [临时凭证](#security_iam_service-with-iam-routing-roles-tempcreds)  |   是  | 
|  [主体权限](#security_iam_service-with-iam-routing-principal-permissions)  |   是  | 
|  [服务角色](#security_iam_service-with-iam-routing-roles-service)  |   否   | 
|  [服务关联角色](#security_iam_service-with-iam-routing-roles-service-linked)  |   否   | 

要全面了解 AWS 服务如何与大多数 IAM 功能配合使用，请参阅 IAM *用户指南中的与 IAM* [配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## 适用于 ARC 的基于身份的策略
<a name="security_iam_service-with-iam-routing-id-based-policies"></a>

**支持基于身份的策略：**是

基于身份的策略是可附加到身份（如 IAM 用户、用户组或角色）的 JSON 权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[使用客户管理型策略定义自定义 IAM 权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。要了解可在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素引用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

要查看适用于路由控制的 ARC 基于身份的策略的示例，请参阅 [ARC 中路由控制的基于身份的策略示例](security_iam_id-based-policy-examples-routing.md)。

## 路由控制中基于资源的策略
<a name="security_iam_service-with-iam-routing-resource-based-policies"></a>

**支持基于资源的策略：**否 

基于资源的策略是附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM 角色信任策略和 Amazon S3 存储桶策略。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。

## 适用于路由控制的策略操作
<a name="security_iam_service-with-iam-routing-id-based-policies-actions"></a>

**支持策略操作：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。在策略中包含操作以授予执行关联操作的权限。

要查看路由控制的 ARC 操作列表，请参阅《服务授权参考》**中的 [Amazon Route 53 恢复控制定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycontrols-actions-as-permissions)和 [Amazon Route 53 恢复集群定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycluster-actions-as-permissions)。

ARC 中路由控制的策略操作在操作前使用以下前缀，具体取决于所使用的 API：

```
route53-recovery-control-config
route53-recovery-cluster
```

要在单个语句中指定多项操作，请使用逗号将它们隔开。例如，可以：

```
"Action": [
      "route53-recovery-control-config:action1",
      "route53-recovery-control-config:action2"
         ]
```

您也可以使用通配符（\$1）指定多个操作。例如，要指定以单词 `Describe` 开头的所有操作，包括以下操作：

```
"Action": "route53-recovery-control-config:Describe*"
```

要查看适用于路由控制的 ARC 基于身份的策略的示例，请参阅 [ARC 中路由控制的基于身份的策略示例](security_iam_id-based-policy-examples-routing.md)。

## ARC 的策略资源
<a name="security_iam_service-with-iam-routing-id-based-policies-resources"></a>

**支持策略资源：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)指定资源。对于不支持资源级权限的操作，请使用通配符 (\$1) 指示语句应用于所有资源。

```
"Resource": "*"
```

在《服务授权参考》**中，您可以看到以下与 ARC 相关的信息：

要查看资源类型及其列表 ARNs，以及您可以使用每种资源的 ARN 指定的操作，请参阅《*服务授权*参考》中的以下主题：
+ [Amazon Route 53 恢复控制定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycontrols-actions-as-permissions)
+ [Amazon Route 53 恢复集群定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycluster-actions-as-permissions)

要查看适用于路由控制的 ARC 基于身份的策略的示例，请参阅 [ARC 中路由控制的基于身份的策略示例](security_iam_id-based-policy-examples-routing.md)。

## ARC 的策略条件键
<a name="security_iam_service-with-iam-routing-id-based-policies-conditionkeys"></a>

**支持特定于服务的策略条件键：**是

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Condition` 元素根据定义的条件指定语句何时执行。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

要查看 ARC 路由控制条件键的列表，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Route 53 恢复控制的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycontrols-policy-keys)
+ [Amazon Route 53 恢复集群的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycluster-policy-keys)

要查看可与条件键配合使用的操作和资源，请参阅《服务授权参考》**中的以下主题：
+ 要查看资源类型及其列表 ARNs，请参阅 Amazon [Route 53 恢复控制定义的操作和 Amaz](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycontrols-actions-as-permissions) [on Route 53 恢复集群定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycluster-actions-as-permissions)。
+ 要查看您可以使用每个资源的 ARN 指定的操作的列表，请参阅 [Amazon Route 53 恢复控制定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycontrols-resources-for-iam-policies)和 [Amazon Route 53 恢复集群定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html#amazonroute53recoverycluster-resources-for-iam-policies)。

要查看适用于路由控制的 ARC 基于身份的策略的示例，请参阅 [ARC 中路由控制的基于身份的策略示例](security_iam_id-based-policy-examples-routing.md)。

## ARC 中的访问控制列表 (ACLs)
<a name="security_iam_service-with-iam-routing-acls"></a>

**支持 ACLs：**否 

访问控制列表 (ACLs) 控制哪些委托人（账户成员、用户或角色）有权访问资源。 ACLs 与基于资源的策略类似，尽管它们不使用 JSON 策略文档格式。

## 用于 ARC 的基于属性的访问权限控制（ABAC）
<a name="security_iam_service-with-iam-routing-tags"></a>

**支持 ABAC（策略中的标签）：**部分支持

基于属性的访问权限控制（ABAC）是一种授权策略，该策略基于称为标签的属性来定义权限。您可以将标签附加到 IAM 实体和 AWS 资源，然后设计 ABAC 策略以允许在委托人的标签与资源上的标签匹配时进行操作。

要基于标签控制访问，您需要使用 `aws:ResourceTag/key-name``aws:RequestTag/key-name` 或 `aws:TagKeys` 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。

如果某个服务对于每种资源类型都支持所有这三个条件键，则对于该服务，该值为**是**。如果某个服务仅对于部分资源类型支持所有这三个条件键，则该值为**部分**。

有关 ABAC 的更多信息，请参阅《IAM 用户指南》**中的[使用 ABAC 授权定义权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。要查看设置 ABAC 步骤的教程，请参阅《IAM 用户指南》**中的[使用基于属性的访问权限控制（ABAC）](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)。

ARC 路由控制包括对 ABAC 的以下支持：
+ 恢复控制配置支持 ABAC。
+ 恢复集群不支持 ABAC。

## 对 ARC 使用临时凭证
<a name="security_iam_service-with-iam-routing-roles-tempcreds"></a>

**支持临时凭证：**是

临时证书提供对 AWS 资源的短期访问权限，并且是在您使用联合身份或切换角色时自动创建的。 AWS 建议您动态生成临时证书，而不是使用长期访问密钥。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的临时安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)和[使用 IAM 的。AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)

## ARC 的跨服务主体权限
<a name="security_iam_service-with-iam-routing-principal-permissions"></a>

**支持转发访问会话（FAS）：**是

当您使用 IAM 实体（用户或角色）在中执行操作时 AWS，您被视为委托人。策略向主体授予权限。使用某些服务时，您可能会执行一个操作，此操作然后在不同服务中触发另一个操作。在这种情况下，您必须具有执行这两个操作的权限。

要查看某个操作是否需要策略中的其他相关操作，请参阅《服务授权参考》**中的以下主题：
+ [Amazon Route 53 恢复集群](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53recoverycluster.html)
+ [Amazon Route 53 恢复控制](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonroute53recoverycontrols.html)

## ARC 的服务角色
<a name="security_iam_service-with-iam-routing-roles-service"></a>

**支持服务角色：**否 

 服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

## ARC 的服务相关角色
<a name="security_iam_service-with-iam-routing-roles-service-linked"></a>

**支持服务相关角色：**

服务相关角色是一种与服务关联的 AWS 服务角色。服务可以代入代表您执行操作的角色。服务相关角色显示在您的 AWS 账户中，并归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。

路由控制不使用服务相关角色。

# ARC 中路由控制的基于身份的策略示例
<a name="security_iam_id-based-policy-examples-routing"></a>

默认情况下，用户和角色没有创建或修改 ARC 资源的权限。要授予用户对所需资源执行操作的权限，IAM 管理员可以创建 IAM 策略。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

有关 ARC 定义的操作和资源类型（包括每种资源类型的格式）的详细信息，请参阅《 ARNs *服务授权参考*》中的 [Amazon Application Recovery Controller (ARC) 的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html)。

**Topics**
+ [策略最佳实践](#security_iam_service-with-iam-policy-best-practices-zonal)
+ [示例：用于路由控制的 ARC 控制台访问权限](#security_iam_id-based-policy-examples-console-routing)
+ [示例：用于路由控制配置的 ARC API 操作](#security_iam_id-based-policy-examples-api-routing)

## 策略最佳实践
<a name="security_iam_service-with-iam-policy-best-practices-zonal"></a>

基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 ARC 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：
+ **开始使用 AWS 托管策略并转向最低权限权限** — 要开始向用户和工作负载授予权限，请使用为许多常见用例授予权限的*AWS 托管策略*。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[工作职能的AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果服务操作是通过特定的方式使用的，则也可以使用条件来授予对服务操作的访问权限 AWS 服务，例如 CloudFormation。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM Access Analyzer 验证策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重身份验证 (MFA**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 MFA 以提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[使用 MFA 保护 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 示例：用于路由控制的 ARC 控制台访问权限
<a name="security_iam_id-based-policy-examples-console-routing"></a>

要访问 Amazon 应用程序恢复控制器（ARC）控制台，您必须具有一组最低的权限。这些权限必须允许您列出和查看有关您的 ARC 资源的详细信息 AWS 账户。如果创建比必需的最低权限更为严格的基于身份的策略，对于附加了该策略的实体（用户或角色），控制台将无法按预期正常运行。

对于仅调用 AWS CLI 或 AWS API 的用户，您无需为其设置最低控制台权限。相反，只允许访问与其尝试执行的 API 操作相匹配的操作。

为确保在您仅允许访问特定 API 操作时用户和角色仍然可以使用 ARC 控制台，还要为实体附加 ARC `ReadOnly` AWS 托管策略。有关更多信息，请参阅 ARC [ARC 托管式策略页面](security-iam-awsmanpol.md)或《IAM 用户指南》**中的[为用户添加权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

要通过控制台为用户提供使用 ARC 功能的完全访问权限，请为用户附加如下策略，以授予用户配置 ARC 资源和操作的完全权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [		
                   "route53-recovery-cluster:GetRoutingControlState",
                   "route53-recovery-cluster:UpdateRoutingControlState",
                   "route53-recovery-cluster:UpdateRoutingControlStates",
                   "route53-recovery-control-config:CreateCluster",
                   "route53-recovery-control-config:CreateControlPanel",
                   "route53-recovery-control-config:CreateRoutingControl",
                   "route53-recovery-control-config:CreateSafetyRule",
                   "route53-recovery-control-config:DeleteCluster",
                   "route53-recovery-control-config:DeleteControlPanel",
                   "route53-recovery-control-config:DeleteRoutingControl",
                   "route53-recovery-control-config:DeleteSafetyRule",
                   "route53-recovery-control-config:DescribeCluster",
                   "route53-recovery-control-config:DescribeControlPanel",
                   "route53-recovery-control-config:DescribeSafetyRule",
                   "route53-recovery-control-config:DescribeRoutingControl",
                   "route53-recovery-control-config:ListAssociatedRoute53HealthChecks",
                   "route53-recovery-control-config:ListClusters",
                   "route53-recovery-control-config:ListControlPanels",
                   "route53-recovery-control-config:ListRoutingControls",
                   "route53-recovery-control-config:ListSafetyRules",
                   "route53-recovery-control-config:UpdateControlPanel",
                   "route53-recovery-control-config:UpdateRoutingControl",
                   "route53-recovery-control-config:UpdateSafetyRule"
             ],
            "Resource": "*"
        },
                {
            "Effect": "Allow",
            "Action": [
                   "route53:GetHealthCheck",
                   "route53:CreateHealthCheck",
                   "route53:DeleteHealthCheck",
                   "route53:ChangeTagsForResource"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 示例：用于路由控制配置的 ARC API 操作
<a name="security_iam_id-based-policy-examples-api-routing"></a>

为确保用户可以使用 ARC API 操作来进行 ARC 路由控制配置，请附加与用户需要使用的 API 操作相对应的策略，如下所述。

要使用 API 操作进行恢复控制配置，请为用户附加如下策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [		
                   "route53-recovery-control-config:CreateCluster",
                   "route53-recovery-control-config:CreateControlPanel",
                   "route53-recovery-control-config:CreateRoutingControl",
                   "route53-recovery-control-config:CreateSafetyRule",
                   "route53-recovery-control-config:DeleteCluster",
                   "route53-recovery-control-config:DeleteControlPanel",
                   "route53-recovery-control-config:DeleteRoutingControl",
                   "route53-recovery-control-config:DeleteSafetyRule",
                   "route53-recovery-control-config:DescribeCluster",
                   "route53-recovery-control-config:DescribeControlPanel",
                   "route53-recovery-control-config:DescribeSafetyRule",
                   "route53-recovery-control-config:DescribeRoutingControl",
                   "route53-recovery-control-config:GetResourcePolicy",
                   "route53-recovery-control-config:ListAssociatedRoute53HealthChecks",
                   "route53-recovery-control-config:ListClusters",
                   "route53-recovery-control-config:ListControlPanels",
                   "route53-recovery-control-config:ListRoutingControls",
                   "route53-recovery-control-config:ListSafetyRules",
                   "route53-recovery-control-config:ListTagsForResource",
                   "route53-recovery-control-config:UpdateControlPanel",
                   "route53-recovery-control-config:UpdateRoutingControl",
                   "route53-recovery-control-config:UpdateSafetyRule",
                   "route53-recovery-control-config:TagResource",
                   "route53-recovery-control-config:UntagResource"
            ],
            "Resource": "*"
        }
    ]
}
```

------

要在 ARC 路由控制中使用恢复集群数据面板 API 执行任务，例如更新路由控制状态以在灾难事件期间进行失效转移，您可以将如下所示的 ARC IAM 策略附加到 IAM 用户。

`AllowSafetyRuleOverride` 布尔值提供权限来覆盖您为保障路由控制安全而配置的安全规则。在“打碎玻璃”的情况下，可能需要此权限才能在灾难或其他紧急失效转移情况下绕过这些安全措施。例如，操作员可能需要快速失效转移以进行灾难恢复，而一个或多个安全规则可能会意外阻止流量重新路由所需的路由控制状态更新操作。此权限允许操作员在调用 API 更新路由控制状态时指定要覆盖的安全规则。有关更多信息，请参阅 [覆盖安全规则以重新路由流量](routing-control.override-safety-rule.md)。

如果您想允许操作员使用恢复集群数据面板 API，但**阻止覆盖安全规则，则可以附加如下所示的策略，并将 `AllowSafetyRuleOverrides` 布尔值设置为 `false`。要允许操作员覆盖安全规则，请将 `AllowSafetyRuleOverrides` 布尔值设置为 `true`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53-recovery-cluster:GetRoutingControlState",
                "route53-recovery-cluster:ListRoutingControls"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "route53-recovery-cluster:UpdateRoutingControlStates",
                "route53-recovery-cluster:UpdateRoutingControlState"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "route53-recovery-cluster:AllowSafetyRulesOverrides": "false"
                }
            }
        }
    ]
}
```

------

# AWS Amazon 应用程序恢复控制器 (ARC) 中用于路由控制的托管策略
<a name="security-iam-awsmanpol-routing"></a>

 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 托管策略： AmazonRoute53 RecoveryControlConfigFullAccess
<a name="security-iam-awsmanpol-AmazonRoute53RecoveryControlConfigFullAccess"></a>

您可以将 `AmazonRoute53RecoveryControlConfigFullAccess` 附加到 IAM 实体。此策略授予对 ARC 中恢复控制配置操作的完全访问权限。将此策略附加到需要恢复控制配置操作的完全访问权限的 IAM 用户和其他主体。

您可以自行决定添加对其他 Amazon Route 53 操作的访问权限，以使用户能够为路由控制创建运行状况检查。例如，您可以提供对以下一项或多项操作的访问权限：`route53:GetHealthCheck`、`route53:CreateHealthCheck`、`route53:DeleteHealthCheck` 和 `route53:ChangeTagsForResource`。

要查看此策略的权限，请参阅《*AWS 托管策略参考*》RecoveryControlConfigFullAccess中的 [AmazonRoute53](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRoute53RecoveryControlConfigFullAccess.html)。

## AWS 托管策略： AmazonRoute53 RecoveryControlConfigReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonRoute53RecoveryControlConfigReadOnlyAccess"></a>

您可以将 `AmazonRoute53RecoveryControlConfigReadOnlyAccess` 附加到 IAM 实体。它适用于需要查看路由控制和安全规则配置的用户。此策略授予对 ARC 中恢复控制配置操作的只读访问权限。这些用户无法创建、更新或删除恢复控制资源。

要查看此策略的权限，请参阅《*AWS 托管策略参考*》RecoveryControlConfigReadOnlyAccess中的 [AmazonRoute53](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRoute53RecoveryControlConfigReadOnlyAccess.html)。

## AWS 托管策略： AmazonRoute53 RecoveryClusterFullAccess
<a name="security-iam-awsmanpol-AmazonRoute53RecoveryClusterFullAccess"></a>

您可以将 `AmazonRoute53RecoveryClusterFullAccess` 附加到 IAM 实体。此策略授予对 ARC 中集群数据面板操作的完全访问权限。将此策略附加到需要更新和检索路由控制状态的完全访问权限的 IAM 用户和其他主体。

要查看此策略的权限，请参阅《*AWS 托管策略参考*》RecoveryClusterFullAccess中的 [AmazonRoute53](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRoute53RecoveryClusterFullAccess.html)。

## AWS 托管策略： AmazonRoute53 RecoveryClusterReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonRoute53RecoveryClusterReadOnlyAccess"></a>

您可以将 `AmazonRoute53RecoveryClusterReadOnlyAccess` 附加到 IAM 实体。此策略授予对 ARC 中集群数据面板的只读访问权限。这些用户可以检索路由控制状态，但无法更新这些状态。

要查看此策略的权限，请参阅《*AWS 托管策略参考*》RecoveryClusterReadOnlyAccess中的 [AmazonRoute53](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRoute53RecoveryClusterReadOnlyAccess.html)。

## AWS 托管策略： AmazonApplicationRecoveryControllerRegionSwitchPlanExecutionPolicy
<a name="security-iam-awsmanpol-AmazonApplicationRecoveryControllerRegionSwitchPlanExecutionPolicy"></a>

您可以将 `AmazonApplicationRecoveryControllerRegionSwitchPlanExecutionPolicy` 附加到 IAM 实体。此策略授予执行和评估 ARC 区域切换计划的权限。将其附加到用于执行区域切换计划的 IAM 角色。

**权限详细信息**

该策略包含以下权限：
+ `arc-region-switch:GetPlan` – 允许主体检索区域切换计划的配置详细信息。
+ `arc-region-switch:GetPlanExecution` – 允许主体检索有关特定区域交换计划执行的信息。
+ `arc-region-switch:ListPlanExecutions` – 允许主体列出所有执行的可用区切换计划。
+ `iam:SimulatePrincipalPolicy` – 允许主体模拟和评估 IAM 角色可以执行的操作。此权限仅限于 IAM 角色，在评估计划期间用于在执行区域切换计划之前验证必要的权限是否就绪。
+ `cloudwatch:DescribeAlarms`— 允许委托人检索有关 Amazon CloudWatch 警报的信息。
+ `cloudwatch:DescribeAlarmHistory`— 允许委托人检索 Amazon CloudWatch 警报的历史状态变化。
+ `cloudwatch:GetMetricStatistics`— 允许委托人检索 Amazon CloudWatch 指标的统计数据。

要查看有关策略（包括 JSON 策略文档的最新版本）的更多信息，请参阅《AWS 托管式策略参考指南》**中的 [AmazonApplicationRecoveryControllerRegionSwitchPlanExecutionPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonApplicationRecoveryControllerRegionSwitchPlanExecutionPolicy.html)。

## 路由控制 AWS 托管策略的更新
<a name="security-iam-awsmanpol-routing-updates"></a>

有关自该服务开始跟踪这些更改以来，ARC 中路由控制 AWS 托管策略更新的详细信息，请参阅[Amazon 应用程序恢复控制器 (ARC) AWS 托管策略的更新](security-iam-awsmanpol.md#security-iam-awsmanpol-arc-updates)。有关此页面更改的自动提示，请订阅 ARC [文档历史记录页面](doc-history.md)上的 RSS 信息源。

# 路由控制的配额
<a name="routing-control.quotas"></a>

Amazon 应用程序恢复控制器（ARC）中的路由控制受制于以下配额（以前称为限制）。


| 实体 | 配额 | 
| --- | --- | 
|  每个账户的集群数  |  2  | 
|  每个集群的控制面板数  |  50  | 
|  每个控制面板的路由控制数  | 100 | 
|  每个集群的路由控制总数（在所有控制面板中）  | 300 | 
|  每个控制面板的安全规则数  |  20  | 
|  每次工[UpdateRoutingControlStates](https://docs.aws.amazon.com/routing-control/latest/APIReference/API_UpdateRoutingControlStates.html)序调用的路由控制数量  |  10  | 
|  每秒对集群端点的可变 API 调用次数  |  3  | 