使用云服务开展业务和运维工作的一些最佳实践
- 2025-10-16 19:32:00
- 丁国栋
- 原创 32
背景:最近有一个核心业务的技术同事离职了,这位同事日常会负责腾讯云 TKE(Kubernetes容器服务)的管理工作,因此这位同事拥有Kubernetes集群的管理权限。因为容器服务通常搭配腾讯云 TCR(容器镜像仓库)服务使用,所以我们会在TKE中安装TCR组件,这样可以从TCR中“免密”拉取镜像。但由于腾讯云TCR当时版本的设计,这位同事在安装过程中默认创建的凭据是使用当前登录用户的uid+密码,所以一旦这个子账户被删除,那么凭据都会失效,凭据失效就是导致Kubernetes所有命令空间无法从TCR中免密拉取镜像了。
对于这个问题我们采用了两步解决方法:
1. 临时解决方法:先去TCR对应的命名空间里设置公开访问,即无需密码就可以拉取;但这个需要保证镜像无泄漏,只能临时使用不可长期使用;
2. 永久解决办法:自行删除集群内所有TCR注入的凭据,卸载TCR,再安装TCR,在安装TCR时手动指定服务及帐号凭据,这样人员离职后可以放心的删除对应的子账号。
关于TCR凭据和产品设计问题我和腾讯云服务团队进行过讨论,例如卸载TCR时支持删除TCR注入的凭据,注入凭据时覆盖之前注入的凭据。对于我们用户来说,可能只是在TCR设置界面上有一个选项就搞定,勾选这个选项就删除凭证或覆盖凭证。实际产品设计可能需要考虑到其他因素,需要腾讯云团队评估。
所以需要整理一份云服务的标准规范以及最佳实践。
- 使用子账号进行日常管理,子账号必须使用MFA多因素认证,必要时使用操作保护;
- 最小权限原则,包括账号、密钥权限;
- 不使用主账号的AK;
- 不共享任何AK、凭据等,定期更换;
- 在公共服务中不使用任何子账号、私人凭据;
- 及时清理不再使用的资源;
- 日常进行各类操作演练;
- 写操作需要有记录;
- 基础设施即代码,结合版本控制软件Git使用;
- 知晓哪些服务是付费的,如何付费,付费计划是否合理;
- 对于VPC、对象存储的一些不容易变更的设置需要提前规划,比如VPC的子网大小、对象存储的版本控制等;
- 充分利用多可用区和灾备措施,避免单可用区发生故障无法恢复;
- 合理设置安全组,仅允许开放必要的端口和白名单访问;
- 对于突发事件、恶意攻击需要准备处理预案,有应对措施和技术方案;
- 设置全面、有效监控告警、性能数据观测等;
- 充分利用云服务商的技术支持、文档系统、API等;
- 使用自动化、CI/CD等提升开发、运维效率;
--
发表评论