多账户实验的先决条件 - AWS 故障注入服务

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

多账户实验的先决条件

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

多账户实验的权限

多账户实验使用IAM角色链来授予对目标账户中的资源执行操作的权限。 AWS FIS 对于多账户实验,您可以在每个目标账户和 Orchestrator 账户中设置IAM角色。这些IAM角色需要目标账户和协调员账户之间以及协调员账户和之间的信任关系。 AWS FIS

目标账户的IAM角色包含对资源采取操作所需的权限,这些角色是通过添加目标账户配置为实验模板创建的。您将为 Orchestrator 账户创建一个IAM角色,该角色有权扮演目标账户的角色并与之建立信任关系。 AWS FIS此IAM角色用作实验模板roleArn的。

要了解有关角色链接的更多信息,请参阅角色术语和概念。 in IAM 的用户指南

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

  1. 在账户 B 中,创建一个具有运行操作所需权限的IAM角色。有关每项操作所需的权限,请参阅 AWS FIS 操作参考。以下示例显示了目标账户授予的运行 Pa EBS use Volume IO 操作的权限aws:ebs:pause-volume-io

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:PauseVolumeIO" ], "Resource": "arn:aws:ec2:region:accountIdB:volume/*" }, { "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" } ] }
  2. 接下来,在账户 B 中添加与账户 A 建立信任关系的信任策略。为账户 A 的IAM角色选择一个名称,您将在步骤 3 中创建该名称。

    { "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::accountIdA:role/role_name" } } } ] }
  3. 在账户 A 中,创建一个IAM角色。该角色名称必须与您在步骤 2 的信任策略中指定的角色相匹配。要将多个账户确定为目标,您可以向 Orchestrator 授予权限以代入每个角色。以下示例显示账户 A 代入账户 B 的权限。如果您还有其他目标账户,则需要ARNs向该策略添加其他角色。ARN每个目标账户只能有一个角色。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::accountIdB:role/role_name" ] } ] }
  4. 账户 A 的此IAM角色用作实验模板roleArn的角色。以下示例显示了该IAM角色所需的信任策略,该策略授予代入账户 A(协调器账户)的 AWS FIS 权限。

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

您也可以使用 Stacksets 同时配置多个IAM角色。要使用 CloudFormation StackSets,您需要在 AWS 账户中设置必要的 StackSet 权限。要了解更多信息,请参阅使用AWS CloudFormation StackSets

多账户实验的停止条件(可选)

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

要了解有关跨账户控制面板的更多信息,请参阅中的启用跨账户功能。 CloudWatch

多账户实验的安全杆(可选)

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