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

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

为跨服务交互创建 IAM 角色

要使 GameLift FFleetIQ 能够使用您的 Amazon EC2 实例和 Auto Scaling 组,您必须允许服务相互交互。此操作通过在Amazon帐户并分配一组受限权限。每个角色还指定哪些服务可代入该角色。

设置以下角色:

为 GameLift 创建一个角色

此角色允许 GameLift FFleetIQ 访问和修改您的 Amazon EC2 实例、Auto Scaling 组和生命周期挂钩,作为 Spot 平衡和自动扩展活动的一部分。

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

Console

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

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

  2. 对于选择受信任实体的类型,选择 Amazon 服务

  3. 对于选择一个使用案例,从服务列表中选择 GameLift 。UNDER选择您的使用案例时,将自动选择适当的 GameLift 用例。要继续,请选择后续:Permissions (下一步:权限)

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

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

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

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

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

    • 请验证以下内容:

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

      • 策略包括 GameLiftGameServerGroupPolicy。

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

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

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

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

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

Amazon CLI

以下步骤介绍如何使用 GameLift 为 GameLift 创建具有托管策略的服务角色AmazonCLI。

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "gamelift.amazonaws.com", "autoscaling.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. 创建一个新的 IAM 角色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 值。您在设置 GameLift FFleetIQ 游戏服务器组时需要此信息。

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

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

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

该角色已准备就绪。您可以通过调用Gamelift 创建游戏服务器组使用role-arn属性设置为新角色的 ARN 值。当GameServerGroup进入活动状态,这表示 GameLift FFleetIQ 能够按预期修改您账户中的 Amazon EC2 和 Auto Scaling 资源。

为 Amazon EC2 创建角色

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

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

Amazon CLI

以下步骤介绍如 Amazon EC2 用Amazon CLI。

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 创建一个新的 IAM 角色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. 创建权限策略文件(示例:FleetIQpermissionsEC2.json),并使用以下 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

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

  5. 使用创建实例配置文件iam 创建instance-profile与 Amazon EC2 一起使用的新角色一起使用。有关更多信息,请参阅管理实例配置文件

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

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

  6. 使用 iam add-role-to-instance-profile 将角色附加到实例配置文件。

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

角色和配置文件现已准备好用于 Amazon EC2 启动模板。