建立 IAM 角色以進行跨服務互動 - Amazon GameLift

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

建立 IAM 角色以進行跨服務互動

為了讓 Amazon GameLift FleetIQ 能夠與您的 Amazon EC2 執行個體和 Auto Scaling 群組搭配使用,您必須允許這些服務彼此互動。這是透過在您的 AWS 帳戶中建立 IAM 角色並指派一組有限的許可來完成。每個角色也會指定哪些服務可以擔任該角色。

設定下列角色:

為 Amazon GameLift FleetIQ 群創建角色

此角色可讓 Amazon GameLift FleetIQ 存取和修改 Amazon EC2 執行個體、Auto Scaling 群組和生命週期勾點,做為其 Spot 平衡和自動擴展活動的一部分。

使用 IAM 主控台或 AWS CLI 為 Amazon GameLift FleetIQ 建立角色,並附加具有必要許可的受管政策。如需 IAM 角色和受管政策的詳細資訊,請參閱為 AWS 服務建立角色和AWS 受管政策

Console

這些步驟說明如何 GameLift使用 Amazon 的受管政策建立服務角色 AWS Management Console。

  1. 開啟 IAM 主控台,然後選擇 Roles: Create role (角色:建立角色)

  2. 對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service ( 服務)

  3. 對於 [選擇使用案例],請GameLift從服務清單中選擇。在 [選取您的使用案例] 下,會自動選取適當的 Amazon GameLift 使用案例。若要繼續,請選擇 Next: Permissions (後續許可)

  4. [附加權限原則] 清單應包含以下一個原則:GameLiftGameServerGroupPolicy 。若未顯示此政策,請檢查篩選條件,或使用搜尋功能將其新增至角色。您可以檢視政策的語法 (選擇 ▶ 圖示即可展開),但您無法變更語法。建立角色後,您可以更新角色並附加其他原則以新增或移除權限。

    針對 Set permissions boundary (設定許可界限),保留預設設定 (建立沒有許可界限的角色)。這是非必要的進階設定。若要繼續,請選擇 Next: Tags (下一步:標籤)

  5. Add tags (新增標籤) 是資源管理的選用設定。例如,您可能想要將標籤新增至此角色,以依角色追蹤專案特定的資源使用情況。要查看有關 IAM 角色和其他用途標記的更多信息,請點擊進一步了解鏈接。若要繼續,請選擇 Next: Review (下一步:檢閱)

  6. Review (檢閱) 頁面上,視需要進行下列變更:

    • 輸入角色名稱並選擇是否更新描述。

    • 請確認下列內容:

      • 受信任的實體設定為 [AWS 服務:遊戲機]。建立此角色後,則必須更新此值。

      • 政策包括 GameLiftGameServerGroupPolicy。

    若要完成此任務,請選擇 Create role (建立角色)

  7. 建立新角色之後,您必須手動更新角色的信任關係。移至 Roles (角色) 頁面,然後選擇新角色名稱以開啟其摘要頁面。開啟 Trust relationships (信任關係) 索引標籤,然後選擇 Edit trust relationship (編輯信任關係)。在政策文件中,更新要包含的Service屬性autoscaling.amazonaws.com。修訂後的Service屬性應如下所示:

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

    若要儲存變更,請選擇 Update Trust Policy (更新信任政策)

此角色現在已準備就緒。記下此角色的 ARN 值,這會顯示在角色摘要頁面的頂端。在設定 Amazon GameLift FleetIQ 遊戲伺服器群組時,您將需要這些資訊。

AWS CLI

這些步驟說明如何 GameLift使用 AWS CLI 建立具有 Amazon 受管政策的服務角色。

  1. 使用下列 JSON 語法建立信任原則檔案 (範例:FleetIQtrustpolicyGameLift.json)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "gamelift.amazonaws.com", "autoscaling.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  2. 使用 iam 建立角色建立新的 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 FleetIQ 遊戲伺服器群組時,您將需要這些資訊。

  3. 使用 iam 附 attach-role-policy加受管許可政策 "GameLiftGameServerGroupPolicy"。

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

    若要驗證是否已附加許可政策,請使 list-attached-role-policies用新角色的名稱呼叫 iam

此角色現在已準備就緒。您可以在將屬性設定為新角色的 ARN 值的情況下呼叫 gamelift create-game-server-group,以驗證 IAM 角色是否已正確role-arn設定。GameServerGroup進入作用中狀態時,表示 Amazon GameLift FleetIQ 能夠如預期修改帳戶中的 Amazon EC2 和 Auto Scaling 資源。

為 Amazon EC2 創建一個角色

此角色可讓您的 Amazon EC2 資源與 Amazon GameLift FleetIQ 進行通訊。例如,在 Amazon EC2 執行個體上執行的遊戲伺服器必須能夠報告運作狀態。在建立 Amazon GameLift FleetIQ 遊戲伺服器群組時,將此角色納入 IAM 執行個體設定檔中,並使用您的 Amazon EC2 啟動範本。

使用 AWS CLI 為 Amazon EC2 建立角色、附加具有必要許可的自訂政策,以及將角色附加到執行個體設定檔。如需詳細資訊,請參閱建立 AWS 服務的角色

AWS CLI

這些步驟說明如何建立具有 Amazon EC2 自訂 GameLift 權限的服務角色,使用 AWS CLI.

  1. 使用下列 JSON 語法建立信任原則檔案 (範例:FleetIQtrustpolicyEC2.json)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 使用 iam 建立角色建立新的 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 啟動範本時,您將需要這些資訊。

  3. 使用下列 JSON 語法建立權限原則檔案 (範例:FleetIQpermissionsEC2.json)。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "gamelift:*", "Resource": "*" } ] }
  4. 使用 iam put-role-policy 將您剛剛建立的權限原則 JSON 檔案附加到新角色。

    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用新角色的名稱呼叫 iam

  5. 使用 iam 建立具有新角色 create-instance-profile的執行個體設定檔,以便與 Amazon EC2 搭配使用。如需詳細資訊,請參閱管理執行個體描述檔

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

    要求成功時,回應會包含新建立的執行個體設定檔的屬性。

  6. 使用 iam add-role-to-instance-profile 將角色附加到實例配置文件。

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

角色和設定檔現在已準備好與 Amazon EC2 啟動範本搭配使用。