为跨服务交互创建 IAM 角色 - Amazon GameLift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为跨服务交互创建 IAM 角色

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

设置以下角色:

为 Amazon GameLift FleetiQ 创建角色

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

使用 IAM 控制台或 Amazon CLI 为 Amazon GameLift FleetiQ 创建角色并附加具有必要权限的托管策略。有关IAM 角色和托管策略的更多信息,请参阅为 Amazon 服务创建角色Amazon托管策略

Console

这些步骤描述了如何 GameLift使用为 Amazon 创建具有托管策略的服务角色Amazon Web Services Management Console。

  1. 登录 IAM 控制台,然后选择角色: 创建角色

  2. 对于Select type of trusted entity(选择受信任实体的类型),选择 Amazon service(服务)

  3. 对于选择用例,请GameLift从服务列表中进行选择。在 “选择您的用例” 下,系统会自动选择相应的 Amazon GameLift 用例。要继续,请选择下一步:权限

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

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

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

  6. 审核页上,根据需要进行以下更改:

    • 输入角色名称并(可选)更新说明。

    • 请验证以下内容:

      • 受信任的实体设置为“Amazon 服务:gamelift.amazonaws.com”。创建角色后,必须更新此值。

      • 政策包括 GameLiftGameServerGroupPolicy。

    要完成任务,请选择创建角色

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

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

    要保存更改,请选择更新信任策略

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

Amazon CLI

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

  1. 使用以下 JSON 语法创建信任策略文件(示例:FleetIQtrustpolicyGameLift.json)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "gamelift.amazonaws.com", "autoscaling.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. 使用 iam create-role 创建一个新的 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 FleetiQ 游戏服务器组时,您将需要这些信息。

  3. 使用 iam 附加托管权限策略 “GameLiftGameServerGroupPolicy”。 attach-role-policy

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

    要验证权限策略是否已附加,请使用新角色 list-attached-role-policies的名称调用 iam。

该角色已准备就绪。您可以通过调用 gamelift create-game-server-group 来验证 IAM 角色的配置是否正确,并将role-arn属性设置为新角色的 ARN 值。当GameServerGroup进入活动状态时,这表明 Amazon GameLift FleetiQ 能够按预期修改您账户中的 Amazon EC2 和 Auto Scaling 资源。

为 Amazon EC2 创建角色

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

使用 Amazon CLI 为 Amazon EC2 创建角色,附加具有必要权限的自定义策略,并将该角色附加到实例配置文件。有关更多信息,请参阅创建用于 Amazon 服务的角色

Amazon CLI

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

  1. 使用以下 JSON 语法创建信任策略文件(示例:FleetIQtrustpolicyEC2.json)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 使用 iam create-role 创建一个新的 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 启动模板时需要此信息。

  3. 使用以下 JSON 语法创建权限策略文件(示例:FleetIQpermissionsEC2.json)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "gamelift:*", "Resource": "*" } ] }
  4. 使用 iam put-role-policy 将您刚刚创建的权限策略 JSON 文件附加到新角色。

    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的名称调用 iam。

  5. 使用 iam 创建带有新角色 create-instance-profile的实例配置文件以用于 A mazon EC2。有关更多信息,请参阅管理实例配置文件

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

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

  6. 使用 add-role-to-instanceiam-profil e 将角色附加到实例配置文件。

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

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