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

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

为跨服务交互创建 IAM 角色

为了让 Amazon GameLift FleetIQ 与您的亚马逊 EC2 实例和 Auto Scaling 组一起使用,您必须允许这些服务相互交互。这是通过在您的Amazon账户中创建 IAM 角色并分配一组有限权限来完成的。每个角色还指定哪些服务可以代入该角色。

设置以下角色:

为亚马逊 GameLift FleetIQ 创建角色

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

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

Console

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

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

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

  3. 在 “选择用例” 中,GameLift从服务列表中选择。在 “选择您的用例” 下,将自动选择相应的亚马逊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 为亚马逊创建具有托管策略的服务角色。

  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. 使用 attach-role-policyi am 附加托管权限策略 “GameLiftGameServerGroupPolicy”。

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

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

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

为亚马逊 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. 使用 i put-role-policy am 将您刚刚创建的权限策略 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-p rofile 将角色附加到实例配置文件。

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

角色和配置文件现已准备就绪,可以与 Amazon EC2 启动模板一起使用。