本文介紹如何配置訪問方式和授予許可權,以使用 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資來源詳細資料為例:
您可以登入Virtual Private Cloud控制台,查看VPC詳情。

程式調用
以下代碼展示了如何使用Java語言擷取Virtual Private Cloud資源的詳細資料。
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使用者授權時,應遵循最小許可權原則。
系統策略如下表所示:
許可權名稱 | 作用 | 適用範圍 |
具備管理雲控制API許可權。 |
| |
僅具備雲控制API的唯讀存取權限。 |
|
如果系統權限原則無法滿足您的需求,可以使用自訂策略以精微調權限管理。具體操作,請參見基本操作。