

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

# 多账户实验的先决条件
<a name="multi-account-prerequisites"></a>

要在多账户实验中使用停止条件，必须先配置跨账户警报。IAM 角色是在创建多账户实验模板时定义的。您可以在创建该模板之前创建必要的 IAM 角色。

**Topics**
+ [多账户实验的权限](#permissions)
+ [多账户实验的停止条件（可选）](#alarms-and-monitoring)
+ [多账户实验的安全杆（可选）](#safety-levers-for-multi-accounts)

## 多账户实验的权限
<a name="permissions"></a>

多账户实验使用 IAM *角色链接* 向 AWS FIS 授予权限，以便对目标账户中的资源执行操作。对于多账户实验，您可以在每个目标账户和 Orchestrator 账户中设置 IAM 角色。这些 IAM 角色要求在目标账户与 Orchestrator 账户之间以及 Orchestrator 账户与 AWS FIS之间建立信任关系。

目标账户的 IAM 角色包含对资源执行操作所需的权限，这些角色是通过添加目标账户配置为实验模板创建的。您可以为 Orchestrator 账户创建一个 IAM 角色，该角色可以代入目标账户的角色，并与 AWS FIS建立信任关系。该 IAM 角色用作实验模板的 `roleArn`。

要了解有关角色链接的更多信息，请参阅《IAM 用户指南》中的[角色术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。

在以下示例中，您将为 Orchestrator 账户 A 设置权限，以便在目标账户 B 中使用 `aws:ebs:pause-volume-io` 运行实验。

1. 在账户 B 中，使用运行该操作所需的权限创建一个 IAM 角色。有关每项操作所需的权限，请参阅 [AWS FIS 操作参考](fis-actions-reference.md)。以下示例显示了目标账户为运行 EBS 暂停卷 IO 操作 [aws:ebs:pause-volume-io](fis-actions-reference.md#pause-volume-io) 授予的权限。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeVolumes"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:PauseVolumeIO"
               ],
               "Resource": "arn:aws:ec2:us-east-1:123456789012:volume/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 接下来，在账户 B 中添加一个信任策略，以创建与账户 A 的信任关系。为账户 A 的 IAM 角色选择一个名称，您将在步骤 3 中创建它。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "AccountIdA"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringLike": {
                       "sts:ExternalId": "arn:aws:fis:region:accountIdA:experiment/*"
                   },
                   "ArnEquals": {
                       "aws:PrincipalArn": "arn:aws:iam::111122223333:role/role_name"
                   }
               }
           }
       ]
   }
   ```

------

1. 在账户 A 中创建 IAM 角色。该角色名称必须与您在步骤 2 的信任策略中指定的角色相匹配。要将多个账户确定为目标，您可以向 Orchestrator 授予权限以代入每个角色。以下示例显示账户 A 代入账户 B 的权限。如果您还有其他目标账户，则需要 ARNs 向该策略添加其他角色。每个目标账户只能有一个角色 ARN。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "sts:AssumeRole",
               "Resource": [
                   "arn:aws:iam::111122223333:role/role_name"
               ]
           }
       ]
   }
   ```

------

1. 账户 A 的该 IAM 角色用作实验模板的 `roleArn`。以下示例显示了 IAM 角色中所需的信任策略，该策略授予代入账户 A（协调器账户）的 AWS FIS 权限。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "fis.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

您还可以使用 StackSets 同时配置多个 IAM 角色。要使用 CloudFormation StackSets，您需要在 AWS 账户中设置必要的 StackSet 权限。要了解更多信息，请参阅[使用 AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)。

## 多账户实验的停止条件（可选）
<a name="alarms-and-monitoring"></a>

 *停止条件* 是一种在实验达到定义的警报阈值时停止实验的机制。要为多账户实验设置停止条件，可以使用跨账户警报。必须在每个目标账户中启用共享，才能使用只读权限向 Orchestrator 账户提供警报。共享后，您可以使用指标数学合并来自不同目标账户的指标。然后，您就可以将此警报添加为实验的停止条件。

要了解有关跨账户控制面板的更多信息，请参阅中的[启用跨账户功能](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html)。 CloudWatch

## 多账户实验的安全杆（可选）
<a name="safety-levers-for-multi-accounts"></a>

安全杆用于停止所有正在进行的实验，并防止开始新实验。您可能需要在特定时间段内，或者为了响应应用程序运行状况警报而使用安全杆阻止进行 FIS 实验。每个 AWS 账户都有一个安全杠杆 AWS 区域。当激活安全杆时，它会影响与安全杆在同一账户和区域内运行的所有实验。为了停止和阻止多账户实验，必须在运行实验的同一账户和区域内激活安全杆。