

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

# 步骤 2：为您的实例角色配置 IAM 权限
<a name="batch-host-logs-configure-iam"></a>

Fluent Bit在 Amazon EC2 实例上运行，并使用实例角色向 Amazon S3 进行身份验证。默认情况下，此角色不包含 Amazon S3 权限，因此您必须创建并附加一项策略，授予向前缀写入日志、从`ecs-logs/`前缀读取配置以及列出存储桶的Fluent Bit权限。`fluent-bit/`

**注意**  
您也可以使用 [IAM Policy Simulator](https://policysim.aws.amazon.com/home/index.jsp?#) 测试您的策略。有关策略模拟器的更多信息，请参阅 *IAM 用户指南*中的[使用 IAM Policy Simulator](https://docs.amazonaws.cn/IAM/latest/UserGuide/policies_testing-policies.html)。

 使用以下 JSON 创建 IAM 策略：

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:AbortMultipartUpload",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": "arn:aws:s3:::{{host-level-logs-bucket}}/ecs-logs/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::{{host-level-logs-bucket}}/fluent-bit/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": "arn:aws:s3:::{{host-level-logs-bucket}}"
        }
    ]
}
```

------
#### [ Amazon Console ]

1. 使用 [https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 选择 ** JSON ** 选项卡并粘贴前面的策略 JSON。将 {{host-level-logs-bucket}}替换为存储桶名称。

1. 选择**下一步**。

1. 对于**策略名称**，输入 `BatchHostLogsS3Access`。

1. 选择**创建策略**。

然后将策略附加到实例角色：

1. 在导航窗格中，选择**角色**。

1. 搜索并选择`ecsInstanceRole`。

1. 选择**添加权限**，然后选择**附加策略**。

1. 搜索`BatchHostLogsS3Access`，选择它，然后选择 “**添加权限” **。

------
#### [ Amazon CLI ]

将前面的策略 JSON 保存到名为的文件中`batch-host-logs-policy.json`，然后运行以下命令：

```
aws iam create-policy \
    --policy-name BatchHostLogsS3Access \
    --policy-document file://batch-host-logs-policy.json
```

记下输出中的策略 ARN，然后将该策略附加到您的实例角色：

```
aws iam attach-role-policy \
    --role-name ecsInstanceRole \
    --policy-arn arn:aws:iam::{{111122223333}}:policy/BatchHostLogsS3Access
```

------