简介: 本文作者:紫极zj 本文将主要介绍利用【配置审计】功能,如何快速发现企业上云过程中,针对未配置防盗链的 OSS Bucket 定位及修复案例。

前言

配置审计(Config)将您分散在各地域的资源整合为全局资源列表,可便捷地搜索全局资源;同时帮助您记录云上 IT 资源的配置变更历史,持续自动地评估云上资源配置的合规性,实现云上 IT 合规治理。本文介绍如何使用配置审计(Config)帮助您快速发现未配置防盗链的 OSS Bucket 并修复的案例。

实际案例

公司 A 有 10 个垂直的业务部门,每个业务部门分配了 1~2 个 OSS Bucket 用于存储运营图片,并直接在网页上使用的 OSS 生成的链接做图片内容的展示。我们知道 OSS 的费用分为存储费和流量费,当大量的外部请求获取图片资源时,产生的流量费用需要客户自行承担。为了杜绝不法网站盗用图片资源,OSS 开发了“防盗链”功能,详细的功能说明请参考: 防盗链

公司 A 打算使用该技术方案,需要为 OSS Bucket 开启防盗链,并且设置 referer 白名单为 *.alibaba.com*.aliyun.com 。作为公司的运维同学,非常不希望每个 Bucket 都检查并参考文档配置一遍,同时还需要额外制定对策防止 Bucket 配置被二次修改。

这时候,他想起了阿里云的一款云产品:配置审计(Config)

我们可以将配置审计(Config)的能力简单概括为3点

  1. 统一的资源视角,多地域,甚至跨账号;
  2. 规则(Rule)检测资源配置是否满足要求;
  3. 持续检测资源及修复能力;

配置审计(Config)是如何工作的?

资源的配置数据通过异步消息通知会中心化的存储在配置审计(Config)的数据库中。规则会采用定时、变更被动触发、用户主动触发的方式来对数据库的资源配置进行评估, 将评估结果展现给用户,同时会根据规则设置判断是否需要进行修正,如执行修正任务,新的资源配置数据会重新被配置审计(Config)感知进入到下一次的评估循环中。我们一起来看看公司 A 的运维同学是如何通过配置审计(Config)完成任务的。

设置规则

打开配置审计控制台,进入规则列表,点击新建规则,即可看到配置审计(Config)为用户提供的大量的托管规则(托管规则由平台开发并提供给用户使用),搜索“防盗链”或“referer”都可以搜索到该规则:OSS 存储空间开启防盗链功能

点击应用规则

第一步:设置规则名称、自定义风险等级、自定义备注信息;

第二步:可以根据实际的业务场景限定需要检查的资源的范围;可选项包括资源 ID、资源组 ID、地域、标签等;

第三步:设置允许的 referer 白名单及是否允许 referer 为空;

第四步: 设置是否开启自动修复,我们暂时先跳过,后续再讨论;

第五步:预览并提交

规则评估

规则创建完成后,规则便开始对存量的 Bucket 配置进行合规性的评估,参考规则的评估说明, “OSS 存储空间开启防盗链功能,视为合规”,该规则通过检查 Bucket 配置信息中的 RefererList.Referer 不为空判定开启防盗链功能是否合规。

规则评估完成后会生成一份评估结果,标注累计评估资源数合规资源数不合规资源数;您可以基于这份检查结果去手动配置。注意:对于新增的 OSS Bucket 同样会自动检测其合规性。

下图为检测结果:累计检测 23 个 OSS Bucket,23 个不合规,表示这 23 个 OSS Bucket 均未开启防盗链功能。

如何修复

如果 Bucket 的数量很多,繁重的人工配置可能会带来操作上的失误,别着急,配置审计(Config)提供修正能力,对于规则评估出的不合规资源结合运维编排(OOS)将其修复。可在规则详情页->修正详情,然后点击“修正配置”,完成修正配置。

注意有一个选项为:“自动修正/手动修正”,我们暂时勾选为“手动修正”。

这时候,在修正详情 tab,将会出现“执行手动修正”的按钮,点击此按钮,则手动触发对不合规资源的修复任务。

由于修复任务是异步发起的,您可以直接去对象存储的控制台->存储桶-> 权限管理 -> 防盗链查看是否修正成功,也可稍微等待一段时间(10分钟左右)再来配置审计(Config)控制台查看最新的配置信息。

如上图所示,修复动作已经执行完成,OSS Bucket 防盗链已经正常设置, 回到配置审计控制台,继续等待片刻,修复触发的资源变更数据会回流到配置审计(Config)触发规则的再一次评估,这时候我们发现所有的资源都变成合规状态。

持续评估并修复

如何保证其他运维人员在后续的时间里不再改变该配置呢?组织内部运行机制能够勉强完成任务,但是人总是会犯错误的。我们可以借助配置审计(Config)的持续检测及修复能力。 在刚才配置修复设置中,将“手动执行”修改为“自动执行”,一旦资源发生了不合理的变更,配置审计(Config)将会识别并将其自动纠正为正确的配置,防止异常修改。

如,我们在 OSS 控制台将某个 OSS Bucket 的配置规则修改为,改动点: *.alibaba.com 改成了 *.alibaba-inc.com

稍微等待几分钟,我们会发现:

这里出现了我们刚才设置的错误的防盗链名单的 OSS Bucket,此时,自动修正已经触发,之所以还有 1 个显示为不合规,是因为配置审计(Config)需要等待修正后的正确置到达中心化的数据库才能进行再一次的规则评估,将不合规资源评估为合规状态。

如上图,经过大约 10 分钟的时间,最新的 Bucket 配置信息已经到达配置审计,规则评估触发认定为“合规”。

我们再次回到 OSS Bucket 控制台查看最新的资源配置是否生效。

配置被重新设置回了 *.alibaba.com *.aliyun.com

总结

以上就是使用配置审计(Config)检测不合规配置并持续自动修复的全部内容,我们通过设置规则,规则评估及修复等完成从发现问题,定位资源,到手动、自动变配,形成了问题在配置审计(Config)的闭环。

原文链接

本文为阿里云原创内容,未经允许不得转载。

配置审计(Config)配合开启OSS防盗链功能的更多相关文章

  1. ASP.net UrlRewrite的防盗链功能

    ASP.net中如何实现基于UrlRewrite的防盗链. ASP.net中最快实现UrlRewrite的方法这篇文章中说了如何做UrlRewrite,那只是一个最简单的应用 其实利用UrlRewri ...

  2. 实现fastdfs防盗链功能

    目录 1.背景 2.实现原理 2.1 开启防盗链 2.2 重启 nginx 2.3 Java代码生成token 1.token生成规则 2.java生成token 3.测试 3.1 带正确token访 ...

  3. nginx——防盗链功能

    我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链技术.那么怎样才能不让自己的网站受害呢? 下面我来介 ...

  4. web页面防盗链功能使用--request.getHeader("Referer")

    使用Request对象设置页面的防盗链 所谓的防盗链就是当你以一个非正常渠道去访问某一个Web资源的时候,服务器会将你的请求忽略并且将你的当前请求变为按正常渠道访问时的请求并返回到相应的页面,用户只有 ...

  5. Nginx配置虚拟机,url重写,防盗链

    配置目录: ·     虚拟主机 ·     PHP支持 ·     URL重写 ·     防止盗链 ·     持续更新… 一.虚拟主机 1.创建 文件格式:{域名}.conf 具体如下: $ s ...

  6. 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)

    以数据库后台驱动的动态内容的网站,经常会遇到这些的问题: 当在浏览器的地址栏输入一个无效的参数时,会出现数据库的错误提示,这是一个安全的隐患 搜索引擎无法收录你的所有网页 网页的链接地址是一系列的参数 ...

  7. 如何利用jsp实现防盗链功能

    index.jsp ----------------------------- Place your content here here is index jsp get header info a. ...

  8. Nginx服务优化及优化深入(配置网页缓存时间、日志切割、防盗链等等)

    原文:https://blog.51cto.com/11134648/2134389 默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服 ...

  9. nginx防盗链配置

    Ps:防盗链的意义就是保证自己的版权,不免网站的流量流失,为他人做嫁衣.下面是网上看到的三种方法: 修改 /usr/local/nginx/conf/nginx.conf 这个配置文件.找到locat ...

  10. Nginx中防盗链(下载防盗链和图片防盗链)操作记录

    日常运维工作中,设置防盗链的需求会经常碰到,这也是优化网站的一个必要措施.今天在此介绍Nginx中设置下载防盗链和图片防盗链的操作~ 一.Nginx中下载防盗链的操作记录对于一些站点上的下载操作,有很 ...

随机推荐

  1. js使用typeof与instanceof相结合编写一个判断常见变量类型的函数

    /** * 常见类型判断 * @param {any} param */ function getParamType(param) { // 先判断是否能用typeof 直接判断 let types1 ...

  2. CAST电子部单片机方向授课——串口通信 预习文档

    CAST电子部单片机方向授课--串口通信 预习文档 课前小准备 安装串口调试助手 第一步:进入Microsoft Store 第二步:在Microsoft Store中搜索 "串口调试助手& ...

  3. Python 合并Excel文件(Excel文件多sheet)

    一.Python合并Excel文件多sheet<方法1> import os import pandas as pd # 指定包含Excel文件的文件夹路径 folder_path = ' ...

  4. C# 剪裁图片

    /// <summary> /// 剪裁图片 /// </summary> /// <param name="src">原图片</para ...

  5. Java实现动态数组【数据结构与算法】

    1.数组 类型固定.长度固定 连续的内存空间 顺序存储.随机读取 查询快.新增删除慢.最好初始化的时候就指定数组大小.这样就可以避免一定的数组扩容出现的内存消耗. import java.util.A ...

  6. #期望,树的直径#51nod 1803 森林直径

    题目 有一棵 \(n\) 个结点的树,按顺序给出树边 \((fa[i],i)\), \(Q\) 次询问查询如果只选取第 \([l,r]\) 条树边,问森林的直径 \(fa[i]\) 的生成方式为 \( ...

  7. #Kruskal,分治#AT4569 Connecting Cities

    题目传送门 考虑如何去掉这个绝对值, 换句话说,如何减少边数并且能建出 MST. 在求解偏序问题时,往往会分而治之, 这样原来 \(O(n^2)\) 的做法就能够被优化. 考虑将所有点对半折开, 左半 ...

  8. #01背包#洛谷 4161 [SCOI2009]游戏

    题目 将 \(n\) 拆成若干个正整数的和, 问这些正整数的LCM有多少种 \(n\leq 10^3\) 分析 考虑这个\(LCM\)一定是1或者由若干个质数的指数幂相乘得到的, 那么可以设\(dp[ ...

  9. #线段树#LOJ 6029「雅礼集训 2017 Day1」市场

    题目 在长度为\(n(n\leq 10^5)\)的数列中, 需要满足区间加,区间下取整的操作 以及能够查询区间和以及区间最小值 除数\(d\)满足\(2\leq d\leq 10^9\) 加数\(c\ ...

  10. JDK9的新特性:JVM的xlog

    目录 简介 xlog的使用 selections output decorators 总结 简介 在java程序中,我们通过日志来定位和发现项目中可能出现的问题.在现代java项目中,我们使用log4 ...