與您車隊的其他AWS資源進行溝通 - Amazon GameLift

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

與您車隊的其他AWS資源進行溝通

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

一些範例案例包括:

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

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

  • 取得存放在亞馬遜簡易儲存服務 (Amazon S3) 儲存貯體中的遊戲檔案。

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

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

  • 存取在 Amazon 彈性運算雲端 (Amazon EC2) 上部署和執行的自訂資源。

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 版

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

將程式碼新增至應用程式,以便從叢集執行個體上的共用檔案提取認證。

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

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

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

對於與 Server SDK 5.x 整合的遊戲,此圖表說明部署的遊戲組建中的應用程式如何取得 IAM 角色的登入資料。

在 Amazon GameLift 執行個體上,遊戲伺服器應用程式會呼叫GetFleetRoleCredentials()。其他應用程式使用可儲存在執行個體上的共用認證檔案。

在您的遊戲服務器代碼中,該代碼應該已經與亞馬遜 GameLift服務器 SDK 5.x 集成,調用GetFleetRoleCredentialsC ++)(C#)(虛幻)以檢索一組臨時憑據。當認證過期時,您可以透過另一次呼叫來重新整理它們GetFleetRoleCredentials

對於使用服務器 SDK 5.x 的遊戲服務器構建部署的非服務器應用程序,請添加代碼以獲取和使用存儲在共享文件中的憑據。Amazon GameLift 會為每個叢集執行個體產生登入資料設定檔。這些認證可供執行個體上的所有應用程式使用。亞馬遜 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資源互動。在具有伺服器 SDK 4 或更早版本的 Amazon GameLift 叢集執行個體上執行的任何應用程式都可以擔任 IAM 角色。

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

將叢集與 IAM 角色建立關聯

建立 IAM 角色並更新遊戲伺服器組建中的應用程式以取得和使用存取登入資料之後,您就可以部署叢集。當您設定新叢集時,請設定下列參數:

您必須在建立叢集時設定這些值。它們無法稍後更新。

使用 VPC 對等互連存取AWS資源

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

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