共计 4155 个字符,预计需要花费 11 分钟才能阅读完成。
简介:咱们也常有据说例如 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:UsersUSER_NAME.alibabacloudcredentials),程序会主动创立指定类型和名称的凭证。默认文件能够不存在,但解析谬误会抛出异样。配置名小写。不同的我的项目、工具之间能够共用这个配置文件,因为不在我的项目之内,也不会被意外提交到版本控制。能够通过定义
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 调配好,
定期审计很重要;
究极平安无密钥。
原文链接
本文为阿里云原创内容,未经容许不得转载