本教程详细介绍如何使用Alibaba Cloud SDK for Java新建RAM用户并授权。
前提条件
在使用本教程前,请确保已完成以下操作:
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见阿里云开发工具包(SDK)。
<dependencies> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.3</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-ram --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-ram</artifactId> <version>2.0.7</version> </dependency> </dependencies>
代码示例
本文操作示例主要以代码形式体现,具体代码如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.ram.model.v20150501.*;
import com.google.gson.Gson;
/**
* 新建RAM用户,启用WEB控制台登录并绑定权限
*/
public class CreateRamUserDemo {
/**
* 新建RAM用户
*/
private CreateUserResponse createUser(CreateUserRequest request, IAcsClient client) throws ClientException {
return client.getAcsResponse(request);
}
/**
* 为一个RAM用户启用Web控制台登录
*/
private CreateLoginProfileResponse createLoginProfile(CreateLoginProfileRequest request, IAcsClient client) throws ClientException {
return client.getAcsResponse(request);
}
/**
* 为指定用户添加权限
*/
private AttachPolicyToUserResponse attachPolicyToUser(AttachPolicyToUserRequest request,IAcsClient client) throws ClientException {
return client.getAcsResponse(request);
}
private static void log_print(String functionName, Object result) {
Gson gson = new Gson();
System.out.println("-------------------------------" + functionName + "-------------------------------");
System.out.println(gson.toJson(result));
}
public static void main(String[] args) {
// 设置鉴权参数,初始化客户端
DefaultProfile profile = DefaultProfile.getProfile(
"cn-qingdao",// 地域ID
"your-access-key-id",// 您的AccessKey ID
"your-access-key-secret");// 您的AccessKey Secret
IAcsClient client = new DefaultAcsClient(profile);
CreateRamUserDemo createRamUserDemo = new CreateRamUserDemo();
try {
// 新建RAM用户
CreateUserRequest createUserRequest = new CreateUserRequest();
// 指定用户名
createUserRequest.setUserName("doctest");
// 显示名称
createUserRequest.setDisplayName("doc测试");
// 用户手机号
createUserRequest.setMobilePhone("1583773xxxx");
CreateUserResponse createUserResponse = createRamUserDemo.createUser(createUserRequest, client);
log_print("createUser",createUserResponse);
// 为新用户启用Web控制台登录
CreateLoginProfileRequest createLoginProfileRequest = new CreateLoginProfileRequest();
// 指定用户名
createLoginProfileRequest.setUserName("doctest");
// 指定密码,密码必须符合密码强度要求
createLoginProfileRequest.setPassword("87EFZdTs@$df");
CreateLoginProfileResponse createLoginProfileResponse = createRamUserDemo.createLoginProfile(createLoginProfileRequest, client);
log_print("createLoginProfile",createLoginProfileResponse);
// 为新用户添加权限
AttachPolicyToUserRequest attachPolicyToUserRequest = new AttachPolicyToUserRequest();
// 指定权限策略的类型, 取值为:System或Custom
attachPolicyToUserRequest.setPolicyType("System");
// 指定权限策略名称,AdministratorAccess:管理所有阿里云资源权限
attachPolicyToUserRequest.setPolicyName("AdministratorAccess");
// 指定用户名
attachPolicyToUserRequest.setUserName("doctest");
AttachPolicyToUserResponse attachPolicyToUserResponse = createRamUserDemo.attachPolicyToUser(attachPolicyToUserRequest, client);
log_print("attachPolicyToUser",attachPolicyToUserResponse);
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
}
运行结果
正确运行结果类似如下:
-------------------------------createUser-------------------------------
{
"User": {
"Comments": "",
"Email": "",
"UserName": "doctest",
"UserId": "22930857069752xxxx",
"MobilePhone": "86-1583773xxxx",
"DisplayName": "doc测试",
"CreateDate": "2019-10-10T08:52:04Z"
},
"RequestId": "D5F7497E-C6AA-4C62-BD61-F9FA2279998E"
}
-------------------------------createLoginProfile-------------------------------
{
"RequestId": "D1AD4033-5986-4EEE-89E4-DF821169FCC2",
"LoginProfile": {
"PasswordResetRequired": false,
"MFABindRequired": false,
"UserName": "doctest",
"CreateDate": "2019-10-10T08:52:04Z"
}
}
-------------------------------attachPolicyToUser-------------------------------
{
"RequestId": "60B4077D-B8B9-447F-88BF-E48E4443B715"
}