您可以通过API创建、授权实例RAM角色,并将其授予实例。
前提条件
请确保您已经开通RAM服务,详情请参见RAM文档计费方法。
背景信息
使用限制如下:
- 只有专有网络(VPC)网络类型的ECS实例才能使用实例RAM角色。
- 一个ECS实例一次只能授予一个实例RAM角色。
- 当您给ECS实例授予了实例RAM角色后,并希望在ECS实例内部部署的应用程序中访问云产品的API时,您需要通过实例元数据获取实例RAM角色的临时授权Token。详情请参见获取临时授权Token。
- 如果您是通过RAM用户使用实例RAM角色,您需要通过阿里云账号授权RAM用户使用实例RAM角色。具体操作,请参见授权RAM用户使用实例RAM角色。
操作步骤
通过API使用实例RAM角色的操作步骤如下:
步骤一:创建实例RAM角色
调用CreateRole接口创建实例RAM角色。
设置RoleName参数,例如将其值置为EcsRamRoleDocumentTesting。
按如下策略设置参数
AssumeRolePolicyDocument:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }
步骤二:授权实例RAM角色
步骤三:授予实例RAM角色
调用AttachInstanceRamRole接口为实例授予RAM角色。
设置如下参数:
- 设置RegionId及InstanceIds参数指定一个ECS实例。
- 设置RamRoleName参数,例如EcsRamRoleDocumentTesting。
步骤四:(可选)收回实例RAM角色
调用DetachInstanceRamRole接口收回实例RAM角色。
设置如下参数:
- 设置RegionId及InstanceIds参数指定一个ECS实例。
- 设置RamRoleName参数,例如EcsRamRoleDocumentTesting。
步骤五:(可选)获取临时授权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" }
步骤六:(可选)授权RAM用户使用实例RAM角色
说明 当您授权RAM用户使用实例RAM角色时,您必须授权RAM用户对该实例RAM角色的
PassRole权限。其中,
PassRole决定该RAM用户能否直接执行角色策略赋予的权限。