营销型网站备案,wordpress标签云添加,企业信息服务规划与建设,虚拟机wordpress安装简介#xff1a; 我们也常有听说例如AK被外部攻击者恶意获取#xff0c;或者员工无心从github泄露的案例#xff0c;最终导致安全事故或生产事故的发生。AK的应用场景极为广泛#xff0c;因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例#x… 简介 我们也常有听说例如AK被外部攻击者恶意获取或者员工无心从github泄露的案例最终导致安全事故或生产事故的发生。AK的应用场景极为广泛因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例进行分析和介绍。 一、引言
对于企业上云的典型场景云账号管理员一般会给员工、应用程序或系统服务创建一个相应的用户账号。每个账号都可以有独立的身份认证密钥俗称AK (AccessKey)它用于阿里云服务API的身份认证。既然是身份证明证明你是某个云账号的合法拥有者那么一旦泄露后果着实严重。我们也常有听说例如AK被外部攻击者恶意获取或者员工无心从github泄露的案例最终导致安全事故或生产事故的发生。AK的应用场景极为广泛因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例进行分析和介绍。
二、访问密钥误删用户服务受阻
典型案例重现
2020年某客户突然发现自己的一些项目的用户APP上传数据出现失败这个上传数据功能使用了该云厂商上的某存储服务客户发起工单认为云厂商的存储服务有故障。经排查发现该用户的Region其他业务方的生产活动正常未出现明显异常遂怀疑网络问题建议客户查询网络连接此时客户提交App端的错误日志日志中显示是访问密钥没有找到在云客服的指导下并未发现有相同ID的密钥存在然后在操作审计的记录中发现该访问密钥是被其自己内部做了删除操作。
紧急处理
云产品建议该客户对使用的访问密钥马上替换客户反馈APP上不好控制特别iOS的app发布还要审核周期太长客户紧急发布公告通知其用户此功能暂时不可用待升级后恢复。
影响
影响显而易见对很多初创企业这样的故障会轻则导致用户体验差重则关键功能不可用对企业留存客户或者收入都会受到不同程度的影响。
分析和总结
这次故障主要是由于员工误删除AK导致有的同学就会说能不能有个类似垃圾站的功能还可以回收其实云厂商一般都会提供一个类似的功能叫激活/禁用应当遵循“先禁用再删除”以确保业务的正常持续此外AK删除导致服务端的故障值得引起注意和自查的是用户作为管控和服务端使用的不同场景是不是做了严格的区分服务端使用和管控是否区分开等员工和线上系统是否区分开App应用中硬编码访问密钥导致出现泄漏时替换成本很大不能马上进行轮转替换完成业务止损其实App类业务不适合使用永久AK密钥来访问OpenAPI。此外应用反编译hack已经是多发事件了代码中存放永久密钥泄露的风险巨大
三、规范的访问密钥生命周期管理操作保障安全生产进行
上述真实的案例不仅带给我们巨大的警示那么针对访问密钥究竟在哪些环节进行规范操作又应当通过什么办法进行管理控制呢
1 、创建访问密钥
再次敲黑板不推荐使用主账号的访问密钥原因很明显主账号拥有的资源和权限太大泄露后的风险不堪设想可以通过云厂商的访问控制等页面查看有没有创建租户级别下的子用户并实际使用的是这些子用户的访问密钥。
2 、配置合适的权限
每个不同的应用使用不同子用户的访问密钥这样可以做到应用级别资源和权限隔离每个子用户的权限是不是满足了最小可用原则不扩大不要的权限可以在测试环境试着减少权限看看测试是不是能正常不正常的话大概率这个权限是不能去除的通过RAM访问控制台查询可以看到某一个用户所具有的权限Policy以及Policy里具体的权限描述。
3 、删除访问密钥
访问密钥的删除是不可恢复的所以删除是具有一定风险的只有在安全确认这把访问密钥没有任何使用记录后才能删除标准的流程如下
首先把原来访问密钥使用的地方替换为新的访问密钥然后监控需要删除的访问密钥的最后使用时间按照自己业务的状况确定老的访问密钥的失效时间比如根据业务状况确定7天为安全时间即一把访问密钥7天没有使用记录就可以尝试删除老的密钥所以在安全时间既要到达删除的效果又要在出现突发状况下把删除的访问密钥找回云厂商都会提供一组这样的操作禁用/激活使用禁用代替删除操作禁用操作可以达到和删除一样的效果但是可以满足突发状况下访问密钥的找回即通过激活操作把禁用的访问密钥恢复过来就如同提供了一个垃圾箱的功能在访问密钥进行禁用后持续观察业务是否有异常直到一个最终安全时间比如7天如果没有任何老的访问密钥的使用记录就可以真实删除了。
4、 泄露密钥轮转
每个RAM用户最多可以创建两个访问密钥。如果您的访问密钥已经使用3个月以上建议您及时轮换访问密钥降低访问密钥被泄露的风险。
在需要轮转的时候再创建第二个访问密钥。在使用访问密钥的所有应用程序或系统中更新正在使用的访问密钥为新创建的第二个访问密钥。说明 可以在控制台的用户详情页的用户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、 审计定期分析访问密钥使用行为
通过规范访问密钥生命周期的管理操作可以解决大部分由于不当操作导致的安全故障但是很多安全问题是需要分析访问密钥的使用数据才能发现的。
访问密钥存储泄露探测是不是硬编码到代码里去了可以借助代码托管平台提供一些服务来检测比如 Github Token scan云厂商也有类似一些方案帮助客户做检测比如阿里云云安全中心的AK泄露检测。
异常访问密钥使用探测
这种分析主要是对密钥本身的实际使用相关的数据日志等做分析来看是否已经出现了异常。
厂商方案-操作审计
开启操作日志审计并将其投递至OSS和SLS长期保存和审计将操作日志存储至OSS异常情况时可以起到固证的作用操作日志投递至SLS帮助您在日志数量大的时候也能实现高效检索。 厂商方案-访问日志审计
除了云产品的操作日志外还有大量的云产品使用访问日志这一部分也往往是数据访问的主要部分比如OSS的Bucket上数据的写入获取修改和删除等。这部分日志可以直接通过阿里云提供的日志服务来做到收集存储统计和分析等您在各个云产品控制台开通日志功能后即可执行日志服务相关操作。 本地方案-自建分析引擎
对一些操作日志审计里没有记录的产品的访问日志也可以通过云产品提供日志存储功能把这些日志记录并下载下来通过自己离线的计算和定时比较发现上述异常访问记录。 统计分析
可以监控报警和分析的维度如下可以通过下面相关维度的日常监控来观测是否在各个维度上出现了非预期的访问如果出现就预示了访问密钥可能已经出现泄漏需要重点关注了 使用访问密钥的IP是否是自有的机器的IP使用访问密钥的产品是否是自己购买过的使用访问密钥的region是否是自己预期的使用访问密钥的时间是不是服务自己的业务规律。四、总结
本文从访问密钥的生命周期管理进行了分析和介绍希望对于您在云上密钥管理能够有所启发和帮助。最后附上AK使用锦囊 禁止使用主账号 子账号来隔离好 密码一次要记好 AK保密要记牢 泄露先别乱阵脚 先禁再删不可少 两把AK分配好 定期审计很重要 究极安全无密钥。 原文链接
本文为阿里云原创内容未经允许不得转载