开发者社区 问答 正文

AttachInstanceRamRole



描述


附加实例 RAM 角色到实例上,实时生效。如果实例已有 RAM 角色,则报错提示用户不能附加新的角色。

请求参数

名称类型是否必须描述
ActionString系统规定参数,取值:AttachInstanceRamRole。
RegionIdString地域 ID。Region ID 的列表详见 地域列表
InstanceIdsArray实例 ID 集,最多 100 个实例,[“instanceId1”, “instanceId2”, “instanceId3”…]。
RamRoleNameString实例 RAM 角色名称,名称由 RAM 提供和维护,使用 RAM 的 ListRoles 接口查询。


返回参数


全是公共返回参数,详见 公共参数

错误码

错误代码描述HTTP 状态码语义
InvalidInstanceIds.MalformedThe specified InstanceIds is not valid.400指定的 InstanceIds 不合法。
MissingParameter.InstanceIdsThe input parameter InstanceIds that is mandatory for processing this request is missing.400缺少必填参数 InstanceIds。
MissingParameter.RamRoleNameThe input parameter RamRoleName that is mandatory for processing this request is missing.400缺少必填参数 RamRoleName。
MissingParameter.RegionIdThe input parameter RegionId that is mandatory for processing this request is missing.400缺少必填参数 RegionId。
InvalidNetworkType.MismatchRamRoleRam role cannot be attached to instances of Classic network type.403实例 RAM 角色不能被用于经典网络。
InvalidUser.PassRoleForbiddenThe RAM user does not have the privilege to pass a role.403RAM 用户不具有 PassRole 的权限。
InvalidInstanceId.NotFoundThe specified InstanceId does not exist.404指定的实例 ID 不存在。
InvalidRamRole.NotFoundThe specified RamRoleName does not exist.404指定的 RamRoleName 不存在。


示例



请求示例


https://ecs.aliyuncs.com/?Action=AttachInstanceRamRole
&RegionId=cn-hangzhou
&RamRoleName=RamRoleTest
&InstanceIds=["i-instance1"]
&<公共请求参数>
返回示例

XML 示例
<AttachInstanceRamRoleResponse>
    <RequestId>E6352369-5C2B-41CD-AB50-471550C8F674</RequestId>
    <AttachInstanceRamRoleResults>
        <AttachInstanceRamRoleResult>
             <InstanceId>i-instance1</InstanceId>
             <Code>200</Code>
             <Message>success</Message>
        </AttachInstanceRamRoleResult>
    </AttachInstanceRamRoleResults>
    <TotalCount>1</TotalCount>
    <FailCount>0</FailCount>
    <RamRoleName>RamRoleTest</RamRoleName>
</AttachInstanceRamRoleResponse>
JSON 示例
{
    "RequestId": "D9553E4C-6C3A-4D66-AE79-9835AF705639",
    "AttachInstanceRamRoleResults": {
        "AttachInstanceRamRoleResult": [
            {
                "Message": "success",
                "InstanceId": "i-instance1",
                "Code": "200"
            }
        ]
    },
    "TotalCount": 1,
    "FailCount": 0,
    "RamRoleName": "RamRoleTest"
}


展开
收起
boxti 2017-10-19 15:02:34 2347 分享
分享
版权
举报
阿里云 AI 助理回答

该描述是关于阿里云ECS(Elastic Compute Service,弹性计算服务)中通过API操作“AttachInstanceRamRole”来给实例附加RAM角色的使用说明。下面是对这一操作的详细解析:

操作概述

AttachInstanceRamRole API允许用户将一个RAM(Resource Access Management,资源访问管理)角色附加到指定的ECS实例上。一旦附加成功,该ECS实例就可以基于这个RAM角色的权限去访问其他阿里云服务,而无需在实例上直接管理密钥对或凭证,提高了安全性与便利性。需要注意的是,如果实例已经绑定了一个RAM角色,则不能再附加新的角色,系统会报错提示。

请求参数

  1. Action: 必须参数,固定值为AttachInstanceRamRole,表示执行的操作类型。
  2. RegionId: 必须参数,指定操作的地域ID,可以从阿里云提供的地域列表中查询。
  3. InstanceIds: 必须参数,类型为数组,包含最多100个要附加RAM角色的ECS实例ID。
  4. RamRoleName: 必须参数,指定要附加到实例上的RAM角色名称。可以通过RAM的ListRoles接口获取角色名称列表。

返回参数

返回参数均为公共参数,具体可参考阿里云API文档中的公共参数部分。

错误码

列举了一些可能遇到的错误代码及其描述,例如: - InvalidInstanceIds.Malformed: 实例ID格式不正确。 - MissingParameter.InstanceIds: 缺少必需的InstanceIds参数。 - InvalidNetworkType.MismatchRamRole: 经典网络类型的实例不能附加RAM角色。 - InvalidUser.PassRoleForbidden: RAM用户没有PassRole权限。

示例请求

提供了一个请求示例的URL格式,实际调用时需要替换?Action=AttachInstanceRamRole后面的部分为具体的请求参数,通常这些参数会通过HTTP POST请求的Body传递,并且需要进行URL编码和签名处理,以符合阿里云API调用的安全要求。

注意事项

  • 在使用此API之前,确保你有足够的权限,特别是PassRole权限,这是让实例能够扮演指定角色所必需的。
  • 实例必须是VPC网络类型,经典网络实例不支持附加RAM角色。
  • 请确保提供的RAM角色名称存在并且正确无误。
  • 考虑到安全性和最佳实践,建议通过阿里云SDK或者CLI工具来调用API,这些工具可以自动处理签名、编码等细节问题,减少手动出错的可能性。
有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等