本教程详细介绍如何使用Alibaba Cloud SDK for Java修改RDS实例白名单(并确认修改结果)。
前提条件
在使用本教程之前,请确保已完成以下操作:
- 使用RDS管理控制台或通过API获取到想要查看日志的RDS实例ID,API的相关操作,请参见DescribeDBInstances。
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)。
<project> <modelVersion>4.0.0</modelVersion> <groupId>java.demo</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <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-rds --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-rds</artifactId> <version>2.3.9</version> </dependency> </dependencies> </project>
操作示例
import java.util.List;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.rds.model.v20140815.*;
import com.aliyuncs.rds.model.v20140815.DescribeDBInstanceIPArrayListResponse.DBInstanceIPArray;
import com.google.gson.Gson;
/**
* ModifySecurityIps 修改白名单
* DescribeDBInstanceIPArrayList 查看RDS实例IP白名单
*/
public class TestModifySecurityIps {
// 实例ID请根据您的实际情况进行配置。
private static String dBInstanceId = "rm-bp131g4xxxxxxx";
public static void main(String[] args) {
IAcsClient client = Initialization();
// ModifySecurityIps 修改白名单。
ModifySecurityIps(client, dBInstanceId);
// DescribeDBInstanceIPArrayList 查看RDS实例IP白名单。
List<DBInstanceIPArray> instanceIPArrayList = DescribeDBInstanceIPArrayList(client, dBInstanceId);
System.out.println("--------------------现白名单配置如下--------------------");
System.out.println(new Gson().toJson(instanceIPArrayList));
}
private static IAcsClient Initialization() {
// 初始化请求参数。
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>",// 地域ID
"<your-access-key-id>",// 您的AccessKey ID
"<your-access-key-secret>");// 您的AccessKey Secret
return new DefaultAcsClient(profile);
}
/**
* ModifySecurityIps 修改白名单
*/
public static void ModifySecurityIps(IAcsClient client, String id) {
ModifySecurityIpsRequest request = new ModifySecurityIpsRequest();
// 实例ID。
request.setDBInstanceId(id);
// 该实例的IP白名单,多个IP地址请以英文逗号(,)隔开,不可重复,最多1000个。支持如下两种格式:
// IP地址形式,例如:10.23.12.24。
// CIDR形式,例如:10.23.12.24/24(无类域间路由,24表示了地址中前缀的长度,范围为1~32)。
request.setSecurityIps("10.23.12.24");
// 修改方式,取值:
// Cover:覆盖原IP白名单;
// Append:追加IP;
// Delete:删除IP。
// 默认值:Cover。
request.setModifyMode("Cover");
try {
ModifySecurityIpsResponse response = client.getAcsResponse(request);
System.out.println("--------------------修改实例白名单成功--------------------");
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
/**
* DescribeDBInstanceIPArrayList 查看RDS实例IP白名单
*/
public static List<DBInstanceIPArray> DescribeDBInstanceIPArrayList(IAcsClient client, String id) {
DescribeDBInstanceIPArrayListRequest request = new DescribeDBInstanceIPArrayListRequest();
request.setDBInstanceId(id);
try {
DescribeDBInstanceIPArrayListResponse response = client.getAcsResponse(request);
return response.getItems();
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
return null;
}
}
执行结果
正确的返回结果类似如下:
--------------------修改实例白名单成功--------------------
{
"requestId": "830DA391-0995-45F8-8885-729AD7DB3DEF",
"taskId": "198620275"
}
--------------------现白名单配置如下--------------------
[
{
"dBInstanceIPArrayName": "default",
"dBInstanceIPArrayAttribute": "",
"securityIPType": "IPv4",
"securityIPList": "10.23.12.24",
"whitelistNetworkType": "MIX"
},
{
"dBInstanceIPArrayName": "hdm_security_ips",
"dBInstanceIPArrayAttribute": "",
"securityIPType": "IPv4",
"securityIPList": "10.23.12.24,10.33.12.24",
"whitelistNetworkType": "MIX"
}
]
在文档使用中是否遇到以下问题
更多建议
匿名提交