使用 RBAC(基于角色的访问控制)
每个项目和组织都有敏感数据和资源,必须只能由受信任的用户和应用程序访问 。系统中的任何新用户都必须分配默认权限(即最小访问控制) 。提升的权限必须仅对项目或组织中的少数成员可用 。
管理员(或超级管理员)必须有权根据需要添加或撤销其他成员的权限 。权限升级也必须根据需要进行,并且只能在有限的时间内进行 。在授予/撤销权限时必须添加适当的注释,以便所有相关的项目涉众都具有完整的可见性 。
使用安全保险库
简单来说,保险库是一种主要用于保护任何敏感信息(例如,密码、API 密钥、证书等)的工具 。以人类可读的形式在本地存储机密信息是管理机密信息最糟糕的方法之一 。
这就是安全保险库非常有用的地方,因为它们为任何秘密提供了统一的接口,并提供了详细的审计日志 。通过指定访问权限(授权),安全保险库还可用于检测基于角色的访问控制 (RBAC) 。Hashicorp Vault Helm chart和Vault for Docker是两个流行的保险库管理器,可用于运行保险库服务、访问和存储机密等 。
由于大多数应用程序都利用了云的潜力,因此在数据传输或静止时关注数据安全性非常重要 。这就是 EaaS(加密即服务)可用于在静态存储数据之前将应用程序的加密需求卸载到保管库的地方 。
定期轮换密钥
几周或几个月后重置密钥是一种很好的安全做法 。一种做法是手动重新生成密钥,因为使用这些秘密的应用程序可能会在日志文件或集中式日志记录系统中留下痕迹 。攻击者可以获得对日志的后门访问并使用它来泄露秘密 。
此外,同事可能会无意中向组织外部泄露机密 。为避免此类情况,建议在相应的机密管理工具中启用机密轮换 。例如,AWS Secrets Manager 中的 Secrets Manager 轮换使用 AWS Lambda 函数来更新密钥和数据库 。
最重要的是,团队应该有适当的实践来检测对系统的未授权访问 。这将有助于在对业务造成重大损害之前采取适当的措施 。
为什么要在 DevSecOps 管道中实施机密管理?
只有在 CI/CD 管道中对代码进行自动化测试,才能实现加速发布周期和更快的开发人员反馈 。在 CI 管道中运行的测试可能需要访问关键的受保护资源,如数据库、HTTP 服务器等 。
甚至在 Docker 容器内运行单元测试也是一种常见做法,但开发人员和 QA 需要确保秘密不存储在 Dockerfile 中 。秘密管理工具可以与流行的 CI/CD 工具(例如 Jenkins)结合使用,从而在集中位置管理密钥和其他秘密 。秘密也通过加密和令牌化存储 。
【软件开发中的密码与密钥管理】
推荐阅读
- 化妆|韩国女模特生活中的一天,你知道过得有多充实吗?
- 中国奇谭|《一人之下》中的风星潼,为人阳光善良却缺乏老练的小可爱
- 三体|谭松韵在《向风而行》中的吃戏,给这些假吃艺人上了一课,用心才能被认可
- 土壤中的微生物有哪些(土壤里的动物和植物)
- |《鼠胆龙威》是一部动作喜剧片,影片当中的李连杰,更是一身正气
- |客户一再要求降价怎么办?职场中的价格战,工作中应对好讨价还价
- 加密pdf如何打印(pdf中的图片怎么提取出来)
- 电影|追忆昔日女星刘玉茹:观众心中的女神,真没想到两年前,就因感染新冠去世了
- 如何提高 JavaScript React 项目中的测试覆盖率
- 精通 JavaScript 中的 Async/Await:异步编程实用指南