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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
对象存储 OSS,20GB 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 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时,由于没有权限而报错。

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


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

相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
8天前
|
敏捷开发 测试技术 持续交付
云效产品使用常见问题之账号授权就能对当前主账号下所有 OSS 进行读写权限如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
弹性计算 安全 API
访问控制(RAM)|凭证安全管理与最佳实践
本文分享将为您介绍从访问云资源的人员/程序身份两种身份类型,介绍云上凭证的认证方式、安全风险及凭证管理的最佳实践。
102465 7
|
14天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101897 3
|
6月前
|
运维 安全 大数据
构建多账号云环境的解决方案|多账号身份权限集中管理
企业客户在阿里云采用多账号的资源结构,如果需要在每个账号内配置身份和权限,管理成本和安全风险都会大大增加。阿里云开放平台云SSO产品专家 夜来为您介绍如何使用云SSO进行多账号身份权限统一管理,包括与企业自有身份系统集成、统一的身份管理和多账号的权限配置。
1053 5
|
SQL 监控 关系型数据库
PolarDB-X 1.0-用户指南-访问控制-RAM资源授权
本文汇总了PolarDB-X支持的RAM资源授权规则以及已经为PolarDB-X开通了RAM服务的地域。
1851 0
|
数据安全/隐私保护
|
存储 监控 安全
谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?
我们也常有听说例如AK被外部攻击者恶意获取,或者员工无心从github泄露的案例,最终导致安全事故或生产事故的发生。AK的应用场景极为广泛,因此做好AK的管理和治理就尤为重要了。本文将通过两种AK使用不安全的典型案例,进行分析和介绍。
谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?
跨阿里云账号的资源授权
当一个企业希望将部分业务授权给另一个企业时,可以使用RAM角色进行跨阿里云账号授权来管理资源的授权及访问,本文以阿里云数据总线服务(DataHub)为例,演示如何实现阿里云跨账户的资源授权访问,其它资源的操作方法类似。
2133 0
跨阿里云账号的资源授权
|
弹性计算 数据安全/隐私保护 对象存储
如何用好RAM访问控制中的角色
本文介绍了阿里云访问控制中角色的概念和不同的使用场景,提供了一些使用案例。
3257 0
|
API 开发工具 对象存储
如何限制只有启用了MFA认证的用户才能操作OSS资源?
第一章:用户使用场景介绍 ??阿里云控制台提供了各个产品相关图形化配置,并且功能比较齐全。对于用户来说,学习成本低、易操作、易上手。因此,绝大多数用户使用主账号登录控制台进行日常的运维管理操作。由于主账号对其名下的所有阿里云资源都拥有完全控制的权限,一旦主账号的登录密码泄露,该账号下的资产将面临极大的损失,甚至有可能被他人恶意使用而造成相关法律风险。

热门文章

最新文章

http://www.vxiaotou.com