为 Amazon GameLift 设置 IAM 服务角色
有些 Amazon GameLift 功能要求您扩展对自己拥有的其他 AWS 资源的有限访问权限。您可以通过创建 AWS Identity and Access Management (IAM) 角色来做到这一点。IAM 角色是可在账户中创建的一种具有特定权限的 IAM 身份。IAM 角色类似于 IAM 用户,因为它是一个 AWS 身份,具有确定其在 AWS 中可执行和不可执行的操作的权限策略。但是,角色旨在让需要它的任何人代入,而不是唯一地与某个人员关联。此外,角色没有关联的标准长期凭证(如密码或访问密钥)。相反,当您代入角色时,它会为您提供角色会话的临时安全凭证。
本主题介绍如何创建可用于 Amazon GameLift 托管实例集的角色。如果您使用 Amazon GameLift FleetIQ 来优化 Amazon Elastic Compute Cloud(Amazon EC2)实例上的游戏托管,请参阅 Set up your AWS 账户 for Amazon GameLift FleetIQ。
在以下步骤中,创建一个拥有自定义权限策略和允许 Amazon GameLift 担任角色的信任策略的角色。
创建自定义 IAM 角色
步骤 1:创建权限策略。
使用 JSON 策略编辑器创建策略
登录AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在左侧的导航窗格中,选择策略。
如果这是您首次选择策略,则会显示欢迎访问托管式策略页面。选择开始使用。
-
在页面的顶部,选择创建策略。
-
在策略编辑器部分,选择 JSON 选项。
-
输入或粘贴一个 JSON 策略文档。有关 IAM 策略语言的详细信息,请参阅 IAM JSON 策略参考。
-
解决策略验证过程中生成的任何安全警告、错误或常规警告,然后选择下一步。
注意
您可以随时在可视化和 JSON 编辑器选项卡之间切换。不过,如果您进行更改或在可视化编辑器中选择下一步,IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅《IAM 用户指南》https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure中的调整策略结构。
-
(可选)在 AWS Management Console 中创建或编辑策略时,您可以生成可在 AWS CloudFormation 模板中使用的 JSON 或 YAML 策略模板。
为此,请在策略编辑器中选择操作,然后选择生成 CloudFormation 模板。如需了解有关 AWS CloudFormation 的更多信息,请参阅《AWS CloudFormation 用户指南》中的 AWS Identity and Access Management 资源类型参考。
-
向策略添加完权限后,选择下一步。
-
在查看并创建页面上,为您要创建的策略键入策略名称和描述(可选)。查看此策略中定义的权限以查看策略授予的权限。
-
(可选)通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息,请参阅《IAM 用户指南》 中的标记 IAM 资源。
-
选择创建策略可保存您的新策略。
步骤 2:创建 Amazon GameLift 可以担任的角色。
创建 IAM 角色
在 IAM 控制台的导航窗格中,选择角色,然后选择创建角色。
在选择可信实体页面上,选择自定义信任策略选项。此选项将打开自定义信任策略编辑器。
-
将默认 JSON 语法替换为以下语法,然后选择下一步继续。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
在添加权限页面上,找到并选择您在步骤 1 中创建的权限策略。选择下一步以继续。
-
在名称、查看并创建页面上,为您要创建的角色输入角色名称和描述(可选)。查看信任实体和已添加权限。
-
选择创建角色以保存您的新角色。
权限策略语法
-
Amazon GameLift 担任服务角色的权限
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "gamelift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
访问默认情况下未启用的 AWS 区域的权限
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "gamelift.amazonaws.com", "gamelift.ap-east-1.amazonaws.com", "gamelift.me-south-1.amazonaws.com", "gamelift.af-south-1.amazonaws.com", "gamelift.eu-south-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }