本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
与舰队中的其他 AWS 资源进行沟通
在创建用于在 Amazon GameLift 队列上部署的游戏服务器版本时,您可能希望游戏版本中的应用程序能够与您拥有的其他 AWS 资源直接安全地通信。由于亚马逊 GameLift 管理您的游戏托管队伍,因此您必须向亚马逊授予对这些资源和服务的 GameLift有限访问权限。
一些示例场景包括:
-
使用 Amazon CloudWatch 代理从托管EC2车队收集指标、日志和跟踪 Anywhere 舰队。
-
将实例日志数据发送到 Amazon CloudWatch 日志。
-
将消息存储在 Amazon Simple Storage Service (Amazon S3) 存储桶中。
-
动态读写在 或其他数据存储服务中存储的游戏数据,例如游戏模式或清单。
-
使用亚马逊简单队列服务 (AmazonSQS) 将信号直接发送到实例。
-
访问在亚马逊弹性计算云 (AmazonEC2) 上部署和运行的自定义资源。
Amazon GameLift 支持以下方法来建立访问权限:
使用IAM角色访问 AWS 资源
使用IAM角色指定谁可以访问您的资源并设置访问限制。受信任方可以“担任”角色并获得临时安全证书,以授权他们与资源进行交互。当各方提出与资源相关的API请求时,他们必须提供证书。
要设置由IAM角色控制的访问权限,请执行以下任务:
创建IAM角色
在此步骤中,您将创建一个IAM角色,该角色具有一组控制 AWS 资源访问权限的权限和一个授予 Amazon GameLift 使用该角色权限的信任策略。
有关如何设置IAM角色的说明,请参阅为 Amazon 设置IAM服务角色 GameLift。在创建权限策略时,请选择您的应用程序需要使用的特定服务、资源和操作。作为最佳实操,请尽可能限制权限的范围。
创建角色后,请记下该角色的 Amazon 资源名称 (ARN)。在创建舰队ARN期间,您需要该角色。
修改应用程序以获取凭证
在此步骤中,您将配置应用程序以获取IAM角色的安全证书,并在与您的 AWS 资源交互时使用这些证书。参见下表,根据 (1) 应用程序的类型以及 (2) 您的游戏用于与 Amazon 通信的服务器SDK版本来确定如何修改您的应用程序 GameLift。
游戏服务器应用程序 | 其他客户端应用程序 | |
---|---|---|
使用服务器SDK版本 5.x |
|
向应用程序添加代码,以便从队列实例上的共享文件中提取证书。 |
使用服务器SDK版本 4 或更早版本 |
|
|
对于与 Server SDK 5.x 集成的游戏,此图说明了您部署的游戏版本中的应用程序如何获取该IAM角色的凭证。
在你的游戏服务器代码(该代码应该已经与亚马逊 GameLift服务器 SDK 5.x 集成)中,调用 GetFleetRoleCredentials
(C ++) (C#) (Unreal) (Go) 来检索一组临时证书。证书过期后,您可以通过再次调用 GetFleetRoleCredentials
来刷新凭证。
对于使用服务器 SDK 5.x 的游戏服务器版本部署的非服务器应用程序,请添加代码以获取和使用存储在共享文件中的凭据。Amazon GameLift 会为每个队列实例生成一个凭证配置文件。这些证书可供实例上的所有应用程序使用。Amazon 会 GameLift不断刷新临时证书。
您必须将队列配置为在创建队列时生成共享凭证文件。
在每个需要使用共享凭据文件的应用程序中,指定文件位置和配置文件名称,如下所示:
Windows:
[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "C:\\Credentials\\credentials"
Linux:
[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "/local/credentials/credentials"
示例:设置 CloudWatch 代理以收集 Amazon GameLift 队列实例的指标
如果您想使用亚马逊 CloudWatch 代理从您的亚马逊 GameLift 车队收集指标、日志和跟踪,请使用此方法授权代理将数据发送到您的账户。在此场景中,请采取以下步骤:
-
检索或写入 CloudWatch 代理
config.json
文件。 -
如上所述,更新
common-config.toml
代理文件以识别凭证文件名和配置文件名称。 -
设置游戏服务器版本安装脚本以安装和启动 CloudWatch 代理。
向您的应用程序添加代码以代入该IAM角色并获取与您的 AWS 资源进行交互的凭证。在服务器 SDK 4 或更早版本的 Amazon GameLift 队列实例上运行的任何应用程序都可以代入该IAM角色。
在应用程序代码中,在访问 AWS 资源之前,应用程序必须调用 AWS Security Token Service (AWS STS) AssumeRole
API 操作并指定角色ARN。此操作会返回一组临时证书,用于授权应用程序访问 AWS 资源。有关更多信息,请参阅《IAM用户指南》中的将临时证书与 AWS 资源配合使用。
将舰队与IAM角色关联
在创建IAM角色并更新游戏服务器版本中的应用程序以获取和使用访问凭证后,您可以部署舰队。配置新队列时,请设置以下参数:
InstanceRoleArn— 将此参数设置ARN为IAM角色的。
InstanceRoleCredentialsProvider— 要提示 Amazon GameLift 为每个队列实例生成共享凭证文件,请将此参数设置为
SHARED_CREDENTIAL_FILE
。
创建队列时必须设置这些值。以后,无法对其进行更新。
通过对等 AWS 互VPC连访问资源
您可以使用 Amazon Virtual Private Cloud (AmazonVPC) 对等互连在亚马逊 GameLift 实例上运行的应用程序与其他 AWS 资源之间进行通信。A VPC 是您定义的虚拟专用网络,其中包括通过您管理的一组资源 AWS 账户。每个 Amazon GameLift 车队都有自己的车队VPC。通过VPC对等互连,您可以在您的舰队和其他 AWS 资源之间建立直接的网络连接。VPC
Amazon GameLift 简化了为游戏服务器VPC设置对等连接的流程。它会处理对等请求、更新路由表,并根据需要配置连接。有关如何为游戏服务器设置对VPC等互连的说明,请参阅Amazon GameLift 的 VPC 对等连接。