谈AK管理之进阶篇 - 如何有效控制云上[最后一把密钥]的风险?

简介: 上一期“谈AK管理之基础篇”,我们讲了如何规范的进行访问密钥生命周期管理。通过分出不同权限的阿里云RAM子账号,将不同的权限分给不同的用户,这样一旦子账号泄露也不会造成全局的信息泄露。但是,由于子账号在一般情况下是长期有效的,因此,子用户的访问密钥也是不能泄露的。

vqpiijlv.jpg

一、引言:

上一期“谈AK管理之基础篇”,我们讲了如何规范的进行访问密钥生命周期管理。通过分出不同权限的阿里云RAM子账号,将不同的权限分给不同的用户,这样一旦子账号泄露也不会造成全局的信息泄露。但是,由于子账号在一般情况下是长期有效的,因此,子用户的访问密钥也是不能泄露的。

二、泄露挑战

AK通常的泄露途径会有哪些呢?我们先从用户的使用方式来分析和发现:

1. 硬编码在代码里

很多用户对访问密钥的安全意识不够或者没有意识到风险,为了使用方便,会直接把访问密钥的二元组写在代码里,供程序使用;在现在反编译和内存分析的技术已经很成熟的当下,硬编码的方式无异于明文存储密钥,有巨大的泄露风险。

2. 第三方密钥存储

还有很多客户了解访问密钥的重要性,会使用第三方的密钥存储系统或者配置文件,将原始的密钥加密起来。这种方式的做法加延了密钥泄露的链路,但本质上只是原始密钥泄露的风险转移到另外一把密钥上,比如第三方密钥存储系统的访问key,或者是加密的密钥,归根结底还是会存在“最后一把密钥”的安全泄露风险。比如避免密钥硬编码到代码中提到的:系统属性,环境凭证,配置文件等。

三、无密钥访问方案-基础

针对访问密钥的泄露高风险,我们有没有一些方案既能克服“最后一把密钥”的风险,又能很方便的进行可控的身份认证呢?很自然,我们会想出来的第一个方案:既然长期的访问密钥权限大,我们能不能换一种短期且权限可控的访问密钥呢,这就要介绍阿里云的另外一种身份类型和与之相对应的访问密钥。

阿里云虚拟身份

RAM角色(RAM role)与RAM用户一样,都是RAM身份类型的一种,只不过RAM角色是一种虚拟用户,没有确定的身份认证密钥,需要被一个受信的实体用户扮演才能正常使用。简单说,可信实体扮演RAM角色,并使用角色令牌去访问RAM角色里规定的资源以及资源上的OpenAPI。

RAM角色

RAM角色有确定的身份,可以被赋予一组权限策略,但没有确定的登录密码或访问密钥。RAM角色需要被一个受信的实体用户扮演,扮演成功后实体用户将获得RAM角色的安全令牌,使用这个安全令牌就能以角色身份访问被授权的资源。

可信实体(Trusted entity)

角色的可信实体是指可以扮演角色的实体用户身份。创建角色时必须指定可信实体,角色只能被受信的实体扮演。可信实体可以是受信的阿里云账号、受信的阿里云服务或身份提供商。

角色令牌(Role token)

角色令牌是角色身份的一种临时访问密钥。角色身份没有确定的访问密钥,当一个实体用户要使用角色时,必须通过扮演角色来获取对应的角色令牌,然后使用角色令牌来调用阿里云服务API。

对于虚拟身份类型(角色身份),对应的OpenAPI访问凭证就是上面说的角色令牌,是一种时效和权限可控的临时访问密钥。相对于阿里云实体身份的访问密钥的长效控制机制,STS提供的是一种临时访问授权。通过STS可以返回临时的访问密钥和令牌,这些信息可以直接发给临时用户用来访问阿里云服务。一般来说,从STS获取的权限会受到更加严格的限制,并且拥有时间限制,因此这些信息泄露之后对于系统的影响也很小。

阿里云用户在RAM中,定义一个角色,并授权了可以扮演此角色的可信实体,比如某主账户下的子用户账号A,然后授权账户可以访问RAM的接口获取临时访问密钥。账户A的访问流程就如下描述了。所以结合了STS访问密钥的方案一如下描述。

 

  1. 客户的应用使用阿里云颁发给账户A的访问密钥签名访问RAMOpenAPI的请求,发给网关;
  2. 阿里云网关在验证身份和API的权限校验通过后,将请求发送到RAM的OpenAPI,请求颁发STS临时访问密钥;
  3. 阿里云RAM的OpenAPI颁发STS临时访问密钥;
  4. 阿里云网关将申请的STS临时访问密钥返回给调用方-云客户应用;
  5. 云客户应用再将获取的STS临时访问密钥分发给其自己的终端或者别的应用系统;

6- 9步和我们在前言里介绍的一样,应用使用访问密钥正常访问阿里云服务的OpenAPI,只不过这里使用的是STS临时访问密钥了。

四、无密钥访问方案-进阶

无密钥访问方案-基础方案里,我们把权限较大的长期访问密钥,替换成了STS临时访问密钥,由于STS在时间等属性上有限制,这样可以把原来泄露长期访问密钥带来的风险降低到短时间维度,做到了一定程度的安全风险减小,但细心的同学还会发现,要获取一个STS临时访问密钥,还是需要云账户或者其RAM子用户的长期访问密钥,也还是没有解决“最后一把密钥”的问题。

 

既然阿里云RAM提供了角色功能,并能把这个角色授权给实体,这个是实体是账户或者服务,那可不可以把这个角色和某些特定实体关联呢,比如某个IP,某个区域后者环境等。这种环境可以映射到什么实体呢?我们看现阶段客户的应用绝大部分会运行在机器,docker容器或者某个运行环境(Serverless)里,在这个特定的范围里,比如某个机上,是否可以实现免输入长期访问密钥而调用RAM的OpenAPI获取STS临时访问密钥呢。我们接下来引入阿里云ECS的一个特殊角色来举例。

实例RAM角色

ECS实例RAM(Resource Access Management)角色让ECS实例扮演具有某些权限的角色,从而赋予实例一定的访问权限。实例RAM角色允许用户将一个角色关联到ECS实例,在实例内部基于STS临时凭证(临时凭证将周期性更新)访问其他云产品的API。一方面可以保证AccessKey安全,另一方面也可以借助RAM实现权限的精细化控制和管理。

 

首先,我们定一个特殊的角色,这个角色就是ECS实例角色,然后把这个角色授予这个特定的ECS实例,在这个实例里的应用可以通过如下流程进行完整的阿里云OpenAPI访问。

  1. 在已经授予了实例RAM角色的机器上的应用,可以向ECS的元数据服务请求STS临时访问密钥;
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/{RAM角色名称}
  1. ECS元数据服务返回已经获取的STS临时访问密钥给客户的应用
{"AccessKeyId" : "STS.XXXXXXX","AccessKeySecret" : "XXXXXXX","Expiration" : "2019-09-24T09:05:00Z","SecurityToken" : "XXXXXXX","LastUpdated" : "2019-09-24T03:05:00Z","Code" : "Success"
}
  1. 客户的应用可以把获取的STS临时访问密钥分发给自己的其他应用;
  2. 客户的其他应用从而使用获得的STS临时访问密钥正常访问阿里云服务的OpenAPI。

除了ECS,阿里云的一些其他运行环境(ECI,ContainerService,FuntionCompute)都有类似的安全实现,在使用了此类安全实现后,用户不在需要直接把访问密钥AccessKey固化在实例中,如写在配置文件中,硬编码在代码中等不安全的存储访问密钥。

五、总结

AK泄露问题导致企业安全事故或生产事故已有大量的案例,实施无密钥访问方案将会有效解决AK安全问题,也正在成为企业访问密钥管理的最佳实践。

原文链接

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

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

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

相关文章

java log 对性能影响_Java日志框架性能比较

1 Java日志框架性能比较前面几章,笔者分别介绍了log4j,logback,log4j2三大日志实现框架。接下来,就用具体的数据比较下,哪个日志框架的性能更好!单线程:外循环100次,内循环100000次;多线程&…

备案域名绑定服务器后 提示需要备案_小程序开发需要多少钱?

现在越来越多的企业想通过微信小程序来宣传产品,为什么小程序那么火爆呢?奥晶科技为您解答,其优点不言而喻:1. 小程序建设的成本比APP建设成本低;2. 小程序能紧跟市场发展潮流,随时更新功能;3. …

Nacos配置安全最佳实践

简介: 本文讨论了自建Nacos和阿里云MSE的配置安全原理。并提出配置安全最佳实践。 作者:鲁严波 前言 配置管理作为软件开发中重要的一环,肩负着连接代码和环境的职责,能很好的分离开发人员和维护人员的关注点。 Nacos的配置管理…

云原生之上,亚马逊云科技发布多项容器与Serverless服务,持续发力现代化应用

亚马逊云科技持续发力现代化应用领域,在中国区域新推多项容器与Serverless服务及功能 在中国区域推出Amazon ECS Anywhere、Amazon Lambda容器镜像功能以及Amazon EMR on EKS等 2021年至今已发布近50个现代化应用领域全新服务与功能 编辑 | 宋 慧 出品 | CSDN云计…

2B 领域下低代码的探索之路

简介: 低代码将成为B端服务领域的基础设施,必将颠覆传统开发方式,未来可期。 作者:天晟 前言 大家好,我是钉钉宜搭前端一个小团队的负责人天晟,在阿里做了五年的低代码。今天的分享我们不讲技术细节&…

php全站文章搜索,翻出一篇老文章:php文本站内全文检索-PHP教程,PHP应用

/****************************************************原作者: uchinaboy修改:lingshidao特点:无需mysql支持;速度快;无需设置路径,放在哪级目录下,就搜索该目录和子目录;可以搜索一切文本类型…

启动延时缩短 50%-80%,函数计算发布镜像加速功能

简介: 容器镜像因其颠覆式创新成为云原生时代应用部署格式的事实标准。头部云厂商 FaaS (Function-as-a-Service) 服务如阿里云函数计算、AWS Lambda 也相继在 2020 年支持使用容器镜像部署函数,全面拥抱容器生态。 作者 | Shuai Chang 阿里云云原生 Se…

python字符串转化为数字-python 中判断字符串能否转换为数字类型

方法一: isdigit() 不可识别汉字 小数类型 str1 "1" str2 "2.1" str3 "三" str4 "3.3.3.3" print(str1.isdigit()) print(str2.isdigit()) print(str3.isdigit()) print(str4.isdigit()) 结果: True False False False 方法二: is…

易点云在京发布璇玑调度系统 中小企业办公IT升级步伐加快

中小企业是中国经济的基本细胞。数据显示,中小企业数量占我国企业总数的90%以上,对全国GDP的贡献达65%、税收贡献超过50%、解决了75%以上的城镇就业。 这些规模庞大的中小微企业的IT基础设施水平远远低于大型企业,“得过且过”是中国中小企业…

php explode txt,PHP explode():字符串转数组

PHP 使用 explode() 函数分割一个字符串,并将结果保存在一个数组中,其语法如下:array explode ( string $delimiter , string $str [, int $limit ] )参数说明:delimiter 表示分隔符,它是 str 的一个子串,可…

MaxCompute作业日常监控与运维实践

简介: MaxCompute作业日常监控与运维实践 监控项目作业超时运行 案例一 专用于业务团队取数的project_A ,基本都是手动跑SQL查询,每个作业执行基本不会很长时间,由于目前使用的是包年包月计算资源,为了防止单个作业…

resttemplate post提交json_SEO工具脚本,Python百度普通收录API提交工具

百度收录问题一直是不少渣渣头痛的问题,而官方其实提供了普通收录和快速收录这样的接口,直接调用官方api接口,大力出奇迹,你需要相信,你尽管seo,有排名算我输,不收录,怎么会呢&#…

OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力

简介: OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目。它来自阿里巴巴多年来容器化、云原生的技术沉淀,是阿里内部生产环境大规模应用的基于 Kubernetes 之…

云原生时代,底层性能如何调优?

作者 | 宋慧出品 | CSDN云计算(ID:CSDNcloud)现在,当企业提及数字化转型,上云用云的话题时,言必谈及云原生。在云原生吞噬一切的口号下,云原生被频繁、高热度的讨论之后,其真正的价值…

linux ubuntu php,linux ubuntu安装php运行环境

1. 下载下载apache。http://httpd.apache.org/。因为我想安装2.2.9,去这里下载:http://archive.apache.org/dist/httpd/下载php。http://www.php.net/downloads.phpMysql。http://dev.mysql.com/downloads/mysql/5.1.html。可能是ubuntu 10.04没有安装rp…

4米乘以12米CAD图_孙吴镀锌钢管大棚骨架图片4-12米可定尺

孙吴镀锌钢管大棚骨架图片4-12米可定尺泽沃温室大棚管厂家是集生产销售为一体,生产经销大棚管、大棚钢管、热镀锌大棚管、大棚镀锌管、热镀锌带管。温室大棚产品广泛用于温室工程建设、大棚蔬菜基地建设、水果、水稻育秧、药材、种植、畜牧养殖等温室大棚骨架等行业…

Raft成员变更的工程实践

简介: 成员变更是一致性系统实现绕不开的难题,对于提升运维能力以及服务可用性都有很大的帮助。 本文从Raft成员变更理论出发,介绍了Raft成员变更和单步成员变更的问题,其中包括Raft著名的Bug。 对于Raft成员变更的工程实现上需要…

No.1-Apache IoTDB 随笔 - Time Series DBMS 综述

简介: 这是一篇无法一口气读完的、文字过万[正文字数14390]的长文,这是一个无法中途不上厕所就看完的、关于时序数据库的视频[时长111分钟]分享的文字整理.. 大家好,很开心能够和大家一起交流时序数据库的相关的内容 首先还是简单自我介绍一…

overflowhidden把内容遮住了怎么办_图片有水印怎么办?不用PS,有这4招就够了

大家好,我是热衷解决问题的秋小叶!俗话说,文不如表,表不如图!图片是我们在做 PPT 时经常会使用到的高频元素。阿文老师曾经说过:但是,在没有接触到正确的搜图方法前,我们往往会在搜索…

谷歌云试图抢占SAP软件云市场;企业上云迎来“黄金时代”;IBM和SAP帮助金融机构加快采用云技术……...

NEWS本周新闻回顾调查表明80%的企业在云计算方面超支云计算优化服务商Virtana公司委托研究机构Arlington Research公司对350位云计算决策者进行的这项研究发现,82%的受访者表示其所在的公司在云计算方面的支出远远超过他们的需要。Market Research Future&#xff1…