云服务白名单添加

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 云服务白名单添加

1、SLB(Server Load Balancing) 负载均衡

1.1、官方实例

根据官方实例,我们所需要使用到的参数有

accessKeyId (必选): key

accessKeySecret(必选): keySecret

endpoint(必选): 地域节点

RegionId(必选): 访问控制策略组的地域ID。

AclId(必选): 访问控制策略组ID。

AclEntrys: 设置访问控制策略组。

  • entry:访问控制策略组中要添加的IP条目,可以指定IP地址段(CIDR block),多个IP地址段之间用逗号隔开。
  • comment:访问控制策略组备注说明。
public class Sample {

    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.slb20140515.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                .setAccessKeyId(accessKeyId)// 您的 AccessKey ID
                .setAccessKeySecret(accessKeySecret);// 您的 AccessKey Secret
        
        config.endpoint = "slb.cn-zhangjiakou.aliyuncs.com";// 访问的域名
        return new com.aliyun.slb20140515.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.slb20140515.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
        AddAccessControlListEntryRequest addAccessControlListEntryRequest = new AddAccessControlListEntryRequest();
        RuntimeOptions runtime = new RuntimeOptions();
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.addAccessControlListEntryWithOptions(addAccessControlListEntryRequest, runtime); 
        } catch (TeaException error) {
            com.aliyun.teautil.Common.assertAsString(error.message); // 如有需要,请打印 error
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            com.aliyun.teautil.Common.assertAsString(error.message); // 如有需要,请打印 error
        }        
    }
}

1.2、具体实现

properties文件
@Getter
@Setter
@ConfigurationProperties(SLB_AUTHORIZE_STRATEGY_GROUP)
public class AliyunAuthorizeStrategyGroupProperties {

    private ConfigEntity devResource;

    @Getter
    @Setter
    public static class ConfigEntity {

        private List<ObjectEntity> strategyGroupList;

        @Getter
        @Setter
        public static class ObjectEntity {

            /**
             * regionId
             */
            private String regionId;

            /**
             * endpoint 如果是VPC调用应当使用内网endpoint
             */
            private String endpoint;

            /**
             * SLB实例id
             */
            private String aclId;

        }

    }

}
具体实现
@Slf4j
@RequiredArgsConstructor
@Service(SLB_STRATEGY_GROUP_RELEASE_SERVICE_NAME)
public class SlbIpReleaseStrategyImpl implements IpReleaseStrategy {

    private static final String IP_SUFFIX = "/32";
    private final AliyunRamBossAccountProperties aliyunRamBossAccountProperties;
    private final AliyunAuthorizeStrategyGroupProperties aliyunAuthorizeStrategyGroupProperties;

    @Override
    public void ipRelease(AddIpRequest request) {
        List<AliyunAuthorizeStrategyGroupProperties.ConfigEntity.ObjectEntity> strategyGroupList = aliyunAuthorizeStrategyGroupProperties.getDevResource().getStrategyGroupList();
        //region 配制 列表非空判断
        if (strategyGroupList.isEmpty()) {
            return;
        }
        //endregion
        strategyGroupList.forEach(strategyGroup -> {
            try {
                Client client = getSlbClient(strategyGroup.getEndpoint(), strategyGroup.getRegionId());
                //region 参数添加
                String formatEbtrys = String.format("[{\"entry\":\"%s\",\"comment\":\"%s\"}]", request.getIp() + IP_SUFFIX, request.getDescription());
                AddAccessControlListEntryRequest addAccessControlListEntryRequest = new AddAccessControlListEntryRequest()
                        .setRegionId(strategyGroup.getRegionId())
                        .setAclId(strategyGroup.getAclId())
                        .setAclEntrys(formatEbtrys);
                //endregionc

                RuntimeOptions runtime = new RuntimeOptions();
                client.addAccessControlListEntryWithOptions(addAccessControlListEntryRequest, runtime);
            } catch (TeaException error) {
                log.error(error.message);
            } catch (Exception errorInfo) {
                TeaException error = new TeaException(errorInfo.getMessage(), errorInfo);
                log.error(error.message);
            }
        });
    }

    /**
     * 初始化账号Client
     *
     * @param endpoint
     * @return {@link  Client} Client对象
     */
    private Client getSlbClient(String endpoint, String regionId) throws Exception {
        Config config = new Config()
                .setAccessKeyId(aliyunRamBossAccountProperties.getAliyun().getAccess())
                .setAccessKeySecret(aliyunRamBossAccountProperties.getAliyun().getSecret());
        config.endpoint = endpoint;
        config.regionId = regionId;
        config.readTimeout = 10000;
        return new Client(config);
    }

}

2、RDS(Relational Database Service)关系型数据库服务

2.1、官方实例

根据官方实例,我们所需要使用到的参数有

accessKeyId(必选): key

accessKeySecret(必选): keySecret

endpoint(必选): 地域节点

DBInstanceId(必选) : 实例id

SecurityIps(必选): 该实例的IP白名单,多个IP地址请以英文逗号(,)隔开,不可重复。

  • IP地址形式,例如:10.23.XXXX。
  • CIDR形式,例如:10.23.XXXX/24(无类域间略由,24表示了地址中前缀的长度,范围为1~32)。

DBInstanceIPArrayName: 需要修改的IP白名单分组名称,默认操作“Default”分组。

DBInstanceIPArrayAttribute: 白名单分组属性,默认为空。

SecurityIPType: IP地址类型。 暂不支持IPv6,取值固定为IPv4。

WhitelistNetworkType:白名单的网络类型,取值:(默认MIX)

  • Classic:高安全白名单模式下的经典网络
  • VPC:高安全白名单模式下的专有网络
  • MIX:通用模式

ModifyMode: 修改方式,取值:(默认Cover)

  • Cover:使用SecurityIps参数的值覆盖原IP白名单。
  • Append:在原IP白名单中增加。
  • Delete:在原IP白名单中删除SecurityIps参数中输入的IP地址。至少需要保留一个IP地址。

FreshWhiteListReadins: 表示白名单同步到只读实例清单。

  • 该参数仅适用于RDS PostgreSQL实例。
  • 如果当前实例包含只读实例,可以通过此参数配置白名单同步,将主实例的白名单同步至指定的只读实例。当有多个只读实例时,用逗号(,)分隔。
  • 如果当前实例没有只读实例,此参数为空。
public class Sample {

    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.rds20140815.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                .setAccessKeyId(accessKeyId) // 您的 AccessKey ID
                .setAccessKeySecret(accessKeySecret);// 您的 AccessKey Secret
        
        config.endpoint = "rds.aliyuncs.com";// 访问的域名
        return new com.aliyun.rds20140815.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.rds20140815.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
        ModifySecurityIpsRequest modifySecurityIpsRequest = new ModifySecurityIpsRequest();
        RuntimeOptions runtime = new RuntimeOptions()
                // 超时设置,该产品部分接口调用比较慢,请您适当调整超时时间。
                .setReadTimeout(50000)
                .setConnectTimeout(50000);
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.modifySecurityIpsWithOptions(modifySecurityIpsRequest, runtime);
        } catch (TeaException error) {
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }
}

3、Redis 云服务

3.1、官方实例

根据官方实例,我们所需要使用到的参数有

accessKeyId(必选): key

accessKeySecret(必选): keySecret

endpoint(必选): 地域节点

InstanceId(必选) : 实例id

SecurityIps(必选): IP白名单分组下的IP列表,最多1000个。

  • IP之间以逗号隔开,格式如下:0.0.0.0/0,10.23.12.24,或者10.23.12.24/24。
  • CIDR模式,无类域间路由,/24表示地址中前缀的长度,范围1-32

SecurityIpGroupName: IP白名单分组的名称。

SecurityIpGroupAttribute: 默认为空。用于区分不同的属性值,控制台将不显示该值为hidden的白名单分组。

ModifyMode: 修改方式,取值:

  • Cover:覆盖原白名单。
  • Append:追加白名单。
  • Delete:删除该白名单。
public class Sample {

    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.r_kvstore20150101.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                .setAccessKeyId(accessKeyId) // 您的 AccessKey ID
                .setAccessKeySecret(accessKeySecret);// 您的 AccessKey Secret
        
        config.endpoint = "r-kvstore.aliyuncs.com";// 访问的域名
        return new com.aliyun.r_kvstore20150101.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.r_kvstore20150101.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
        ModifySecurityIpsRequest modifySecurityIpsRequest = new ModifySecurityIpsRequest();
        RuntimeOptions runtime = new RuntimeOptions();
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.modifySecurityIpsWithOptions(modifySecurityIpsRequest, runtime);
        } catch (TeaException error) {
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // 如有需要,请打印 error
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }
}
相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
2月前
|
弹性计算 网络协议 网络安全
内网DNS解析&VPN网关联动实现云上访问云下资源
内网DNS解析&VPN网关联动实现云上访问云下资源
|
2月前
|
监控 安全 BI
阿里云国际跨账号迁移CDN域名操作步骤
阿里云国际跨账号迁移CDN域名操作步骤
|
2月前
|
算法 网络安全
阿里云国际设置黑白名单(针对高防实例IP)
阿里云国际设置黑白名单(针对高防实例IP)
|
6月前
|
弹性计算 安全 Shell
阿里云ECS安全加固:从访问控制到数据保护的全方位策略
【6月更文挑战第29天】阿里云ECS安全聚焦访问控制、系统加固及数据保护。安全组限定IP和端口访问,密钥对增强SSH登录安全;定期更新补丁,使用防病毒工具;数据备份与加密确保数据安全。多维度策略保障业务安全。
174 15
|
7月前
|
弹性计算 安全 Shell
【阿里云弹性计算】阿里云ECS安全加固:从访问控制到数据保护的全方位策略
【5月更文挑战第22天】本文详述了阿里云ECS的安全加固策略,包括访问控制(如安全组设置和密钥对管理)、系统安全加固(如安全补丁更新和防病毒措施)以及数据保护(如数据备份、恢复和加密)。通过这些措施,用户可增强ECS安全性,保障业务安全稳定运行。
152 0
|
7月前
|
运维 监控 安全
堡垒机是什么:如何帮助企业提高网络安全防护
堡垒机是什么:如何帮助企业提高网络安全防护
|
7月前
|
存储 安全 数据安全/隐私保护
云堡垒机的使用场景解读
云堡垒机作为新兴网络安全产品,部分使用场景大家并不了解,下面给大家详细解读一下。
187 0
|
存储 域名解析 弹性计算
阿里云VPC内网DNS日志正式接入SLS日志审计服务
内网DNS日志(Intranet DNS Log) 记录了指定阿里云uid下所有VPC网络内终端产生的DNS域名解析请求和应答,终端请求的这些域名既包含了配置在PrivateZone上的内网权威域名,也包含了外部公网域名。为了满足用户可以快速、简单实现多账号、多地域场景下内网DNS日志的采集、管理、中心化查询分析等需求,DNS与SLS联合开发,在SLS日志审计应用中发布一键开启内网DNS日志的功能。
阿里云VPC内网DNS日志正式接入SLS日志审计服务
|
安全 数据安全/隐私保护 开发者
WAF 功能——精准访问控制 | 学习笔记
快速学习 WAF 功能——精准访问控制
287 0
|
监控 安全 数据中心
为什么 SASE 很重要?
什么是 SASE? SASE 是安全访问服务边缘。在过去,企业的流量从分支到数据中心是固定的,用于访问internet或公共云。世界变了,流量模式也变了。越来越多的应用程序部署在云端。SASE 正在为如何在不放弃本地数据中心(DC)的情况下使用云铺平道路。
405 0
为什么 SASE 很重要?