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

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

为跨服务交互创建 IAM 角色

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

设置以下角色:

为 GameLift FleetIQ 创建角色

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

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

Console

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

  1. 打开 IAM 控制台并选择角色:。 创建角色

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

  3. 对于 Choose a use case (选择使用案例),从服务列表中选择 GameLift。在选择您的使用案例下,将自动选择适当的 GameLift 使用案例。要继续,请选择 Next: (下一步:)。权限。

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

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

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

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

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

    • 请验证以下内容:

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

      • 策略包括 GameLiftGameServerGroupPolicy。

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

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

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

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

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

AWS CLI

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "gamelift.amazonaws.com", "autoscaling.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. 使用 IAMiam create-role 创建新的 角色,并将其与您刚创建的信任策略 JSON 文件关联。

    Windows:

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

    Linux:

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

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

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

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

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

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

为 Amazon EC2 创建角色

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

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

AWS CLI

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 使用 IAMiam create-role 创建新的 角色,并将其与您刚创建的信任策略 JSON 文件关联。

    Windows:

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

    Linux:

    aws 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:

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

    Linux:

    aws 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 create-instance-profile 创建具有新角色的实例配置文件以用于 Amazon EC2。有关更多信息,请参阅管理实例配置文件

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

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

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

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

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