本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 IAM 角色以進行跨服務互動
為了讓 Amazon GameLift FleetIQ 能夠與您的 Amazon EC2 執行個體和 Auto Scaling 群組搭配使用,您必須允許這些服務彼此互動。這是透過在您的 AWS 帳戶中建立 IAM 角色並指派一組有限的許可來完成。每個角色也會指定哪些服務可以擔任該角色。
設定下列角色:
-
為 Amazon GameLift FleetIQ 群創建角色更新您的 Amazon EC2 資源。
-
為 Amazon EC2 創建一個角色資源與 Amazon GameLift FleetIQ 進行通信。
為 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。
-
開啟 IAM 主控台
,然後選擇 Roles: Create role (角色:建立角色)。 -
對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service ( 服務)。
-
對於 [選擇使用案例],請GameLift從服務清單中選擇。在 [選取您的使用案例] 下,會自動選取適當的 Amazon GameLift 使用案例。若要繼續,請選擇 Next: Permissions (後續許可)。
-
[附加權限原則] 清單應包含以下一個原則:GameLiftGameServerGroupPolicy 。若未顯示此政策,請檢查篩選條件,或使用搜尋功能將其新增至角色。您可以檢視政策的語法 (選擇 ▶ 圖示即可展開),但您無法變更語法。建立角色後,您可以更新角色並附加其他原則以新增或移除權限。
針對 Set permissions boundary (設定許可界限),保留預設設定 (建立沒有許可界限的角色)。這是非必要的進階設定。若要繼續,請選擇 Next: Tags (下一步:標籤)。
-
Add tags (新增標籤) 是資源管理的選用設定。例如,您可能想要將標籤新增至此角色,以依角色追蹤專案特定的資源使用情況。要查看有關 IAM 角色和其他用途標記的更多信息,請點擊進一步了解鏈接。若要繼續,請選擇 Next: Review (下一步:檢閱)。
-
在 Review (檢閱) 頁面上,視需要進行下列變更:
-
輸入角色名稱並選擇是否更新描述。
-
請確認下列內容:
-
受信任的實體設定為 [AWS 服務:遊戲機]。建立此角色後,則必須更新此值。
-
政策包括 GameLiftGameServerGroupPolicy。
-
若要完成此任務,請選擇 Create role (建立角色)。
-
-
建立新角色之後,您必須手動更新角色的信任關係。移至 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 受管政策的服務角色。
-
使用下列 JSON 語法建立信任原則檔案 (範例:
FleetIQtrustpolicyGameLift.json
)。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "gamelift.amazonaws.com", "autoscaling.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
使用 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 遊戲伺服器群組時,您將需要這些資訊。
-
使用 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.
-
使用下列 JSON 語法建立信任原則檔案 (範例:
FleetIQtrustpolicyEC2.json
)。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
使用 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 啟動範本時,您將需要這些資訊。
-
使用下列 JSON 語法建立權限原則檔案 (範例:
FleetIQpermissionsEC2.json
)。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "gamelift:*", "Resource": "*" } ] }
-
使用 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。
-
使用 iam 建立具有新角色 create-instance-profile的執行個體設定檔,以便與 Amazon EC2 搭配使用。如需詳細資訊,請參閱管理執行個體描述檔。
AWS iam create-instance-profile --instance-profile-name FleetIQ-role-for-EC2
要求成功時,回應會包含新建立的執行個體設定檔的屬性。
-
使用 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 啟動範本搭配使用。
-