云服务白名单添加

简介: 云服务白名单添加

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);
        }        
    }
}
相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
6天前
|
监控 网络协议 前端开发
WAF部署模式概念
WAF部署模式概念
|
6天前
|
运维 监控 安全
堡垒机是什么:如何帮助企业提高网络安全防护
堡垒机是什么:如何帮助企业提高网络安全防护
|
数据采集 安全 大数据
未来2年,70%用户将选择云WAF防护
WAF就是Web应用防火墙,那WAAP又是什么?为何 Gartner发布的2021年WAF魔力象限预测:到2024年,70%的组织将青睐云WAAP服务?本文有解读,笔者坚信这个比例一定是90%以上!
334 0
未来2年,70%用户将选择云WAF防护
|
边缘计算 安全 网络安全
边缘云WAF比中心云WAF更有技术优势
网站安全需要https加密保护,也需要云WAF防护,但为了提升用户体验,最需要的是CDN+边缘WAF防护。零信网站安全云服务的快速产品迭代一心只为用户提供最需要的和做好的网站安全云服务。
264 1
边缘云WAF比中心云WAF更有技术优势
|
域名解析 弹性计算 运维
通过私网访问云服务最佳实践
一般情况下,部署在阿里云 VPC A 内的服务提供方需要暴露公网访问入口,而 VPC B 内的服务使用方则通过公网路径访问 VPC A 内的服务提供方。但公网访问方式容易受到攻击,存在安全隐患,且网络质量和时延无法得到可靠保障。若服务提供方和服务使用方所在的 VPC 存在地址冲突也无法通过云企业网进行私网互联通信。
通过私网访问云服务最佳实践
云速搭部署WAF和SLB透明接入应用
本实践通过云速搭设计并部署一个WAF和SLB透明接入的架构。
云速搭部署WAF和SLB透明接入应用
|
安全 网络安全 网络架构
多账号多VPC企业组网最佳实践
针对一些刚开始上云的企业,他们往往业务先行,需要在很短的时间内完成业务系统的搬迁,在迁移过程中,账号体系的设计和网络的规划必不可少。账号是资源的容器,对于有多个法律实体分公司的集团,各个分公司有差异化的结算关系,只有一个账号无法满足集团管理需求,拥有多个阿里云账号,能够很好的应对这些问题。网络架构,关系到企业业务的运行、应用之间的调用、业务的扩展等,我们根据多家企业云上的实践,总结了多账号多VPC企业组网方案。
多账号多VPC企业组网最佳实践
|
网络协议
使用企业安全组导致自建SNAT网关网络不通
使用企业安全组导致自建SNAT网关网络不通
360 0
|
云安全 边缘计算 弹性计算