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

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

适用于 AWS FIS 实验的 IAM 角色

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

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

为了帮助您快速开始使用 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 操作的托管策略。否则,您需要改为创建专有的内联策略。有关更多信息,请参阅 AWSAWS 故障注入服务的托管策略

  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