访问控制(RAM)|云上程序使用临时凭证的最佳实践

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储 OSS,标准 - 同城冗余存储 20GB 3个月
简介: STS临时访问凭证是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证,减少长期访问密钥(AccessKey)泄露的风险。本文将为您介绍产品原理,以及具体的使用步骤。

内容介绍:

一、凭证管理的基本原则

二、云上程序使用临时凭证的最佳实践

 

本次分享的内容是云上程序使用临时凭证的最佳实践。


>>>欢迎点击查看阿里云凭证管理与安全最佳实践专题页


一、凭证管理的基本原则

谈及凭证管理,我们需要了解凭证管理的基本原则,其核心包括两部分,一是缩短暴露时长,二是缩小暴露面积。如今很多手机APP都无需填写用户名和密码,只需通过手机号加验证码的方式即可实现注册和登录。验证码的有效期通常只有五分钟,超过这个时间,验证码就会失效,这体现了其缩短暴露时长的原则。对于缩短暴露面积,最常见的安全风险如AK泄露,如研发人员把AK明文写到代码中,又上传到了公开的仓库中,在世界范围内,只要能看到仓库的人都可以看到该AK的信息,暴露面积很大。

image.png

基于两大核心原则,在云上分为两大身份类型。第一类是人员身份,企业有很多的员工,人员身份往往对应到企业员工中具体的个人;第二类是程序身份,程序身份对应到业务甚至环境中,它需要通过AK等方式访问阿里云的API,以获取数据或进行运维管理操作。

这两大身份在身份凭据管理中都容易出现很多安全风险,如AK泄漏等。就如何系统化地规划身份凭据管理,提升安全水位,我们围绕两大身份和基本原则提供了一系列的解决方案和最佳实践。

对于人员身份,开启MFA多因素认证,使用SSO单点登录等。

对于程序身份,结合凭据管理的两大原则进行分析。第一,缩短暴露时长,与前面提到的手机验证码的案例,云上也有类似的方案,即本次分享的主题——使用临时凭据的方案(STS Token)。众所周知,使用固定AK易被泄露,使用STS Token就会自带有效期,如同手机验证码,其有效期一般是小时级别的。一旦有了有效期,研发人员就很难把STS Token硬编码到自己的代码里,因为几小时后可能就会失效。同时,STS Token还能刷新,刷新之后可以缩短其暴露时长,相对而言,可以极大地降低其泄露风险。


二、云上程序使用临时凭证的最佳实践

在云上,我们需要结合不同的应用部署的环境去使用不同的临时凭据方案。

1、解决方案

1ECS实例角色获取STS Token访问云资源

如果客户的应用部署在ECS上,则可以使用ECS实例角色方案获取STS Token

image.png

在创建ECS实例时,可以直接配置ECS关联的RAM角色,或者在“实例设置”中为已有的ECS实例配置RAM角色。在ECS实例内部,客户的应用程序可以通过ECSMeta服务获取STS 临时凭据,再基于STS 临时凭据访问其他产品的API。同时,临时凭据将自动地周期性更新,用户不需要关心其过期刷新的过程。如此,既可以规避永久凭据导致的安全风险问题,保证云账号的AK的安全性,也可以借助访问控制实现更精细化的控制和权限管理。

2ACK RRSA功能获取STS token访问云资源

如今,越来越多的客户开始使用K8S等云原生架构,阿里云也针对性地推出了相应的解决方案。下面的架构图展示了针对ACK集群使用临时凭据的方案:

image.png

虽然架构图相对复杂,但在产品化之后,运维管理员只需一键即可开启ACK集群中的RRSA组件完成配置。且研发人员使用也很简单,无需关心STS token过期刷新的逻辑,只需在阿里云官方提供的sdk的基础上稍做简单配置,即可在自己的代码中自动获取STS Token。并且在STS Token临过期时,sdk会自动刷新STS Token

2、操作演示

这里演示如何使用ECS实例角色获取STS Token并访问云资源,以读取OSS文件为例。案例中有两个OSS Bucket,本次演示中部署在ECS上的程序只需要访问名为web-app-01 Bucket下的文件,其他Bucket下的文件无需也无权访问。

进入web-app-01 Bucket,可以看到下面有名为ram-role-test的文件。进入RAM控制台,创建ECS关联的角色,“可信实体类型”选择“阿里云服务”,“受信服务”选择“云服务器”,这样即可创建能与ECS实例关联的角色。案例中创建了名为ECSRamRoleTest的角色,并为其绑定权限策略。

{

  Version: 1,

Statement: [

      {

              Effect: Allow,

              Action: oss:ListObjects,

              Resource:acs:oss:*:*:web-app-01

          },

          {

               Effect: Allow,

               Action: oss:GetObjects,

               Resource:acs:oss:*:*:web-app-01/*

          }

]

}

在该权限策略中,仅允许该角色访问名为web-app-01 OSS Bucket下的文件对象。

进入ECS控制台,点击“创建实例”,在高级选项中选择一个实例RAM角色,案例中选择了创建的ECSRamRoleTest角色。如果是已有实例,可以在实例设置中点击“授予/收回RAM角色”,关联相应的RAM角色。

登录现有的机器上,已经写入了一段Python代码:

image.png

从这段代码可以看到,我们首先从ECSMeta服务中获取到了实例角色的STS Token,用该STS Token分别从web-app-01web-app-03两个Bucket中遍历文件对象。通过之前的步骤可以知道,我们只给实例角色授予了web-app-01 Bucket的权限。

运行这段代码,运行结果如下图所示:

image.png

可以看到已成功遍历了web-app-01下的所有文件,而在遍历web-app-03时,由于没有权限而报错。

以上是关于云上程序使用临时凭据的最佳实践。总之,如果应用部署在阿里云上,则建议使用临时凭据的方案,一方面能够极大地降低凭证泄露的风险,另一方面,如果泄露也可以有效地缩短凭证暴露的时长。


>>>欢迎点击查看阿里云凭证管理与安全最佳实践专题页

相关文章
|
弹性计算 安全 API
访问控制(RAM)|凭证安全管理与最佳实践
本文分享将为您介绍从访问云资源的人员/程序身份两种身份类型,介绍云上凭证的认证方式、安全风险及凭证管理的最佳实践。
103241 7
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
103051 5
|
云安全 弹性计算 安全
AK泄露了,怎么办?
AccessKey(包含AccessKey ID和Secret)是程序访问的凭证,无异于打开云上资源的大门钥匙,保管好AK是保障云上安全最重要的事情,甚至没有之一。
107597 8
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
1804 7
|
安全 网络安全 数据安全/隐私保护
【专栏】IT 知识百科:访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限
【4月更文挑战第28天】访问控制列表(ACL)是网络安全的关键机制,用于定义和管理网络资源的访问权限。ACL工作原理包括定义规则、匹配规则和执行操作。标准ACL基于源IP过滤,扩展ACL则提供更多筛选条件。时间及用户基础的ACL提供更细化的控制。优点在于增强安全性和精细管理,但管理复杂性和性能影响也是挑战。未来,ACL将趋向智能化和自动化,与更多安全技术结合,以提升网络安全。**
904 0
|
网络协议 网络虚拟化 数据安全/隐私保护
访问控制列表(ACL)配置
访问控制列表(ACL)配置
309 1
访问控制列表(ACL)配置
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
948 4
|
网络协议 安全 网络性能优化
了解访问控制列表 (ACL):概念、类型与应用
了解访问控制列表 (ACL):概念、类型与应用
1177 2
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
625 2
|
网络协议 安全 网络安全
Cisco-命名ACL访问控制列表
Cisco-命名ACL访问控制列表
257 4

热门文章

最新文章