

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

# 为跨服务交互创建 IAM 角色


Amazon GameLift ServersFleetIQ为了使用您的 Amazon EC2 实例和 Auto Scaling 组，您必须允许服务相互交互。这是通过在您的 Amazon 账户中创建 IAM 角色并分配一组有限权限来完成的。每个角色还指定能够担任此角色的服务。

设置以下角色：
+ [为 Amazon GameLift Servers FleetIQ 创建角色](gsg-iam-permissions-roles-gamelift.md)更新您的 Amazon EC2 资源。
+ [为 Amazon EC2 创建角色](gsg-iam-permissions-roles-ec2.md) 资源，用于与 Amazon GameLift Servers FleetIQ 通信。

# 为 Amazon GameLift Servers FleetIQ 创建角色


该角色Amazon GameLift ServersFleetIQ允许访问和修改您的 Amazon EC2 实例、Auto Scaling 组和生命周期挂钩，这是其竞价平衡和自动扩展活动的一部分。

使用 IAM 控制台或 Amazon CLI 为其创建角色Amazon GameLift ServersFleetIQ并附加具有必要权限的托管策略。有关 IAM 角色和托管策略的更多信息，请参阅[为 Amazon 服务创建角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)和[Amazon 托管策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

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

以下步骤介绍如何使用 Amazon Web Services 管理控制台为 Amazon GameLift Servers 创建具有托管策略的服务角色。

1. 登录 [IAM 控制台](https://console.amazonaws.cn/iam)，然后选择**角色: 创建角色**。

1. 对于**Select type of trusted entity（选择受信任实体的类型）**，选择 **Amazon service（服务）**。

1. 对于**选择用例**，请**GameLift**从服务列表中进行选择。在**选择您的使用案例**下，将自动选择适当的 Amazon GameLift Servers 使用案例。要继续，请选择**下一步：权限**。

1. 列表**附加的权限策略**应包含一个策略:**GameLiftGameServerGroupPolicy **. 如果未显示此策略，请检查筛选条件或使用搜索功能将其添加到角色中。您可以查看策略的语法（选择 ▶ 图标以展开），但不能更改语法。创建角色后，您可以更新角色并附加其他策略以添加或删除权限。

   对于**设置权限边界**，保留默认设置（创建没有权限边界的角色）。这是一个不需要的高级设置。要继续，请选择**下一步：标签**。

1. **添加标签**是用于资源管理的可选设置。例如，您可能希望向此角色添加标签，以便按角色跟踪特定于项目的资源使用情况。要查看有关为 IAM 角色和其他用途进行标记的更多信息，请访问**了解更多**链接。要继续，请选择**下一步：审核**。

1. 在**审核**页上，根据需要进行以下更改：
   + 输入角色名称并（可选）更新说明。
   + 请验证以下内容：
     + **可信实体**设置为 “Amazon 服务：gamelift.amazonaws.com”。创建角色后，必须更新此值。
     + **政策**包括 GameLiftGameServerGroupPolicy。

   要完成任务，请选择**创建角色**。

1. 创建新角色后，您必须手动更新角色的信任关系。转到**角色**页面并选择新角色名称以打开其摘要页面。打开**信任关系**选项卡，然后选择**编辑信任关系**。在策略文档中，更新 `Service` 属性以包含 `autoscaling.amazonaws.com`。修订后的 `Service` 属性应如下所示：

   ```
           "Service": [
             "gamelift.amazonaws.com",
             "autoscaling.amazonaws.com"
           ]
   ```

   要保存更改，请选择**更新信任策略**。

该角色已准备就绪。记下角色的 ARN 值，该值显示在角色摘要页面的顶部。您在设置 Amazon GameLift Servers FleetIQ 游戏服务器组时需要此信息。

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

这些步骤描述了如何使用托管策略创建服务角色以Amazon GameLift Servers使用 Amazon CLI。

1. 使用以下 JSON 语法创建信任策略文件（示例：`FleetIQtrustpolicyGameLift.json`）。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "gamelift.amazonaws.com",
             "autoscaling.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 使用 [iam create-role](https://docs.amazonaws.cn/cli/latest/reference/iam/create-role.html) 创建一个新的 IAM 角色，并将其与您刚创建的信任策略 JSON 文件关联。

   Windows：

   ```
   Amazon iam create-role --role-name FleetIQ-role-for-GameLift --assume-role-policy-document file://C:\policies\FleetIQtrustpolicyGameLift.json
   ```

   Linux：

   ```
   Amazon iam create-role --role-name FleetIQ-role-for-GameLift --assume-role-policy-document file://policies/FleetIQtrustpolicyGameLift.json
   ```

   请求成功时，响应将包括新创建的角色的属性。记下 ARN 值。您在设置 Amazon GameLift Servers FleetIQ 游戏服务器组时需要此信息。

1. [使用 iam 附加托管权限策略 “GameLiftGameServerGroupPolicy”。 attach-role-policy](https://docs.amazonaws.cn/cli/latest/reference/iam/attach-role-policy.html)

   ```
   Amazon iam attach-role-policy --role-name FleetIQ-role-for-GameLift --policy-arn arn:aws:iam::aws:policy/GameLiftGameServerGroupPolicy
   ```

   要验证权限策略是否已附加，请使用新[角色 list-attached-role-policies](https://docs.amazonaws.cn/cli/latest/reference/iam/list-attached-role-policies.html)的名称调用 iam。

该角色已准备就绪。您可以通过调用 [gamelift create-game-server-group](https://docs.amazonaws.cn/cli/latest/reference/gamelift/create-game-server-group.html) 来验证 IAM 角色的配置是否正确，并将`role-arn`属性设置为新角色的 ARN 值。当`GameServerGroup`进入活动状态时，Amazon GameLift ServersFleetIQ这表示可以按预期修改您账户中的 Amazon EC2 和 Auto Scaling 资源。

------

# 为 Amazon EC2 创建角色


此角色使您的 Amazon EC2 资源能够与 Amazon GameLift Servers FleetIQ 进行通信。例如，在 Amazon EC2 实例上运行的游戏服务器需要能够报告运行状况。创建 Amazon GameLift Servers FleetIQ 游戏服务器组时，将此角色包含在 Amazon EC2 启动模板中的 IAM 实例配置文件中。

使用 Amazon CLI 为 Amazon EC2 创建角色，附加具有必要权限的自定义策略，并将该角色附加到实例配置文件。有关更多信息，请参阅[为 Amazon 服务创建角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)。

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

以下步骤介绍如何使用 Amazon CLI为 Amazon EC2 创建具有自定义 Amazon GameLift Servers 权限的服务角色。

1. 使用以下 JSON 语法创建信任策略文件（示例：`FleetIQtrustpolicyEC2.json`）。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "ec2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 使用 [iam create-role](https://docs.amazonaws.cn/cli/latest/reference/iam/create-role.html) 创建一个新的 IAM 角色，并将其与您刚创建的信任策略 JSON 文件关联。

   Windows：

   ```
   Amazon iam create-role --role-name FleetIQ-role-for-EC2 --assume-role-policy-document file://C:\policies\FleetIQtrustpolicyEC2.json
   ```

   Linux：

   ```
   Amazon iam create-role --role-name FleetIQ-role-for-EC2 --assume-role-policy-document file://policies/FleetIQtrustpolicyEC2.json
   ```

   请求成功时，响应将包括新创建的角色的属性。记下 ARN 值。您在设置 Amazon EC2 启动模板时需要此信息。

1. 使用以下 JSON 语法创建权限策略文件（示例：`FleetIQpermissionsEC2.json`）。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "gamelift:*",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. [使用 iam put-role-policy 将您刚刚创建的权限策略 JSON 文件附加到新角色。](https://docs.amazonaws.cn/cli/latest/reference/iam/put-role-policy.html)

   Windows：

   ```
   Amazon iam put-role-policy --role-name FleetIQ-role-for-EC2 --policy-name FleetIQ-permissions-for-EC2 --policy-document file://C:\policies\FleetIQpermissionsEC2.json
   ```

   Linux：

   ```
   Amazon iam put-role-policy --role-name FleetIQ-role-for-EC2 --policy-name FleetIQ-permissions-for-EC2 --policy-document file://policies/FleetIQpermissionsEC2.json
   ```

   要验证权限策略是否已附加，请使用新[角色 list-role-policies](https://docs.amazonaws.cn/cli/latest/reference/iam/list-role-policies.html)的名称调用 iam。

1. 使用 iam 创建带有新角色 create-instance-profile的实例配置文件以用于 [A](https://docs.amazonaws.cn/cli/latest/reference/iam/create-instance-profile.html) mazon EC2。有关更多信息，请参阅[管理实例配置文件](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

   ```
   Amazon iam create-instance-profile --instance-profile-name FleetIQ-role-for-EC2
   ```

   当请求成功时，响应将包括新创建的实例配置文件的属性。

1. 使用 [ add-role-to-instanceiam-profil](https://docs.amazonaws.cn/cli/latest/reference/iam/put-role-policy.html) e 将角色附加到实例配置文件。

   ```
    Amazon iam add-role-to-instance-profile --role-name FleetIQ-role-for-EC2 --instance-profile-name FleetIQ-role-for-EC2
   ```

此角色和配置文件现在可与 Amazon EC2 启动模板配合使用。

------