如何在阿里云上安全的存放您的配置 - 续

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在之前文章中,其中一个遗留问题是如何存放访问ACM配置本身的敏感信息,比如要访问ACM本身需要的AccessKey ID(简称AK)或Secret AccessKey(简称SK)如何存放,即所谓敏感配置的"最后一公里"问题。

《如何在阿里云上安全的存放您的配置》一文中,我们介绍了如何通过ACM存放您的敏感配置,并进行加密。这样做的目的有两个:

  • 在应用程序或对应生产环境容器或系统中,无需持久化任何敏感数据信息(如数据库连接串,等),以防止生产环境或开发过程中的敏感信息泄露。
  • 配置数据在配置中心存放且全程加密,进一步保证数据的安全性。

然而在之前文章中,其中一个遗留问题是如何存放访问ACM配置本身的敏感信息,比如要访问ACM本身需要的AccessKey ID(简称AK)或Secret AccessKey(简称SK)如何存放,即所谓敏感配置的"最后一公里"问题。而就在最近ACM发布的4.4版本中包含了一个重要的功能"ACM SDK支持ECS实例RAM角色",使得上述问题得到彻底解决。我们来看看ACM是怎么做的。

为说明ACM的做法,本文将分为两个部分:

  • 第一部分,通过简单介绍"ECS实例RAM角色"的原理,让读者理解如何可以不通过输入AK/SK来调用阿里云的SDK。
  • 第二部分,通过介绍ACM支持"ECS实例RAM角色"的方法和使用场景,让读者进一步理解如何利用ACM的彻底在代码中去掉敏感配置和AK/SK的。

"ECS实例RAM角色"原理

首先来看看所谓"ECS实例RAM角色"的原理。ECS实例RAM角色是阿里云RAM角色的一种,它让ECS实例扮演具有某些权限的角色,从而赋予实例一定的访问权限。实例RAM角色允许用户通过一个RAM角色关联到ECS实例,在实例内部基于STS(Security Token Service)临时凭证(临时凭证将周期性更新)访问其他云产品的 API。这样,一方面可以保证 Access Key 安全,另一方面也可以借助 RAM 实现权限的精细化控制和管理。

ECS实例RAM角色的推出,主要就是为了解决敏感信息AK/SK的存放难题,这跟ACM敏感配置信息存放要解决的"最后一公路"问题是一致的。我们接下来通过ECS实例RAM角色的使用步骤来窥探其中原理,如下图:

undefined

如上图,ECS的实例角色在使用时,分为5个步骤。

1. 云账号(root)在RAM中创建一个ECS实例型的RAM-Role,并对角色授予合适的Policy权限
2. 启动ECS实例时,可以配置使用上一步骤中创建的RAM-Role

(注:以上两步的具体操作请参考通过控制台使用实例型RAM角色 或 通过API使用实例型RAM角色)

通过以上两个步骤后,ECS服务在创建实例时:

  • 根据所配置的RAM角色,调用AssumeRole去访问STS请求获取该角色的STS Token;
  • STS服务会验证ECS服务身份及该角色的授权类型,验证通过后颁发STS Token,否则拒绝请求。
  • 获取到STS Token后,ECS将通过Metadata服务提供给实例中的应用程序访问(HTTP访问地址:100.100.100.200 )。
  • STS Token过期时间通常为6小时,在过期之前ECS服务会自动维护STS Token的刷新。

3. 应用程序获取STS Token

ECS实例中的应用程序需要通过访问 ECS Metadata服务来获取相应的STS Token。比如, 在Linux中执行命令:

$ curl http://100.100.100.200/latest/meta-data/ram/security-credentials/<roleName>

即可获取STS Token及过期时间等元数据信息。

4. 使用STS Token调用云服务API

这是关键的一步。如果用户的应用程序使用了阿里云SDK,且阿里云SDK已经支持从ECS Metadata服务中获取实例RAM角色的STS Token,那么开发者无需在SDK中配置任何AK相关敏感信息。详细使用方法,请参考阿里云SDK支持InstanceProfileCredentialsProvider。

5. STS Token在有效期内及权限范围内都能正常访问云服务API

如果STS Token过期,那么需要从ECS Metadata服务中重新获取STS Token;如果STS Token权限不足,那么需要找管理员给实例RAM角色添加足够的权限。实例RAM角色的权限更新后,STS Token权限立即生效,用户无需重新启动ECS实例。

ACM支持"ECS实例RAM角色"的方法和使用场景

ACM支持"ECS实例RAM角色"的方法和上诉架构的原理相同。用户在使用该方案时,需要先操作"步骤1-在RAM中创建一个ECS实例型的RAM-Role",和"步骤2-启动ECS实例时,可以配置使用上一步骤中创建的RAM-Role"。作为阿里云SDK的一部分,ACM SDK本身默认帮助用户完成3、4、5三个步骤,用户只需要通过调用ACM SDK专注业务敏感配置获取即可。

为进一步理解以上所属原理,我们设想一个场景,用户需要通过一个数据库连接串(含密码)访问某数据库。在常规场景下,用户需要在配置文件中设置这些敏感信息,并将配置发布到生产环境。而在使用ACM以后,用户将不再需要存放任何敏感信息在应用程序中;取而代之的,程序员在连接相关服务时只需要完成两部分工作,

  1. 基于ACM SDK获取业务的敏感配置信息,如数据库连接串,等。
  2. 基于获取的敏感配置信息去调用对应的服务。

    • 注:以上两个步骤不需要应用程序设置任何AK/SK信息。

用户使用ACM SDK基于"ECS实例RAM角色"获取配置的方法和场景如下图所示。

undefined

如图所示,对于第二步ACM SDK去ACM服务获取配置的关键步骤中,ACM SDK将默认基于ECS MetaService中"ECS实例RAM角色"的STS Token临时认证信息向ACM服务进行认证,而不需要任何外部的AK,SK的输入,从而绕开了用户手动输入AK, SK的要求。

如图上所描述,该方法的适用场景包括任何携带敏感信息的数据服连接串,服务器临时登录信息,第三方软件的license信息,等。

总结

以上文章概述了如何利用ACM来存取程序的敏感信息。通过这种做法,在安全方面应用将得到以下优点:

  • 通过将敏感配置信息从程序中剥离并在ACM中保存,使得在开发和生产环境中最大程度保证了敏感信息不会被泄露。
  • 同时,应用通过"ECS实例RAM角色"的临时认证信息访问ACM,在生产环境中不持久化任何永久性AK/SK信息,杜绝了永久性AK/SK泄露带来的安全性问题。

在接下来章节中,我们将提供一个代码实例来进一步讲解如何使用ACM来存放敏感配置,敬请期待。

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
|
5天前
|
弹性计算 固态存储 调度
2024年阿里云服务器配置选择指南,新手整理
阿里云服务器配置选择指南:个人用户推荐轻量应用服务器或ECS通用算力型u1,适合小型网站和轻量应用。企业用户应选择企业级独享型如ECS计算型c7、通用型g7,保证高性能计算需求。配置选择要考虑CPU内存比例、公网带宽和系统盘。轻量服务器提供2核2G3M和2核4G4M选项,ECS实例则有多种规格以适应不同业务场景。公网带宽建议至少5M,系统盘可选高效云盘、SSD或ESSD。详细信息见[阿里云服务器产品页](https://www.aliyun.com/product/ecs)。
26 3
|
9天前
|
存储 弹性计算 运维
阿里云轻量应用服务器与标准型阿里云服务器ECS全面对比(配置、价格)
随着云计算技术的蓬勃发展,阿里云作为业界的佼佼者,推出了多样化的云服务器产品以满足不同用户群体的需求。在这些产品中,阿里云轻量应用服务器与标准云服务器(ECS)因其各自的特点而备受关注。下面,我们将从多个角度对这两款产品进行深入剖析,以帮助您更好地选择适合自身需求的云服务器。
608 2
|
9天前
|
存储 弹性计算 安全
阿里云2核8G配置服务器租用价格多少?
随着云计算技术的飞速发展,越来越多的企业和个人开始青睐云服务器,将其视为数据存储和运算的理想平台。而在这其中,阿里云作为国内领先的云服务提供商,其ECS云服务器以其卓越的性能和稳定的服务,赢得了广大用户的信赖与喜爱。那么,对于许多用户来说,他们可能好奇的是,阿里云2核8G服务器一年的费用究竟是多少呢?
87 1
|
9天前
|
弹性计算
2024阿里云服务器购买、续费、升级配置价格表新鲜出炉!
2024年阿里云服务器购买、续费、升级优惠政策整理,阿里云服务器优惠价格表:轻量2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,阿里云ECS云服务器2核2G3M新老用户均可99元一年续费不涨价,企业用户2核4G5M带宽199元一年。
341 2
|
14天前
|
安全 网络安全 CDN
阿里云CDN HTTPS 证书配置流程
阿里云CDN HTTPS 证书配置流程
|
3天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
6天前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
10天前
|
弹性计算 运维 安全
2024年阿里云上自建Palworld/幻兽帕鲁服务器教程
对于深爱《幻兽帕鲁》的玩家们,能够与好友共同联机探索游戏的奇幻世界,无疑是提升游戏体验的一大乐趣。但如何迅速且有效地搭建一个稳定且高效的联机服务器呢?今天,我们就来为大家分享一个详细的教程,让你轻松掌握自建《幻兽帕鲁》服务器的方法,让联机游戏之旅更加顺畅。
746 0
|
8天前
|
弹性计算
阿里云3M带宽云服务器并发多大?阿里云3M带宽云服务器测评参考
在探讨云服务器3M带宽能支持多大并发这一问题时,我们首先要明白一个关键点:并发量并非仅由带宽决定,还与网站本身的大小密切相关。一般来说,一个优化良好的普通网站页面大小可能只有几K,为便于计算,我们可以暂且假定每个页面大小为50K。
408 0

相关产品

  • 云消息队列 MQ
  • 云消息队列 Kafka 版
  • 微服务引擎