

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

# AWS FIS 實驗的 IAM 角色
<a name="getting-started-iam-service-role"></a>

AWS Identity and Access Management (IAM) 是一種 AWS 服務，可協助管理員安全地控制對 AWS 資源的存取。若要使用 AWS FIS，您必須建立授予 AWS FIS 所需許可的 IAM 角色，以便 AWS FIS 可以代表您執行實驗。您可以在建立實驗範本時指定此實驗角色。對於單一帳戶實驗，實驗角色的 IAM 政策必須授予許可，以修改您在實驗範本中指定為目標的資源。對於多帳戶實驗，實驗角色必須授予協調者角色許可，以為每個目標帳戶擔任 IAM 角色。如需詳細資訊，請參閱[多帳戶實驗的許可](multi-account-prerequisites.md#permissions)。

我們建議您遵循授予最低權限的標準安全實務。您可以在政策中指定特定資源 ARNs或標籤來執行此操作。

為了協助您快速開始使用 AWS FIS，我們提供 AWS 受管政策，您可以在建立實驗角色時指定這些政策。或者，您也可以在建立自己的內嵌政策文件時，使用這些政策做為模型。

**Topics**
+ [先決條件](#create-fis-role-prereqs)
+ [選項 1：建立實驗角色並連接 AWS 受管政策](#fis-role-managed-policy)
+ [選項 2：建立實驗角色並新增內嵌政策文件](#fis-role-inline-policy-document)

## 先決條件
<a name="create-fis-role-prereqs"></a>

開始之前，請安裝 AWS CLI 並建立所需的信任政策。

**安裝 AWS CLI**  
開始之前，請先安裝並設定 AWS CLI。當您設定 時 AWS CLI，系統會提示您輸入 AWS 登入資料。本程序中的範例假設您也設定了預設「區域」。否則，請將 `--region` 選項新增至每個命令。如需詳細資訊，請參閱[安裝或更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 和[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。

**建立信任關係政策**  
實驗角色必須具有信任關係，允許 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` 條件索引鍵，保護自己免受[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)的困擾。來源帳戶是實驗的擁有者，而來源 ARN 是實驗的 ARN。例如，您應該將下列條件區塊新增至信任政策。  

```
"Condition": {
    "StringEquals": {
        "aws:SourceAccount": "account_id"
    },
    "ArnLike": {
        "aws:SourceArn": "arn:aws:fis:region:account_id:experiment/*"
    }
}
```

**新增許可以擔任目標帳戶角色 （僅限多帳戶實驗）**  
對於多帳戶實驗，您需要允許協調器帳戶擔任目標帳戶角色的許可。您可以修改下列範例，並將 新增為內嵌政策文件，以擔任目標帳戶角色：  

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

## 選項 1：建立實驗角色並連接 AWS 受管政策
<a name="fis-role-managed-policy"></a>

使用 AWS FIS 的其中一個 AWS 受管政策快速入門。

**建立實驗角色並連接 AWS 受管政策**

1. 確認您的實驗中的 AWS FIS 動作有受管政策。否則，您將需要改為建立自己的內嵌政策文件。如需詳細資訊，請參閱[AWS Fault Injection Service AWS 的 受管政策](security-iam-awsmanpol.md)。

1. 使用下列 [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 命令來建立角色，並新增您在先決條件中建立的信任政策。

   ```
   aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
   ```

1. 使用下列 [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) 命令來連接 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：建立實驗角色並新增內嵌政策文件
<a name="fis-role-inline-policy-document"></a>

針對沒有受管政策的動作使用此選項，或僅包含特定實驗所需的許可。

**建立實驗並新增內嵌政策文件**

1. 使用下列 [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 命令來建立角色，並新增您在先決條件中建立的信任政策。

   ```
   aws iam create-role --role-name my-fis-role --assume-role-policy-document file://fis-role-trust-policy.json
   ```

1. 建立名為 的文字檔案，`fis-role-permissions-policy.json`並新增許可政策。如需可用作起點的範例，請參閱以下內容。
   + **錯誤注入動作** – 從下列政策開始。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "AllowFISExperimentRoleFaultInjectionActions",
                 "Effect": "Allow",
                 "Action": [
                     "fis:InjectApiInternalError",
                     "fis:InjectApiThrottleError",
                     "fis:InjectApiUnavailableError"
                 ],
                 "Resource": "arn:*:fis:*:*:experiment/*"
             }
         ]
     }
     ```

------
   + **Amazon EBS 動作** – 從下列政策開始。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:DescribeVolumes"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:PauseVolumeIO"
                 ],
                 "Resource": "arn:aws:ec2:*:*:volume/*"
             }
         ]
     }
     ```

------
   + **Amazon EC2 動作** – 從 [AWSFaultInjectionSimulatorEC2Access](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEC2Access.html) 政策開始。
   + **Amazon ECS 動作** – 從 [AWSFaultInjectionSimulatorECSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorECSAccess.html) 政策開始。
   + **Amazon EKS 動作** – 從 [AWSFaultInjectionSimulatorEKSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorEKSAccess.html) 政策開始。
   + **網路動作** – 從 [AWSFaultInjectionSimulatorNetworkAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorNetworkAccess.html) 政策開始。
   + **Amazon RDS 動作** – 從 [AWSFaultInjectionSimulatorRDSAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorRDSAccess.html) 政策開始。
   + **Systems Manager 動作** – 從 [AWSFaultInjectionSimulatorSSMAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSFaultInjectionSimulatorSSMAccess.html) 政策開始。

1. 使用下列 [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html) 命令來新增您在上一個步驟中建立的許可政策。

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