使用限制

使用執行個體 RAM 角色存在如下限制:

  • 只有專有網路 (VPC) 網路類型的 ECS 執行個體才能使用執行個體 RAM 角色。
  • 一個 ECS 執行個體一次只能授予一個執行個體 RAM 角色。
  • 當您給 ECS 執行個體授予了執行個體 RAM 角色後,並希望在 ECS 執行個體內部部署的應用程式中訪問雲產品的 API 時,您需要通過 執行個體元資料 獲取執行個體 RAM 角色的臨時授權 Token。參閱 5. (可選)獲取臨時授權 Token
  • 如果您是通過 RAM 使用者子帳號使用執行個體 RAM 角色,您需要通過雲帳號 6. (可選)授權 RAM 使用者使用執行個體 RAM 角色

前提條件

您已經開通 RAM 服務,參閱 RAM 文檔開通 RAM 服務 開通 RAM 服務。

1. 建立執行個體 RAM 角色

  1. 調用介面CreateRole 建立執行個體 RAM 角色。
  2. 設定 RoleName 參數,如將其值置為 EcsRamRoleDocumentTesting。
  3. 按如下原則設定 AssumeRolePolicyDocument
    
    {
    "Statement": [
    {
    "Action": "sts:AssumeRole",
    "Effect": "Allow",
    "Principal": {
    "Service": [
    "ecs.aliyuncs.com"
    ]
    }
    }
    ],
    "Version": "1"
    }

2. 授權執行個體 RAM 角色

  1. 調用介面CreatePolicy 新建授權策略。
  2. 設定 RoleName 參數,如將其值置為 EcsRamRoleDocumentTestingPolicy。
  3. 按如下原則設定 PolicyDocument
    
    {
    "Statement": [
    {
    "Action": [
    "oss:Get*",
    "oss:List*"
    ],
    "Effect": "Allow",
    "Resource": "*"
    }
    ],
    "Version": "1"
    }
  4. 調用介面 AttachPolicyToRole授權角色策略。
  5. 設定 PolicyType 參數為 Custom。
  6. 設定 PolicyName 參數,如 EcsRamRoleDocumentTestingPolicy。
  7. 設定 RoleName 參數,如 EcsRamRoleDocumentTesting。

3. 授予執行個體 RAM 角色

  1. 調用介面 AttachInstanceRamRole 為執行個體授予 RAM 角色。
  2. 設定 RegionIdInstanceIds 參數指定一個 ECS 執行個體。
  3. 設定 RamRoleName 參數,如 EcsRamRoleDocumentTesting。

4. (可選)收回執行個體 RAM 角色

  1. 調用介面 DetachInstanceRamRole 收回執行個體 RAM 角色。
  2. 設定 RegionIdInstanceIds 參數指定一個 ECS 執行個體。
  3. 設定 RamRoleName 參數,如 EcsRamRoleDocumentTesting。

5. (可選)獲取臨時授權 Token

您可以獲得執行個體 RAM 角色的臨時授權 Token,該臨時授權 Token 可以執行執行個體 RAM 角色的許可權和資源,並且該臨時授權 Token 會自動周期性地更新。樣本:

  1. 檢索名為 EcsRamRoleDocumentTesting 的執行個體 RAM 角色的臨時授權 Token:
    • Linux 執行個體: 執行命令 curl http://100.100.100.200/latest/meta-data/Ram/security-credentials/EcsRamRoleDocumentTesting
    • Windows 執行個體:參閱文檔 執行個體元資料
  2. 獲得臨時授權 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": "*"
}
]
}

其中,[ECS RAM Action] 表示可授權 RAM 使用者的許可權,請參閱 鑒權規則

參考連結