View a markdown version of this page

GAMESEC04-BP01 限制可下載內容的存取權給授權的用戶端和使用者 - 遊戲產業鏡頭

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

GAMESEC04-BP01 限制可下載內容的存取權給授權的用戶端和使用者

限制授權應用程式和用戶端存取遊戲內容。考慮使用 Amazon S3 作為經濟實惠且可擴展的原始伺服器,以存放可下載的遊戲內容,並考慮使用 Amazon CloudFront 為玩家提供全域效能的內容交付。這兩種服務都提供內建機制,以限制對已儲存資料的存取,例如限制對已驗證使用者的存取。

未建立此最佳實務時的曝險等級:

實作指引

授予存取存放在 Amazon S3 中的內容

當您需要授予存取存放在 S3 中的內容的權限時,需要考慮幾個因素。根據預設,只有建立 S3 儲存貯體 AWS 帳戶 的 可以存取其中存放的物件。若要授予內部應用程式的存取權和管理存放在 Amazon S3 儲存貯體中的內容,請使用 AWS Identity and Access Management (IAM) 建立提供適當存取權的政策。 

IAM 角色 可以與託管在 服務中的聯合身分使用者、系統或應用程式相關聯,例如 Amazon EC2 AWS Lambda,以及託管在 Amazon EKS 和 Amazon ECS 中的容器型應用程式。例如,您可以使用 AWS SDK 或 AWS CLI 在 S3 儲存貯體中發佈和管理遊戲內容資產。若要支援此使用案例,您可以建立具有適當存取權的 IAM 角色,以將遊戲內容讀取和寫入 S3 儲存貯體,並將其與託管軟體和指令碼的 EC2 執行個體建立關聯。

您可以為您的儲存貯體和特定物件定義資源型政策。S3 儲存貯體 政策與 S3 儲存貯體相關聯,可用於限制對儲存貯體和其中物件的存取,以及授予來自其他帳戶的 Amazon S3 資源存取權。例如,在多個團隊或個別遊戲開發工作室正在處理相同遊戲內容,且 需要對 Amazon S3 中集中託管內容的相同存取權的情況下,您可以使用 S3 儲存貯體政策來定義跨帳戶存取 S3 資源的許可。考慮使用 S3 存取點,這可以透過建立具有每個應用程式或一組應用程式特定名稱和許可的存取點,簡化對共用資料的資料存取管理。Amazon S3 文件包含 Amazon S3 中存取控制的其他最佳實務

Granting short-term access to your content

當只需要在特定的有限時間內存取時, 會產生暫時 URLs以授予您內容的短期存取權。Amazon S3 支援產生 預先簽章URLs,允許物件擁有者授予 Amazon S3 中物件的時間限制存取,而無需更新儲存貯體政策。 透過這樣做,被授予存取的最終使用者或應用程式不需要具有帳戶或 IAM 許可,而是使用預先簽章的 URL 來存取內容。 

這是在各種遊戲使用案例中常用的最佳實務,例如授予授權玩家存取他們有權下載的內容,以及暫時存取有限的遊戲內容。預先簽章URLs 也可以用來提供將內容上傳至 S3 儲存貯體的暫時許可。例如,您可以考慮使用預先簽章的 URL 為玩家提供上傳用戶端日誌的存取權,以協助支援團隊疑難排解玩家支援案例。

使用內容交付網路來提供內容的存取權

雖然您的應用程式、遊戲開發人員、藝術家和其他人員可能需要直接存取 S3 儲存貯體中的內容以進行開發和管理,但請使用內容交付網路來提供透過網際網路公開提供給玩家或其他使用者的內容存取權。此方法透過快取經常存取的內容來改善下載效能並降低成本。Amazon CloudFront 可以透過快取並交付更接近玩家的內容,同時減少遊戲下載原始伺服器的負載,例如 Amazon S3。

建議您不要直接從 S3 儲存貯體提供公有內容,而是使用 CloudFront 來保持此內容的私密性並公開提供。CloudFront 可以設定為要求玩家使用 簽章的 URLs簽章的 Cookie 來存取您的私有內容 (例如僅限付費玩家的新遊戲下載)。然後,您可以開發應用程式,以建立已簽署 URLs並將其分發給已驗證的使用者,或傳送設定已驗證使用者已簽章 Cookie 的 set-Cookie 標頭。當您建立已簽章URLs 或已簽章的 Cookie 以控制對檔案的存取時,您可以指定結束日期和時間,之後 URL 和 Cookie 將不再有效。 

或者,您也可以指定可用於存取內容之電腦的 IP 地址或地址範圍,如果您想要限制對特定遊戲開發工作室合作夥伴或承包商網路的存取,這會很有用。當您想要提供對多個受限檔案的存取權,或者您不想變更目前的 URLs Cookie。當您想要限制對個別檔案的存取,或您的使用者使用的用戶端不支援 Cookie 時,請使用已簽署URLs。已簽署的網址優先於已簽署的 Cookie。

實作步驟

  • 使用 IAM 角色和儲存貯體政策,為內部應用程式、團隊或跨帳戶案例授予 S3 儲存貯體的適當存取權。

  • 產生預先簽章URLs,以授予 S3 物件的短期存取權,適用於可下載的內容或暫時上傳,例如用戶端日誌。

  • 搭配已簽章URLs 或 Cookie 使用 Amazon CloudFront,以更安全地為已驗證的使用者提供私有內容