自动化AutoTalk第十五期:自动化场景-多账号自动化场景下的AK管理方案

简介: 自动化AutoTalk第十五期探讨了多账号自动化场景下的AK管理方案。主要介绍了通过阿里云的实例角色和STS Token减少AK暴露风险,避免硬编码AK带来的安全隐患。最佳实践包括定期轮转AK、使用临时Token、分环境管理凭据,以及利用ECS实例角色实现安全的跨账号资源操作,确保在多账号架构中提升自动化程序的安全性和管理效率。

自动化AutoTalk第十五期:自动化场景-多账号自动化场景下的AK管理方案


本次主题是多账号自动化场景下的身份管理方案。

1736919773150.jpg

如果写程序或者通过Terraform工具做一些自动化,把它抽象成三步。首先要有一个程序的身份,操作阿里云的API必须要有一个AK,

第二步,一定要有一个账号,因为所有的资源一定在一个账号里面。第三步,要调阿里API去创建像ECS,OSS 资源。

1736919796262.jpg

程序的身份就是应用程序调API,身份的认证,阿里云提供两种方式,一种是有一个固定的凭据,叫AccessKey,简称AK,还有一种方式是用一些临时凭据,叫STS Token,程序使用AK或者用STS Token的方式,有很多常见的一些风险。比如,有些客户可能用主账号来操作API,主账号的AK的风险很高,因为一旦被泄露,止血成本非常高,有些用户把AK直接硬编码到代码里面,AK一旦泄露,账号的风险非常大。

1736919815147.jpg

基于这些风险。有一些最佳原则,总结两点,第一个是尽量缩短暴露的时长,比如可以用固定的凭据AK,可能时间很长,只要不去轮转它。AK给到研发可能用一年、两年甚至十年,AK一直在,时长非常长,如果可以通过一些策略,比如定期的做轮转,半年做一些轮转,AK的时长就可以控制在时间范围里。或者用一些临时的Token方式,第二种方式是尽量缩小暴露的面积,比如测试环境和生产环境,可以使用不同的凭据,而不是一个凭据操作应用的各个环境,甚至可能一个AK操作所有的应用,如果AK一旦被泄露,里面所有的系统都会受影响,这是一个比较简单的理解。

1736919830693.jpg

刚刚讲到的临时Token,在云上有一些最佳实践,比如把程序布在ECS里跑,ECS其实有一种方案,叫实例角色的功能,给ECS实例,给他一个角色,然后他可以操作云上的一些资源。这样,程序其实没有感知到AK的存在,只要把代码部署在这台ECS上,就有相应的权限,这里面不会存在AK泄露的问题,因为程序感知不到AK的存在,整个频率都在ECS实例上面,这是一种实践。有很多的用户其实是一个多账号,这是个账号树,比如有很多业务,有业务A,业务B,每一个业务都有一个账号A1,B1,如果今天要做一些自动化的操作。可能会开一个新的云账号,比如运维账号,假设运维账号C,在运维账号C里跑脚本,或者跑流水线,搭一个Jenkins,或者用阿里云的云效,那在跑流水线的时候,要去操作业务A1账号,b1账号里面的资源。也就是要有这两个账号的身份和权限。如果A1账号给一个AK,B1账号给一个AK,出现AK的泄露风险很高,而且每一个账号都要开一个AK,管理效率、管理成本也很高。如果企业正好是多账号的场景,强烈建议用这套方案,在运维账号里面,比如ECS实例,开一个ECS实例,给它一个实例角色,实例角色有扮演的功能,可以扮演管理账号,叫根账号,里面的一个角色有权限到每个账号里做资源的开通管理操作。在整个过程里,没有一个明文AK,这是方案里非常重要的一点,核心用两个能力,一个是资源管理树,有一个资源目录树管成员账号,另一个重要的点是在运维账号C里做角色的扮演。

1736919847720.jpg

接下来,有一个演示图,这是一个非常典型的多账号架构,一个企业有很多账号,运维账号要做一些自动化的程序,程序大概率部在运维账号里,它有生产账号A,然后B还有很多账号,所有的自动化程序可能都跑在运维账号C里面。

1736919865256.jpg

看一下它大概是有几步,首先,在运维账号里面,创建一个ECS角色ecs-role,权限是STS的AssumeRole权限,给角色授权限,然后在自动化程序ECS上关联到角色。第二步,在管理账号里面创建一个,比如automation-assume,权限有资源目录的权限,有STS AssumeRole的权限,然后在运维账号里配置ECS的角色,并且在这台ECS上面安装比如阿里云的CLI工具,就可以拿到临时的一个AK。接下来做一个简单的实操。

1736919879423.jpg

这是一个演示的环境,多账号的树,现在当前登录账号是资源管理的主账号,之后选择一个运维账号,用来跑自动化程序。

1736919894940.jpg

1736919907594.jpg

简单写几个操作步骤,首先在运维账号里创建一个可信实体类型为阿里云服务的角色:ecs-role。给角色创建调用STS服务的权限。第二步,在管理账号里面创建一个可信类型为阿里云账号的角色,授信策略可以被运维账号扮演。第三步,在运维账号里面购买一台ECS,在ECS里做一些简单的操作,只要能拿到主账号的临时AK,调阿里云的SDK,或者API,或者跑Terraform,都可以往下走。把操作通过Terraform写成一个程序。

1736919923985.jpg

首先第一步在运维上号里面创建一个角色,并且授权。在step里面,创建一个角色,同时授权。第二步,在ma账号,管理账号里面创建一个自动化的角色,同样完成授权跟访问的授信策略,执行一下脚本。

1736919938690.jpg

执行完后,看一下账号里的资源是不是已经被创建出来,当前是管理账号,文档里面会创建一个角色,看一下角色是不是创建出来,时间是12:28。

1736919962119.jpg

创建出来角色,角色里给两个权限,一个是STS的权限,一个是管理资源目录的权限。

授信策略是可以被463扮演,463是运维账号。权限跟授信策略都有,脚本已经成功。

1736920053228.jpg

然后进到运维账号里,运维账号里会创建一个角色,看一下运维账号里角色是不是也创建出来,叫ecs-role。时间也是刚刚创建的时间。看到里面权限有了,授信策略是ECS。执行完Terraform脚本,已经把步骤一跟步骤二的资源创建好了,创建好之后,在运维账号里面有一台ECS,ECS里面要注意一点是跟角色要绑定。

1736920066690.jpg

是跟ecs-role有个绑定关系,如果不绑定,ECS没有权限,绑定完之后,开始在ECS上执行一些阿里云的CLI命令,阿里云CLI可以直接安装在ECS里。

1736920080254.jpg

可以把这几行代码都贴进去,直接echo,把值echo出来,这个时候拿到的值其实是一个STS,是一个临时的密钥,临时的密钥是当前账号临时的密钥。如果拿到这个账号的密钥,可以操作这里面的账号的资源,它权限比较大。

1736920093331.jpg

这样实现当企业有多账号的时候。然后有一个ops账号,它专门做运维跟自动化相关。在这里面可以买一台ECS,所有的脚本都在这台ECS里面操作,全过程中没有看到一个明文AK,通过临时的密钥来实现,能够提升安全性。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
弹性计算 运维 监控
自动化AutoTalk第十一期-应知必会的自动化工具之阿里云配额中心
本次分享主题为“应知必会的自动化工具之阿里云配额中心”,课程围绕三个方面展开:1) 认识配额及其作用;2) 配额管理的意义与方法;3) 阿里云配额中心的功能和使用场景。通过学习,了解如何有效管理和监控配额,避免资源限制影响业务,并实现自动化集成,提升运维效率。
46 10
|
30天前
|
弹性计算 监控 网络协议
自动化AutoTalk第十二期-使用Terraform高效实现云自动化
《自动化AutoTalk第十二期》聚焦使用Terraform高效实现云自动化。内容涵盖IaC(基础设施即代码)概述、Terraform简介与核心组件、实现云自动化步骤及最佳实践。通过Terraform的统一编排语言HCL和对资源生命周期管理,结合CI/CD流程,实现云资源的自服务管理。强调了Terraform在环境准备、业务集成、生产配置及持续监控中的应用,并分享了结合GitLab/GitHub进行代码托管和流程标准化的最佳实践。
|
1月前
|
算法 安全 Java
自动化AutoTalk第十期:应知必会的自动化工具-阿里云SDK
本期《自动化AutoTalk》第十期聚焦应知必会的自动化工具——阿里云SDK。主要内容分为三部分:1. 阿里云SDK概述,介绍其支持的300多款云产品和8种主流编程语言;2. 快速生成SDK示例,以Java语言为例展示如何通过OpenAPI门户快速生成并下载SDK工程;3. 进阶特性介绍,涵盖签名算法、Endpoint配置、代理设置、HTTPS请求配置、超时机制及异常处理等重要功能。通过这些内容,帮助开发者更高效、安全地使用阿里云SDK。
|
6月前
|
机器学习/深度学习 人工智能 机器人
人工智能与自动化:重塑未来工作场景
【8月更文第8天】随着技术的飞速发展,人工智能(AI)和自动化已成为推动各行各业变革的关键力量。这些技术不仅提高了生产效率,还为传统工作岗位带来了新的活力,并创造出了许多全新的职业领域。本文将探讨AI和自动化如何重塑工作场景,并通过具体的编程示例来展示如何利用这些技术。
197 1
|
4月前
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
105 4
|
6月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
277 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
6月前
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
582 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
6月前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
663 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
6月前
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
356 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
|
6月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
346 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程

热门文章

最新文章