

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

# 设置您的 AWS 账号用于 Amazon GameLift Servers FleetIQ
<a name="gsg-iam-permissions"></a>

要Amazon GameLift ServersFleetIQ与 Amazon EC2、Auto Scaling 和其他 AWS 服务一起使用，您必须设置 AWS 账户 具有所需访问权限的。完成以下任务：
+ 如果您还没有可使用的 AWS 帐户 Amazon GameLift ServersFleetIQ，请创建一个新帐户。请参阅[创建一个 AWS 账户](gsg-iam-permissions-account.md)。
+ 为用户和用户组设置 Amazon GameLift Servers FleetIQ 特定的权限。请参阅[管理 Amazon GameLift Servers FleetIQ 的用户权限](gsg-iam-permissions-users.md)。
+ 创建 IAM 角色以允许 Amazon GameLift Servers 和您的 Amazon EC2 资源进行交互。请参阅[为跨服务交互创建 IAM 角色](gsg-iam-permissions-roles.md)。

# 创建一个 AWS 账户
<a name="gsg-iam-permissions-account"></a>

创建并设置 AWS 账户 要与一起使用Amazon GameLift ServersFleetIQ。创建 AWS 账户不收取任何费用。

**Topics**
+ [注册获取 AWS 账户](#sign-up-for-aws)
+ [创建具有管理访问权限的用户](#create-an-admin)

## 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**报名参加 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://aws.amazon.com/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

## 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅 I [A *M* 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center。

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的[启用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用 IAM Identity Center 目录 作为身份源的教程，请参阅《[用户*指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户*访问权限](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录 用户指南*中的登录 AWS 访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

# 管理 Amazon GameLift Servers FleetIQ 的用户权限
<a name="gsg-iam-permissions-users"></a>

根据需要创建更多用户或将 Amazon GameLift Servers FleetIQ 访问权限扩展到现有用户。使用Amazon GameLift ServersFleetIQ游戏服务器组以及相关的 Amazon EC2 和 Auto Scaling 服务的用户必须拥有访问这些服务的权限。

作为最佳实操（[IAM 中的安全最佳实操](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)），请为所有用户应用最低权限权限。您可以为各个用户或用户组设置权限，并按服务、操作或资源限制用户访问权限。

根据您管理 AWS 账户中用户的方式，按照以下说明设置用户权限。如果您使用 IAM 用户，则作为最佳实操，请始终向角色或用户组授予权限，而不是向个人用户授予权限。
+ [用户的权限语法](gsg-iam-permissions-users-policy.md)
+ [与一起使用的其他权限语法 CloudFormation](gsg-iam-permissions-users-policycfn.md)

要提供访问权限，请为您的用户、组或角色添加权限：
+ 中的用户和群组 AWS IAM Identity Center：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

# 参考：Amazon GameLift Servers FleetIQ\$1policy
<a name="gsg-iam-permissions-users-policy"></a>

以下是供您参考的 Amazon GameLift Servers FleetIQ\$1policy 示例：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": 
  [    
    {
      "Action": 
      [
        "iam:PassRole"
      ],
      "Effect": "Allow",
      "Resource": "*",
      "Condition": 
      {
        "StringEquals": 
        {
          "iam:PassedToService": "gamelift.amazonaws.com"
        }
      }
    },    
    {
      "Action": 
      [
        "iam:CreateServiceLinkedRole"
      ],
      "Effect": "Allow",
      "Resource": "arn:*:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
    },    
    {
      "Action": 
      [
        "autoscaling:CreateAutoScalingGroup",
        "autoscaling:CreateOrUpdateTags",
        "autoscaling:DescribeAutoScalingGroups",
        "autoscaling:ExitStandby",
        "autoscaling:PutLifecycleHook",
        "autoscaling:PutScalingPolicy",
        "autoscaling:ResumeProcesses",
        "autoscaling:SetInstanceProtection",
        "autoscaling:UpdateAutoScalingGroup",
        "autoscaling:DeleteAutoScalingGroup"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },    
    {
      "Action": 
      [
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSubnets",
        "ec2:RunInstances",
        "ec2:CreateTags"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },    
    {
      "Action": 
      [
        "events:PutRule",
        "events:PutTargets"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

# 的额外权限 CloudFormation
<a name="gsg-iam-permissions-users-policycfn"></a>

如果您使用 CloudFormation管理游戏托管资源，请将 CloudFormation 权限添加到策略语法中。

```
    {
      "Action": [
        "autoscaling:DescribeLifecycleHooks",
        "autoscaling:DescribeNotificationConfigurations",
        "ec2:DescribeLaunchTemplateVersions"
      ]
      "Effect": "Allow",
      "Resource": "*"
    }
```

# 为用户设置编程式访问权限
<a name="gsg-iam-permissions-users-access-keys"></a>

如果用户想在 AWS 外部进行交互，则需要编程访问权限 AWS 管理控制台。授予编程访问权限的方式取决于正在访问的用户类型 AWS。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | （推荐）使用控制台凭证作为临时凭证，签署对 AWS CLI AWS SDKs、或的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/gameliftservers/latest/fleetiqguide/gsg-iam-permissions-users-access-keys.html)  | 
|  人力身份 （在 IAM Identity Center 中管理的用户）  | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/gameliftservers/latest/fleetiqguide/gsg-iam-permissions-users-access-keys.html)  | 
| IAM | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 | 按照 IAM 用户指南中的将[临时证书与 AWS 资源配合使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/gameliftservers/latest/fleetiqguide/gsg-iam-permissions-users-access-keys.html)  | 

如果您使用访问密钥，请参阅[管理 AWS 访问密钥的最佳实践](https://docs.aws.amazon.com/accounts/latest/reference/credentials-access-keys-best-practices.html)。

# 为跨服务交互创建 IAM 角色
<a name="gsg-iam-permissions-roles"></a>

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

设置以下角色：
+ [为 Amazon GameLift Servers FleetIQ 创建角色](gsg-iam-permissions-roles-gamelift.md)更新您的 Amazon EC2 资源。
+ [为 Amazon EC2 创建角色](gsg-iam-permissions-roles-ec2.md) 资源，用于与 Amazon GameLift Servers FleetIQ 通信。

# 为 Amazon GameLift Servers FleetIQ 创建角色
<a name="gsg-iam-permissions-roles-gamelift"></a>

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

使用 IAM 控制台或 AWS CLI 为其创建角色Amazon GameLift ServersFleetIQ并附加具有必要权限的托管策略。有关 IAM 角色和托管策略的更多信息，请参阅[为 AWS 服务创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)和[AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

------
#### [ Console ]

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

1. 登录 [IAM 控制台](https://console.aws.amazon.com/iam)，然后选择**角色: 创建角色**。

1. 对于**Select type of trusted entity（选择受信任实体的类型）**，选择 **AWS service（服务）**。

1. 对于**选择用例**，请**GameLift**从服务列表中进行选择。在**选择您的使用案例**下，将自动选择适当的 Amazon GameLift Servers 使用案例。要继续，请选择**下一步：权限**。

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

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

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

1. 在**审核**页上，根据需要进行以下更改：
   + 输入角色名称并（可选）更新说明。
   + 请验证以下内容：
     + **可信实体**设置为 “AWS 服务：gamelift.amazonaws.com”。创建角色后，必须更新此值。
     + **政策**包括 GameLiftGameServerGroupPolicy。

   要完成任务，请选择**创建角色**。

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

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

   要保存更改，请选择**更新信任策略**。

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

------
#### [ AWS CLI ]

这些步骤描述了如何使用托管策略创建服务角色以Amazon GameLift Servers使用 AWS CLI。

1. 使用以下 JSON 语法创建信任策略文件（示例：`FleetIQtrustpolicyGameLift.json`）。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "gamelift.amazonaws.com",
             "autoscaling.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 使用 [iam create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 创建一个新的 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 Servers FleetIQ 游戏服务器组时需要此信息。

1. [使用 iam 附加托管权限策略 “GameLiftGameServerGroupPolicy”。 attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)

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

   要验证权限策略是否已附加，请使用新[角色 list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)的名称调用 iam。

该角色已准备就绪。您可以通过调用 [gamelift create-game-server-group](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-game-server-group.html) 来验证 IAM 角色的配置是否正确，并将`role-arn`属性设置为新角色的 ARN 值。当`GameServerGroup`进入活动状态时，Amazon GameLift ServersFleetIQ这表示可以按预期修改您账户中的 Amazon EC2 和 Auto Scaling 资源。

------

# 为 Amazon EC2 创建角色
<a name="gsg-iam-permissions-roles-ec2"></a>

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

使用 AWS CLI 为 Amazon EC2 创建角色，附加具有必要权限的自定义策略，并将该角色附加到实例配置文件。有关更多信息，请参阅[为 AWS 服务创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)。

------
#### [ AWS CLI ]

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

1. 使用以下 JSON 语法创建信任策略文件（示例：`FleetIQtrustpolicyEC2.json`）。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "ec2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 使用 [iam create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 创建一个新的 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 启动模板时需要此信息。

1. 使用以下 JSON 语法创建权限策略文件（示例：`FleetIQpermissionsEC2.json`）。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "gamelift:*",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. [使用 iam put-role-policy 将您刚刚创建的权限策略 JSON 文件附加到新角色。](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

   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](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)的名称调用 iam。

1. 使用 iam 创建带有新角色 create-instance-profile的实例配置文件以用于 [A](https://docs.aws.amazon.com/cli/latest/reference/iam/create-instance-profile.html) mazon EC2。有关更多信息，请参阅[管理实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。

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

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

1. 使用 [ add-role-to-instanceiam-profil](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html) e 将角色附加到实例配置文件。

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

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

------