谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?

简介: 我们也常有听说例如AK被外部攻击者恶意获取,或者员工无心从github泄露的案例,最终导致安全事故或生产事故的发生。AK的应用场景极为广泛,因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例,进行分析和介绍。

 

一、引言:

对于企业上云的典型场景,云账号管理员一般会给员工、应用程序或系统服务创建一个相应的用户账号。每个账号都可以有独立的身份认证密钥,俗称AK (AccessKey),它用于阿里云服务API的身份认证。既然是身份证明,证明你是某个云账号的合法拥有者,那么一旦泄露后果着实严重。我们也常有听说例如AK被外部攻击者恶意获取,或者员工无心从github泄露的案例,最终导致安全事故或生产事故的发生。AK的应用场景极为广泛,因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例,进行分析和介绍。

二、访问密钥误删,用户服务受阻

典型案例重现

2020年,某客户突然发现自己的一些项目的用户APP上传数据出现失败,这个上传数据功能使用了该云厂商上的某存储服务,客户发起工单认为云厂商的存储服务有故障。经排查发现该用户的Region其他业务方的生产活动正常,未出现明显异常;遂怀疑网络问题,建议客户查询网络连接,此时客户提交App端的错误日志,日志中显示是访问密钥没有找到,在云客服的指导下,并未发现有相同ID的密钥存在,然后在操作审计的记录中,发现该访问密钥是被其自己内部做了删除操作。

紧急处理

  1. 云产品建议该客户对使用的访问密钥马上替换,客户反馈APP上不好控制,特别iOS的app发布还要审核,周期太长;
  2. 客户紧急发布公告,通知其用户此功能暂时不可用,待升级后恢复。

影响

影响显而易见,对很多初创企业这样的故障会轻则导致用户体验差,重则关键功能不可用,对企业留存客户或者收入都会受到不同程度的影响。

分析和总结

  1. 这次故障主要是由于员工误删除AK导致,有的同学就会说,能不能有个类似垃圾站的功能,还可以回收?其实云厂商一般都会提供一个类似的功能叫激活/禁用,应当遵循“先禁用再删除”,以确保业务的正常持续;
  2. 此外,AK删除导致服务端的故障,值得引起注意和自查的是,用户作为管控和服务端使用的不同场景,是不是做了严格的区分?服务端使用和管控是否区分开等?员工和线上系统是否区分开?
  3. App应用中硬编码访问密钥,导致出现泄漏时,替换成本很大,不能马上进行轮转替换完成业务止损;其实App类业务不适合使用永久AK密钥来访问OpenAPI。
  4. 此外,应用反编译,hack已经是多发事件了,代码中存放永久密钥,泄露的风险巨大!

三、规范的访问密钥生命周期管理操作,保障安全生产进行

上述真实的案例不仅带给我们巨大的警示,那么针对访问密钥究竟在哪些环节进行规范操作?又应当通过什么办法进行管理控制呢?

1 、创建:访问密钥

  • 再次敲黑板,不推荐使用主账号的访问密钥,原因很明显,主账号拥有的资源和权限太大,泄露后的风险不堪设想;
  • 可以通过云厂商的访问控制等页面查看,有没有创建租户级别下的子用户,并实际使用的是这些子用户的访问密钥。

2 、配置:合适的权限

  • 每个不同的应用使用不同子用户的访问密钥,这样可以做到应用级别资源和权限隔离;
  • 每个子用户的权限是不是满足了最小可用原则,不扩大不要的权限;可以在测试环境试着减少权限,看看测试是不是能正常,不正常的话大概率这个权限是不能去除的;
  • 通过RAM访问控制台查询,可以看到某一个用户所具有的权限Policy,以及Policy里具体的权限描述。

3 、删除:访问密钥

访问密钥的删除是不可恢复的,所以删除是具有一定风险的,只有在安全确认这把访问密钥没有任何使用记录后,才能删除,标准的流程如下:

  1. 首先把原来访问密钥使用的地方替换为新的访问密钥,然后监控需要删除的访问密钥的最后使用时间;
  2. 按照自己业务的状况,确定老的访问密钥的失效时间,比如根据业务状况确定7天为安全时间,即一把访问密钥7天没有使用记录就可以尝试删除老的密钥;
  3. 所以在安全时间既要到达删除的效果,又要在出现突发状况下把删除的访问密钥找回,云厂商都会提供一组这样的操作禁用/激活,使用禁用代替删除操作,禁用操作可以达到和删除一样的效果,但是可以满足突发状况下访问密钥的找回,即通过激活操作,把禁用的访问密钥恢复过来,就如同提供了一个垃圾箱的功能;
  4. 在访问密钥进行禁用后,持续观察业务是否有异常,直到一个最终安全时间,比如7天,如果没有任何老的访问密钥的使用记录,就可以真实删除了。

4、 泄露:密钥轮转

每个RAM用户最多可以创建两个访问密钥。如果您的访问密钥已经使用3个月以上,建议您及时轮换访问密钥,降低访问密钥被泄露的风险。

  1. 在需要轮转的时候,再创建第二个访问密钥。
  2. 在使用访问密钥的所有应用程序或系统中,更新正在使用的访问密钥为新创建的第二个访问密钥。
    说明 :可以在控制台的用户详情页的用户AccessKey列表中,查看访问密钥的最后使用时间,以此初步判断第二个访问密钥是否已经被使用,原来的访问密钥是否已经不用。

 

3 禁用原来的访问密钥。

4 验证使用访问密钥的所有应用程序或系统是否正常运行。

    • 如果运行正常,说明访问密钥更新成功,您可以放心地删除原来的访问密钥。
    • 如果运行异常,您需要暂时激活原来的访问密钥,然后重复步骤2~4的操作,直至更新成功。

5 删除原来的访问密钥。

5 开发:避免密钥硬编码到代码

系统属性

在系统属性里寻找环境凭证,如果定义了 alibabacloud.accessKeyId 和
alibabacloud.accessKeyIdSecret 系统属性且不为空,程序将使用它们创建默认凭证。

环境凭证

在环境变量里寻找环境凭证,如果定义了
ALIBABA_CLOUD_ACCESS_KEY_ID和
ALIBABA_CLOUD_ACCESS_KEY_SECRET环境变量且不为空,程序将使用它们创建默认凭证。

配置文件

如果用户主目录存在默认文件
~/.alibabacloud/credentials (Windows 为 C:\Users\USER_NAME\.alibabacloud\credentials),程序会自动创建指定类型和名称的凭证。默认文件可以不存在,但解析错误会抛出异常。配置名小写。不同的项目、工具之间可以共用这个配置文件,因为不在项目之内,也不会被意外提交到版本控制。 可以通过定义
ALIBABA_CLOUD_CREDENTIALS_FILE 环境变量修改默认文件的路径。不配置则使用默认配置 default,也可以设置环境变量 ALIBABA_CLOUD_PROFILE 使用配置。

[default]                          # 默认配置
enable = true                      # 启用,没有该选项默认不启用
type = access_key                  # 认证方式为 access_key
access_key_id = foo                # Key
access_key_secret = bar            # Secret[client1]                          # 命名为 `client1` 的配置
type = ecs_ram_role                # 认证方式为 ecs_ram_role
role_name = EcsRamRoleTest         # Role Name[client2]                          # 命名为 `client2` 的配置
enable = false                     # 不启用
type = ram_role_arn                # 认证方式为 ram_role_arn
region_id = cn-test                # 获取session用的region
policy = test                      # 选填 指定权限
access_key_id = foo
access_key_secret = bar
role_arn = role_arn
role_session_name = session_name   # 选填[client3]                          # 命名为 `client3` 的配置
type = rsa_key_pair                # 认证方式为 rsa_key_pair
public_key_id = publicKeyId        # Public Key ID
private_key_file = /your/pk.pem    # Private Key 文件

6、 审计:定期分析访问密钥使用行为

通过规范访问密钥生命周期的管理操作,可以解决大部分由于不当操作导致的安全故障,但是很多安全问题,是需要分析访问密钥的使用数据才能发现的。

  1. 访问密钥存储泄露探测:是不是硬编码到代码里去了?可以借助代码托管平台提供一些服务来检测比如 Github Token scan;

 

云厂商也有类似一些方案帮助客户做检测,比如阿里云云安全中心的AK泄露检测。

  1. 异常访问密钥使用探测

这种分析主要是对密钥本身的实际使用相关的数据,日志等做分析,来看是否已经出现了异常。

厂商方案-操作审计

开启操作日志审计,并将其投递至OSS和SLS长期保存和审计,将操作日志存储至OSS,异常情况时可以起到固证的作用;操作日志投递至SLS,帮助您在日志数量大的时候也能实现高效检索。

 

 

厂商方案-访问日志审计

除了云产品的操作日志外,还有大量的云产品使用访问日志,这一部分也往往是数据访问的主要部分,比如OSS的Bucket上数据的写入,获取,修改和删除等。这部分日志可以直接通过阿里云提供的日志服务来做到收集,存储,统计和分析等,您在各个云产品控制台开通日志功能后,即可执行日志服务相关操作。

 

本地方案-自建分析引擎

对一些操作日志审计里没有记录的产品的访问日志,也可以通过云产品提供日志存储功能把这些日志记录并下载下来,通过自己离线的计算,和定时比较,发现上述异常访问记录。

 

统计分析

可以监控报警和分析的维度如下,可以通过下面相关维度的日常监控,来观测是否在各个维度上出现了非预期的访问,如果出现就预示了访问密钥可能已经出现泄漏,需要重点关注了:

    • 使用访问密钥的IP是否是自有的机器的IP;
    • 使用访问密钥的产品是否是自己购买过的;
    • 使用访问密钥的region是否是自己预期的;
    • 使用访问密钥的时间是不是服务自己的业务规律。

 

四、总结

本文从访问密钥的生命周期管理进行了分析和介绍,希望对于您在云上密钥管理能够有所启发和帮助。最后,附上AK使用锦囊:

禁止使用主账号,

子账号来隔离好;

密码一次要记好,

AK保密要记牢;

泄露先别乱阵脚,

先禁再删不可少;

两把AK分配好,

定期审计很重要;

究极安全无密钥。

 

原文链接

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021信服云创新峰会:托管云成上云第三种选择

9月17日,以“万物皆可云”为主题的信服云创新峰会成功举办。中国工程院院士、中国科学院计算技术研究所研究员倪光南,IDC咨询(北京)有限公司副总裁/首席分析师武连峰,深信服科技股份有限公司创始人、CEO何朝曦&#xf…

三只松鼠:阿里云数据中台基座上的多渠道、多业态生长

简介: 刚刚过去的2020年,对三只松鼠来说更像是一座认知分水岭,三只松鼠CEO章燎原坦言“要忘记流量时代,并习惯放缓增长”,而随后的重要一步,就是以披荆斩棘的姿态进入数据中台建设新赛道。 刚刚过去的2020年…

浅谈专有云MQ存储空间的清理机制

简介: 浅谈专有云MQ存储空间的清理机制 在近⼀年的项⽬保障过程中,对专有云MQ产品的存储⽔位清理模式⼀直存疑,总想一探究竟但又苦于工作繁忙、精力有限,直到最近⼀次项⽬保障过程中再次出现了类似的问题,⼤家对MQ Bro…

气象气候应用在Intel最新处理器Icelake上的性能测评

浪潮HPC实验室 一、Intel第三代至强可扩展处理器(Icelake)性能大升级 Intel于今年发布了第三代至强可扩展处理器系列产品(代号Ice Lake),与上一代至强可扩展处理器系列产品(代号Cascade Lake)相比,第三代…

评审恩仇录——我为什么愿意执行代码评审

简介: 代码评审带来的好处不言自明, 但企业业务快速发展的诉求与代码评审推动落地两者之间, 往往存在矛盾。在如今快速发展的互联网时代,数字化、智能化已经是基础能力,单纯只靠人肉审查的时代已经过去了,基于各种自动化检查能力的…

AI+混合云模式,如何最大化挖掘数据价值?

9月8日,IBM举行了“科技一席谈”线上媒体访谈会,此次访谈以“数据与AI”为主题,由IBM 大中华区科技事业部、客户成功管理部总经理朱辉,IBM 中国混合云与 AI 华东及华南大区总经理许伟杰作主题分享。 在数字化转型的时代&#xff…

阿里云贾扬清:大数据和人工智能一体化是必然趋势

简介: 拥抱“融合”是大数据演进的新方向,⼤数据⼈⼯智能⼀体化是⼤数据发展的必然⽅向,而人工智能是⼤数据业务发展的终极出⼝ 。 12月13日,阿里云计算平台负责人贾扬清在Flink Forward Asia 2020 峰会上指出,拥抱“融…

云效安全那些事儿—访问控制与数据安全

简介: 云效 Codeup 提供了代码 GPG 签名,拒绝未签名的提交;支持代码属主验证,约束提交记录属主。 在质量管控上,云效 Codeup 精细化读写权限管控,支持代码提交卡点机制,保障提交质量。 接下来我…

深信服何朝曦:托管云为用户上云提供第三种选择

9月17日,以“万物皆可云”为主题的信服云创新峰会成功举办。会上,深信服科技股份有限公司CEO何朝曦分享了运用云计算技术帮助用户进行数字化转型的观点。他认为兼具公有云和私有云优势的托管云,可以帮助非科技型企业和中小企业获得“数字化平…

java 使用c .dll_Windows下java调用c的dll动态库--Dev_Cpp编译c生成dll

1.eclipse下建立一个HelloJNI.java内容如下:package JNI;public class HelloJNI{static{System.out.println("开始");System.loadLibrary("goodluck");System.out.println("结束");}public native static int get();public native st…

阿里云助力江苏省财政厅力推统一公共支付平台

简介: 为深化“放管服”改革,贯彻“互联网政务服务”要求,江苏省财政厅加快推进江苏省统一公共支付平台建设,实现全省政府非税收入、政务服务在线收缴和财政电子票据的集中统一处理,不仅节约了因“重复建设”产生的财政…

Midway Serverless 发布 2.0,一体化让前端研发再次提效

简介: 2021 年 3 月,Midway Serverless 推出了第二个大版本。就像两年前说的一样,开源只是开始,终态远没有到来。Midway 体系希望能够在当前的十字路口,不断向前演进,让前端可以去发展,朝着应用…

binaryviewer java_用java实现java的2进制文件字节序转换到C/C++的2进制文件字节序

展开全部package admit.action;/*用JAVA读取各种计算机文件系统的文件列表 当你安装了jdk,在32313133353236313431303231363533e78988e69d8331333332613732jdk的类库里,有一个标准的File类,通过该类,可以很方便的实现浏览各种文件…

ZDNS宣布完成B轮融资,根服务器之外,顶级域名系统迎重要机遇

从互联网诞生,由于IPv4技术中UDP报文数据容量限制,到2021的今天,全球也仅有13个根服务器(俗称“主根”),其中10个主根由美国持有,英国、瑞典、日本各持有1个。而中国只运营根镜像服务器。虽然目…

应用容灾中,MySQL数据表是否需要跨云同步?

简介: 容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力,在同城或异地建立对应的IT系统,其中最核心的工作是数据同步。本文选取…

java浮点数数转二进制的数吗_深入理解计算机系统(2.7)-二进制小数和IEEE浮点标准 - Java 技术驿站-Java 技术驿站...

整数的表示和运算我们已经讲完了,在实际应用中,整数能够解决我们大部分问题。但是某些需要精确表示的数,比如某件商品的价格,某两地之间的距离等等,我们如果用整数表示将会有很大的出入,这时候浮点数就产生…

Docker 终失 C 位,开源少年缘何黑化

作者 | 马超出品 | CSDN(ID:CSDNnews)开源真是火了,近些年成功的IT项目像TensorFlow、RocketMQ、TDEngine都是开源项目,而且这种火爆还出了圈,连带着RISC-V这种准开源的芯片也成为了各方争抢的香饽饽。但是…

中油即时通信电脑版_市场营销之即时通讯营销

✎IM营销又叫即时通讯营销(instantmessaging),是企业通过即时工具im推广产品和品牌,以实现目标客户挖掘和转化的网络营销方式。封面设计丨Sweety 责编丨花花第60篇丨每日一篇好文:2645字丨5分钟阅读即时通讯营销常用的主要有以下两种情况:第一…

java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...

博为峰小博老师:在JList类中有addListSelectionListener()方法,可以检测用户是否对JList的选取有任何的改变。在ListSelectionListener接口中只定义一个方法,那就是valueChanged(ListSelectionEvente),所以必须实现这个方法&#…

使用 Arthas 排查 SpringBoot 诡异耗时的 Bug

简介: 公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。最近,在优化接口的响应时间,优化了代码之后,但是时间…