本文在介紹開通 RAM 服務之後如何透過 API 使用實例 RAM 角色的基礎上,重點探討了其操作步驟。
透過API 使用實例RAM 角色
使用限制
#使用實例RAM 角色存在以下限制:
只有專有網路(VPC) 網路類型的ECS 實例才能使用實例RAM 角色。
一個 ECS 實例一次只能授予一個實例 RAM 角色。
當您給ECS 實例授予了實例RAM 角色後,並希望在ECS 實例內部部署的應用程式中存取雲端產品的API 時,您需要透過實例元資料來取得實例RAM 角色的臨時授權Token 。請參閱 5. (可選)取得臨時授權 Token。
如果您是透過 RAM 使用者子帳號使用實例 RAM 角色,您需要透過雲端帳號 6. (可選)授權 RAM 使用者使用實例 RAM 角色。
前提條件
您已經開啟 RAM 服務,參閱 RAM 文件 開通方法 開通 RAM 服務。
1. 建立實例 RAM 角色
#呼叫介面 CreateRole 建立實例 RAM 角色。
設定 RoleName 參數,例如將其值置為 EcsRamRoleDocumentTesting。
如下策略設定 AssumeRolePolicyDocument:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }
2. 授權實例 RAM 角色
##呼叫介面 CreatePolicy 新授權原則。 設定 RoleName 參數,例如將其值置為 EcsRamRoleDocumentTestingPolicy。 如下原則設定 PolicyDocument:{ "Statement": [ { "Action": [ "oss:Get*", "oss:List*" ], "Effect": "Allow", "Resource": "*" } ], "Version": "1" }呼叫介面 AttachPolicyToRole 授權角色原則。 設定 PolicyType 參數為 Custom。 設定 PolicyName 參數,如 EcsRamRoleDocumentTestingPolicy。 設定 RoleName 參數,如 EcsRamRoleDocumentTesting。
3. 授予實例 RAM 角色
#呼叫介面 AttachInstanceRamRole 為實例授予 RAM 角色。 設定 RegionId 及 InstanceIds 參數指定一個 ECS 實例。 設定 RamRoleName 參數,如 EcsRamRoleDocumentTesting。4. (可選)收回實例 RAM 角色
#呼叫介面 DetachInstanceRamRole 收回實例 RAM 角色。 設定 RegionId 及 InstanceIds 參數指定一個 ECS 實例。 設定 RamRoleName 參數,如 EcsRamRoleDocumentTesting。5.(可選)取得臨時授權Token
#您可以取得實例RAM 角色的臨時授權Token,該臨時授權Token 可以執行實例RAM 角色的權限和資源,並且該臨時授權Token 會自動週期性地更新。範例: 擷取名為EcsRamRoleDocumentTesting 的實例RAM 角色的臨時授權Token:Linux 實例:執行指令 curl http://100.100.100.200/latest/meta-data/Ram/security -credentials/EcsRamRoleDocumentTesting 。 Windows 實例:參閱文件 實例元資料。 獲得臨時授權 Token。傳回範例如下:{ "AccessKeyId" : "XXXXXXXXX", "AccessKeySecret" : "XXXXXXXXX", "Expiration" : "2017-11-01T05:20:01Z", "SecurityToken" : "XXXXXXXXX", "LastUpdated" : "2017-10-31T23:20:01Z", "Code" : "Success" }
6.(可選)授權 RAM 使用者使用實例RAM 角色
說明當您授權RAM 使用者使用實例RAM 角色時,您必須授權RAM 使用者對該實例RAM 角色的PassRole 權限。其中,PassRole 決定該 RAM 使用者能否直接執行角色策略賦予的權限。 登入 RAM 控制台,參閱文件 為 RAM 使用者授權 完成授權,如下所示:{ "Version": "2016-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs: [ECS RAM Action]", "ecs: CreateInstance", "ecs: AttachInstanceRamRole", "ecs: DetachInstanceRAMRole" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "*" } ] }
以上是開通 RAM 服務之後如何透過 API 使用實例 RAM 角色的詳細內容。更多資訊請關注PHP中文網其他相關文章!