與機群中的其他 AWS 資源通訊 - Amazon GameLift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

與機群中的其他 AWS 資源通訊

當您建立遊戲伺服器建置以在 Amazon GameLift 機群上部署時,您可能會希望遊戲建置中的應用程式直接且安全地與您擁有的其他 AWS 資源通訊。由於 Amazon 會 GameLift 管理您的遊戲託管機群,因此您必須讓 Amazon GameLift 有限地存取這些資源和服務。

一些範例案例包括:

  • 使用 Amazon CloudWatch 代理程式從受管EC2機群和 收集指標、日誌和追蹤 Anywhere 機群

  • 將執行個體日誌資料傳送至 Amazon CloudWatch Logs。

  • 取得存放在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的遊戲檔案。

  • 讀取和寫入儲存在 Amazon DynamoDB 資料庫或其他資料儲存服務的遊戲資料 (例如遊戲模式或庫存)。

  • 使用 Amazon Simple Queue Service (Amazon SQS) 將訊號直接傳送至執行個體。

  • 存取在 Amazon Elastic Compute Cloud (Amazon ) 上部署和執行的自訂資源EC2。

Amazon GameLift 支援下列建立存取的方法:

使用 IAM角色存取 AWS 資源

使用 IAM角色來指定誰可以存取您的 資源,並設定該存取的限制。受信任方可以「假設」角色,並取得臨時安全憑證,以授權他們與 資源互動。當各方提出與資源相關的API請求時,他們必須包含憑證。

若要設定由IAM角色控制的存取,請執行下列任務:

建立IAM角色

在此步驟中,您會建立具有一組許可IAM的角色,以控制對 AWS 資源的存取,以及授予 Amazon 使用角色許可 GameLift 的權利的信任政策。

如需如何設定IAM角色 的指示,請參閱 設定 Amazon IAM的服務角色 GameLift。建立許可政策時,請選擇應用程式需要使用的特定服務、資源和動作。最佳實務是盡可能限制許可的範圍。

建立角色之後,請記下角色的 Amazon Resource Name (ARN)。您需要在機群建立ARN期間擔任 角色。

修改應用程式以取得憑證

在此步驟中,您可以將應用程式設定為取得IAM角色的安全憑證,並在與 AWS 資源互動時使用。請參閱下表以決定如何根據 (1) 應用程式類型,以及 (2) 遊戲用來與 Amazon 通訊的伺服器SDK版本來修改應用程式 GameLift。

遊戲伺服器應用程式 其他應用程式

使用伺服器 5.x SDK版

GetFleetRoleCredentials() 從遊戲伺服器程式碼呼叫伺服器SDK方法。

將程式碼新增至應用程式,從機群執行個體上的共用檔案提取憑證。

使用伺服器第 4 SDK版或更早版本

AssumeRole 使用角色 呼叫 AWS Security Token Service (AWS STS)ARN。

AssumeRole 使用角色 呼叫 AWS Security Token Service (AWS STS)ARN。

對於與伺服器 5.x SDK 整合的遊戲,此圖表說明部署的遊戲組建中的應用程式如何取得IAM角色的憑證。

遊戲可執行檔呼叫 GetFleetRoleCredentials()。其他檔案使用本機儲存的共用憑證。

在應該已與 Amazon GameLift 伺服器 SDK 5.x 整合的遊戲伺服器程式碼中,呼叫 GetFleetRoleCredentialsC++) (C#) (Unreal ) (前往 ) 以擷取一組臨時憑證。當憑證過期時,您可以使用對 的另一個呼叫來重新整理憑證GetFleetRoleCredentials

對於使用伺服器 SDK5.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 機群執行個體的指標

如果您想要使用 Amazon CloudWatch 代理程式從 Amazon GameLift 機群收集指標、日誌和追蹤,請使用此方法授權代理程式將資料傳送到您的帳戶。在此案例中,請採取下列步驟:

  1. 擷取或寫入 CloudWatch 代理程式config.json檔案。

  2. 更新代理common-config.toml程式的檔案,以識別憑證檔案名稱和設定檔名稱,如上所述。

  3. 設定您的遊戲伺服器建置安裝指令碼以安裝和啟動 CloudWatch 代理程式。

將程式碼新增至您的應用程式以擔任IAM角色,並取得與您的 AWS 資源互動的憑證。在伺服器 4 SDK 或更早版本的 Amazon GameLift 機群執行個體上執行的任何應用程式都可以擔任 IAM角色。

在應用程式程式碼中,在存取 AWS 資源之前,應用程式必須呼叫 AWS Security Token Service (AWS STS) AssumeRoleAPI操作並指定角色 ARN。此操作會傳回一組臨時憑證,授權應用程式存取 AWS 資源。如需詳細資訊,請參閱 IAM 使用者指南 中的將臨時憑證與 AWS 資源搭配使用。

將機群與 IAM 角色建立關聯

建立IAM角色並更新遊戲伺服器建置中的應用程式以取得並使用存取憑證後,即可部署機群。當您設定新機群時,請設定下列參數:

建立機群時,您必須設定這些值。它們稍後無法更新。

使用VPC對等存取 AWS 資源

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 對等,在 Amazon GameLift 執行個體上執行的應用程式與其他 AWS 資源之間進行通訊。VPC 是您定義的虛擬私有網路,其中包含一組透過 管理的資源 AWS 帳戶。每個 Amazon GameLift 機群都有自己的 VPC。透過VPC對等,您可以在機群VPC的 與其它 AWS 資源之間建立直接網路連線。

Amazon 可 GameLift 簡化為遊戲伺服器設定VPC對等連線的程序。它會處理對等請求、更新路由表,並視需要設定連線。如需如何為遊戲伺服器設定VPC對等互連的說明,請參閱 適用於亞馬遜的 VPC 對等互連 GameLift