1. 云计算教程网首页
  2. 阿里云

通过API使用实例RAM角色

您可以通过API创建、授权实例RAM角色,并将其授予实例。

使用限制

  • 只有专有网络(VPC)网络类型的ECS实例才能使用实例RAM角色。
  • 一个ECS实例一次只能授予一个实例RAM角色。
  • 当您给ECS实例授予了实例RAM角色后,并希望在ECS实例内部部署的应用程序中访问云产品的API时,您需要通过实例元数据获取实例RAM角色的临时授权Token。参见获取临时授权Token。
  • 如果您是通过RAM用户子账号使用实例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. 调用接口DettachInstanceRamRole收回实例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用户的权限,请参见鉴权规则。

相关文档

  • 您也可以通过控制台使用实例RAM角色。
  • 您也许想借助于实例RAM角色访问其他云产品。
  • 实例RAM角色相关的API接口包括:
    • 创建RAM角色:CreateRole
    • 查询RAM角色列表:ListRoles
    • 新建RAM角色策略:CreatePolicy
    • 授权RAM角色策略:AttachPolicyToRole
    • 授予实例RAM角色:AttachInstanceRamRole
    • 收回实例RAM角色:DettachInstanceRamRole
    • 查询实例RAM角色:DescribeInstanceRamRole

发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/2321.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code