適用於 AWS FIS 實驗的 IAM 角色 - AWS 故障注入服務

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於 AWS FIS 實驗的 IAM 角色

AWS Identity and Access Management (IAM) 是一種 AWS 服務,讓管理員能夠安全地控制對 AWS 資源的存取權限。若要使用 AWS FIS,您必須建立 IAM 角色,以授予 AWS FIS 所需權限,以便 AWS FIS 可以代表您執行實驗。您可以在建立實驗範本時指定此實驗角色。對於單一帳戶實驗,實驗角色的 IAM 政策必須授予權限,才能修改您在實驗範本中指定為目標的資源。對於多帳戶實驗,實驗角色必須授予協調器角色權限,才能為每個目標帳戶擔任 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 動作的受管政策。否則,您將需要創建自己的內嵌政策文檔。如需詳細資訊,請參閱 AWSAWS Fault Injection Service 的 受管政策

  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