RAM用户管理

本文介绍如何配置访问方式和授予权限,以使用 RAM 用户调用云控制 API。合理管理 RAM 用户可降低安全风险并支持多用户协作。

说明

RAM用户是指RAM账号,是RAM的一种实体身份类型。您可以为阿里云账号(主账号)创建RAM用户并进行权限授权,以实现不同RAM用户对资源的差异化访问权限。当您的企业存在多个用户需协同访问资源的场景时,您可以创建多个RAM用户,并按需分配最小权限,这样可以避免多用户共享阿里云账号(主账号)密码或访问密钥(AccessKey),从而降低企业的安全风险。

配置访问方式

调用云控制 API 有两种主要方式:控制台调用及OpenAPI调用。RAM 用户在调用时需要具备对应的访问方式,具体对应关系如下:

RAM用户类型

RAM用户访问方式

云控制API调用方式

适用场景

人员账号

控制台访问

控制台调用

控制台界面操作

应用程序

OpenAPI调用访问

OpenAPI调用

程序调用

说明

如果RAM用户代表人员,建议启用控制台访问。如果RAM用户代表应用程序,则可以使用永久访问密钥(AccessKey)调用OpenAPI以访问阿里云。

您可以在创建RAM用户时选择访问方式,也可以修改已有RAM用户的访问方式。

控制台界面操作

以获取VPC资源详细信息为例:

您可以登录专有网络VPC控制台,查看VPC详情。

image

程序调用

以下代码展示了如何使用Java语言获取专有网络VPC资源的详细信息。

package com.aliyun.sample;
import com.aliyun.tea.*;

/*<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>cloudcontrol20220830</artifactId>
  <version>1.1.1</version>
</dependency>*/

public class Sample {

    public static com.aliyun.cloudcontrol20220830.Client createClient() throws Exception {
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                 // System.getenv()表示从环境变量获取AccessKey
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));        
        config.endpoint = "cloudcontrol.aliyuncs.com";
        return new com.aliyun.cloudcontrol20220830.Client(config);
    }
    public static void main(String[] args_) throws Exception {
        
        com.aliyun.cloudcontrol20220830.Client client = Sample.createClient();
        String requestPath = "/api/v1/providers/Aliyun/products/VPC/resources/VPC/vpc-m5e6l4XXXXXXXX";
        com.aliyun.cloudcontrol20220830.models.GetResourcesRequest getResourcesRequest = new com.aliyun.cloudcontrol20220830.models.GetResourcesRequest()
                .setRegionId("cn-qingdao");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        java.util.Map<String, String> headers = new java.util.HashMap<>();
        try {
            GetResourcesResponse getResourcesResponse = client.getResourcesWithOptions(requestPath, getResourcesRequest, headers, runtime);
            System.out.println(new Gson().toJson(getResourcesResponse.getBody()));
        } catch (TeaException error) {
            // 错误 message
            System.out.println(error.getMessage());
            // 诊断地址
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 错误 message
            System.out.println(error.getMessage());
            // 诊断地址
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }
}

响应结果:

{
  "resource": {
    "resourceId": "vpc-m5e6l4XXXXXXXX",
    "resourceAttributes": {
      "IsDefault": false,
      "Status": "Available",
      "Description": "",
      "ResourceGroupId": "rg-acfmyXXXXXXXX",
      "SecondaryCidrBlocks": [],
      "VSwitchIds": [
        "vsw-m5emwh9XXXXXXXX",
        "vsw-m5e7uotXXXXXXXX"
      ],
      "CreateTime": "2025-03-26T07:27:25Z",
      "CidrBlock": "1XX.XXX.X.X/XX",
      "RouterId": "vrt-m5e65XXXXXXXX",
      "UserCidrs": [],
      "VpcId": "vpc-m5e6lXXXXXXXX",
      "VpcName": "caf-qingdao-vpc",
      "RegionId": "cn-qingdao",
      "Ipv6CidrBlock": "",
      "Ipv6CidrBlocks": [
        {
          "Ipv6CidrBlock": ""
        }
      ],
      "Tags": [
        {
          "TagKey": "acs:XXXXXXXX",
          "TagValue": "sub:XXXXXXXX"
        }
      ]
    }
  },
  "requestId": "DDEF766D-C25E-51A8-9DF7-1AAF437B8260"
}

授予权限

RAM用户调用云控制API需要权限,您可以根据需求RAM用户授权。权限策略分为系统策略与自定义策略。

重要

RAM用户授权时,应遵循最小权限原则。

系统策略如下表所示:

权限名称

作用

适用范围

AliyunCloudControlAPIFullAccess

具备管理云控制API权限。

  • 适用于所有云控制API资源。

AliyunCloudControlAPIReadOnlyAccess

仅具备云控制API的只读访问权限。

  • 适用于只读所有云控制API资源。

如果系统权限策略无法满足您的需求,可以使用自定义策略以精细化权限管理。具体操作,请参见自定义权限策略

相关文档