本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 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:SourceAccount
和aws: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管政策
-
確認您的實驗中有 AWS FIS 動作的受管政策。否則,您將需要創建自己的內嵌政策文檔。如需詳細資訊,請參閱 AWSAWS Fault Injection Service 的 受管政策。
-
使用下列 create-role 命令建立角色,並新增您在必要條件中建立的信任原則。
aws iam create-role --role-name
my-fis-role
--assume-role-policy-document file://fis-role-trust-policy.json
-
使用下列attach-role-policy命令來附加AWS受管理的策略。
aws iam attach-role-policy --role-name
my-fis-role
--policy-arnfis-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:建立實驗角色並新增內嵌政策文件
對於沒有受管理策略的動作,或僅包含特定實驗所需的權限,請使用此選項。
若要建立實驗並新增內嵌政策文件
-
使用下列 create-role 命令建立角色,並新增您在必要條件中建立的信任原則。
aws iam create-role --role-name
my-fis-role
--assume-role-policy-document file://fis-role-trust-policy.json
-
建立名為的文字檔案,
fis-role-permissions-policy.json
並新增權限原則。有關可用作起點的範例,請參閱以下內容。-
錯誤注入動作 — 從下列原則開始。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFISExperimentRoleFaultInjectionActions", "Effect": "Allow", "Action": [ "fis:InjectApiInternalError", "fis:InjectApiThrottleError", "fis:InjectApiUnavailableError" ], "Resource": "arn:*:fis:*:*:experiment/*" } ] }
-
Amazon EBS 動作 — 從下列政策開始。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:PauseVolumeIO" ], "Resource": "arn:aws:ec2:*:*:volume/*" } ] }
-
Amazon EC2 動作 — 從AWSFaultInjectionSimulatorEC2Access政策開始。
-
Amazon ECS 動作 — 從AWSFaultInjectionSimulatorECSAccess政策開始。
-
Amazon EKS 行動 — 從AWSFaultInjectionSimulatorEKSAccess政策開始。
-
網路動作 — 從AWSFaultInjectionSimulatorNetworkAccess原則開始。
-
Amazon RDS 動作 — 從AWSFaultInjectionSimulatorRDSAccess政策開始。
-
Systems Manager 動作 — 從AWSFaultInjectionSimulatorSSMAccess原則開始。
-
-
使用下列put-role-policy命令來新增您在上一個步驟中建立的權限原則。
aws iam put-role-policy --role-name
my-fis-role
--policy-namemy-fis-policy
--policy-document file://fis-role-permissions-policy.json