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

4次阅读

共计 4155 个字符,预计需要花费 11 分钟才能阅读完成。

简介:咱们也常有据说例如 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: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、审计:定期剖析拜访密钥应用行为

通过标准拜访密钥生命周期的治理操作,能够解决大部分因为不当操作导致的平安故障,然而很多平安问题,是须要剖析拜访密钥的应用数据能力发现的。

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

云厂商也有相似一些计划帮忙客户做检测,比方阿里云云平安核心的 AK 泄露检测。

  1. 异样拜访密钥应用探测

这种剖析次要是对密钥自身的理论应用相干的数据,日志等做剖析,来看是否曾经呈现了异样。

厂商计划 - 操作审计

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

厂商计划 - 拜访日志审计

除了云产品的操作日志外,还有大量的云产品应用拜访日志,这一部分也往往是数据拜访的次要局部,比方 OSS 的 Bucket 上数据的写入,获取,批改和删除等。这部分日志能够间接通过阿里云提供的日志服务来做到收集,存储,统计和剖析等,您在各个云产品控制台开明日志性能后,即可执行日志服务相干操作。

本地计划 - 自建剖析引擎

对一些操作日志审计里没有记录的产品的拜访日志,也能够通过云产品提供日志存储性能把这些日志记录并下载下来,通过本人离线的计算,和定时比拟,发现上述异样拜访记录。

统计分析

能够监控报警和剖析的维度如下,能够通过上面相干维度的日常监控,来观测是否在各个维度上呈现了非预期的拜访,如果呈现就预示了拜访密钥可能曾经呈现透露,须要重点关注了:

  • 应用拜访密钥的 IP 是否是自有的机器的 IP;
  • 应用拜访密钥的产品是否是本人购买过的;
  • 应用拜访密钥的 region 是否是本人预期的;
  • 应用拜访密钥的工夫是不是服务本人的业务法则。

四、总结

本文从拜访密钥的生命周期治理进行了剖析和介绍,心愿对于您在云上密钥治理可能有所启发和帮忙。最初,附上 AK 应用锦囊:

禁止应用主账号,

子账号来隔离好;

明码一次要记好,

AK 窃密要记牢;

泄露先别乱阵脚,

先禁再删不可少;

两把 AK 调配好,

定期审计很重要;

究极平安无密钥。

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

正文完
 0