适用于 AWS FIS 实验的 IAM 角色 - AWS 故障注入服务

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

适用于 AWS FIS 实验的 IAM 角色

AWS Identity and Access Management (IAM) 是一种 AWS 服务,可以帮助管理员安全地控制对 AWS 资源的访问。要使用 AWS FIS,则必须创建为 AWS FIS 授予所需权限的 IAM 角色,以便 AWS FIS 能够以您的身份开展实验。您可以在创建实验模板时指定此实验角色。对于单账户实验,适用于实验角色的 IAM 策略必须授予权限,以便修改实验模板中指定为目标的资源。对于多账户实验,实验角色必须向 Orchestrator 角色授予为每个目标账户代入 IAM 角色的权限。有关更多信息,请参见 多账户实验的权限

亚马逊建议您遵守授予最低权限的标准安全实践。您可以在策略中指定特定资源 ARN 或标签,以实现此目的。

为帮助您快速入门 AWS FIS,亚马逊提供 AWS 托管策略,您可以在创建实验角色时指定这些策略。或者,您也可以在创建专属内联策略文档时使用这些策略作为模型。

先决条件

请先安装 AWS CLI 并创建必要信任策略,然后再开始操作。

安装 AWS CLI

在开始之前,请安装并配置 AWS CLI。配置 AWS CLI 时,系统会提示您输入 AWS 凭证。本过程中的示例假定您已配置好默认区域。否则,请为每个命令添加 --region 选项。有关更多信息,请参阅安装或更新 AWS CLI配置 AWS CLI

创建信任关系策略

实验角色必须建立允许 AWS FIS 服务代入角色的信任关系。创建 fis-role-trust-policy.json 文本文件并添加以下信任关系策略。

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

建议您使用 aws:SourceAccountaws:SourceArn 条件键来防止出现混淆代理人问题。源帐户是实验所有者,而源 ARN 是实验 ARN。例如,您应将以下条件块添加到信任策略。

"Condition": { "StringEquals": { "aws:SourceAccount": "account_id" }, "ArnLike": { "aws:SourceArn": "arn:aws:fis:region:account_id:experiment/*" } }
添加代入目标账户角色的权限(仅限多账户实验)

对于多账户实验,您需要拥有允许 Orchestrator 账户代入目标账户角色的权限。您可以修改以下示例,并将其添加为内联策略文档以代入目标账户角色:

{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource":[ "arn:aws:iam::target_account_id:role/role_name" ] }

选项 1:创建实验角色并附加 AWS 托管策略

使用 AWS FIS 的其中一项 AWS 托管策略快速入门。

创建实验角色并附加 AWS 托管策略
  1. 验证实验中是否使用 AWS FIS 操作托管策略。否则,您需要改为创建专有的内联策略。有关更多信息,请参见 AWS 的托管策略 AWS 故障注入服务

  2. 运行以下 create-role 命令,创建角色并添加先决条件中创建的信任策略。

    aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
  3. 使用以下attach-role-policy命令附加托AWS管策略。

    aws iam attach-role-policy --role-name my-fis-role --policy-arn fis-policy-arn

    以下fis-policy-arn内容之一在哪里:

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEC2Access

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorECSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorEKSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorNetworkAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorRDSAccess

    • arn:aws:iam::aws:policy/service-role/AWSFaultInjectionSimulatorSSMAccess

选项 2:创建实验角色并添加内联策略文档

此选项适用于未创建托管策略的操作,或仅包含特定实验所需的权限。

创建实验并添加内联策略文档
  1. 运行以下 create-role 命令,创建角色并添加先决条件中创建的信任策略。

    aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
  2. 创建 fis-role-permissions-policy.json 文本文件并添加权限策略。有关可用作起始点的策略的示例,请参阅以下内容。

  3. 使用以下put-role-policy命令添加您在上一步中创建的权限策略。

    aws iam put-role-policy --role-name my-fis-role --policy-name my-fis-policy --policy-document file://fis-role-permissions-policy.json