为跨服务交互创建 IAM 角色 - Amazon GameLift

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

为跨服务交互创建 IAM 角色

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

设置以下角色:

为 Amazon GameLift FleetiQ 创建角色

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

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

Console

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

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

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

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

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

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

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

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

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

    • 请验证以下内容:

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

      • 政策包括 GameLiftGameServerGroupPolicy。

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

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

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

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

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

AWS CLI

这些步骤描述了如何 GameLift使用 AWS 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:

    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 值。在设置 Amazon GameLift FleetiQ 游戏服务器组时,您将需要这些信息。

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

    AWS 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 实例配置文件中。

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

AWS CLI

以下步骤介绍如何使用为 Amazon EC2 创建具有自定义 Amazon GameLift 权限的服务角色 AWS 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:

    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

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

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

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

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

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

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

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