配置审计(Config)配合开启OSS防盗链功能
前言
配置审计(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点:
- 统一的资源视角,多地域,甚至跨账号;
- 规则(Rule)检测资源配置是否满足要求;
- 持续检测资源及修复能力;
配置审计(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防盗链功能的更多相关文章
- ASP.net UrlRewrite的防盗链功能
ASP.net中如何实现基于UrlRewrite的防盗链. ASP.net中最快实现UrlRewrite的方法这篇文章中说了如何做UrlRewrite,那只是一个最简单的应用 其实利用UrlRewri ...
- 实现fastdfs防盗链功能
目录 1.背景 2.实现原理 2.1 开启防盗链 2.2 重启 nginx 2.3 Java代码生成token 1.token生成规则 2.java生成token 3.测试 3.1 带正确token访 ...
- nginx——防盗链功能
我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链技术.那么怎样才能不让自己的网站受害呢? 下面我来介 ...
- web页面防盗链功能使用--request.getHeader("Referer")
使用Request对象设置页面的防盗链 所谓的防盗链就是当你以一个非正常渠道去访问某一个Web资源的时候,服务器会将你的请求忽略并且将你的当前请求变为按正常渠道访问时的请求并返回到相应的页面,用户只有 ...
- Nginx配置虚拟机,url重写,防盗链
配置目录: · 虚拟主机 · PHP支持 · URL重写 · 防止盗链 · 持续更新… 一.虚拟主机 1.创建 文件格式:{域名}.conf 具体如下: $ s ...
- 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)
以数据库后台驱动的动态内容的网站,经常会遇到这些的问题: 当在浏览器的地址栏输入一个无效的参数时,会出现数据库的错误提示,这是一个安全的隐患 搜索引擎无法收录你的所有网页 网页的链接地址是一系列的参数 ...
- 如何利用jsp实现防盗链功能
index.jsp ----------------------------- Place your content here here is index jsp get header info a. ...
- Nginx服务优化及优化深入(配置网页缓存时间、日志切割、防盗链等等)
原文:https://blog.51cto.com/11134648/2134389 默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服 ...
- nginx防盗链配置
Ps:防盗链的意义就是保证自己的版权,不免网站的流量流失,为他人做嫁衣.下面是网上看到的三种方法: 修改 /usr/local/nginx/conf/nginx.conf 这个配置文件.找到locat ...
- Nginx中防盗链(下载防盗链和图片防盗链)操作记录
日常运维工作中,设置防盗链的需求会经常碰到,这也是优化网站的一个必要措施.今天在此介绍Nginx中设置下载防盗链和图片防盗链的操作~ 一.Nginx中下载防盗链的操作记录对于一些站点上的下载操作,有很 ...
随机推荐
- 22_播放器之使用SDL显示YUV视频
简介 使用SDL实现简单的YUV播放器. 这里还需要使用到像素格式和计算图片大小,这两个我们直接使用ffmpeg来实现,因此需要使用ffmpeg的libavutil/avutil.h和libavuti ...
- jQuery(常用API)
jQuery简介 1.基本使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- 记录--使用Canvas绘制一个验证码组件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 使用Canvas绘制一个验证码组件 前言 验证码,这一日常伴随我们的要素,是我们在线交互的重要安全保障.你的手机短信里是否被它占据半壁江山 ...
- 记录--『uni-app、小程序』蓝牙连接、读写数据全过程
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本文简介 这是一次真实的 蓝牙收发数据 的全过程讲解. 本文使用 uni-app + Vue3 的方式进行开发,以手机app的方式运行(微 ...
- Lambda表达式编写递归函数
class Program { //Fix求出的是函数f的不动点,它就是我们所需要的递归函数: static Func<T, TResult> Fix<T, TResult>( ...
- KingbaseES 对象重命名需要注意的事项
前言: Oracle 对视图或同义词依赖的底层对象表,如果被重命名,则视图或同义词失效.Oracle DBA 经常利用这个特点,对表进行重建,在重建过程中,无法通过视图或同义词访问,这就保证了数据的安 ...
- apue 文章集锦
与 apue 相关的一系列文章比较庞杂,按原书目录整理了一下,形成目录,方便系统性阅读. 另外这些文章是在我快读完的时候开始写的,之前的一些章节还多有遗漏,后面慢慢补上. chapter 1: UNI ...
- React组件封装:文字、表情评论框
1.需求描述 根据项目需求,采用Antd组件库需要封装一个评论框,具有以下功能: 支持文字输入 支持常用表情包选择 支持发布评论 支持自定义表情包 2.封装代码 ./InputComment.tsx ...
- 【Java】多线程之实现Runnable接口
1 /** 2 * 3 */ 4 package com.raliable.chapter_0; 5 /** 6 * @author : Administrator 7 * @date :2022年4 ...
- #杜教筛,欧拉函数,整除分块#HDU 6683 Rikka with Geometric Sequen
题目 由\(1,2,\dots,n-1,n\)组成的序列中有多少个子序列是等比数列\((n\leq 5*10^{17})\) 分析 分类讨论,先设公比为\(q=\frac{i}{j}[gcd(i,j) ...
