SEC11-BP05 集中管理服务,方便获取软件包和依赖项
提供集中式服务,方便您的团队获取软件包和其它依赖项。通过采取这种做法,可以在将软件包纳入所编写的软件之前,对软件包进行验证;另外,还可以为分析贵组织所使用的软件提供数据来源。
期望结果:除了您编写的代码之外,还可以使用外部软件包来构建工作负载。这使您更容易实现重复使用的功能,例如 JSON 解析器或加密库。您将这些软件包和依赖项的来源集中在一起,以便安全团队可以在使用软件包和依赖项之前对其来源进行验证。您将此方法与手动和自动测试流程结合使用,来增强对所开发软件的质量的信心。
常见反模式:
-
您从互联网上的任意存储库中提取软件包。
-
您在将新软件包提供给构建者之前,未对其进行测试。
建立此最佳实践的好处:
-
更好地了解正在构建的软件中使用了哪些软件包。
-
了解谁使用了哪些软件包后,在需要更新软件包时,能够向工作负载团队发出通知。
-
降低软件中存在问题软件包的风险。
在未建立这种最佳实践的情况下暴露的风险等级:中
实施指导
以构建者易于使用的方式为软件包和依赖项提供集中管理服务。集中管理服务可以在逻辑上集中,而不用作为一个整体系统来实施。利用此方法,您可以通过满足构建者需求的方法来提供服务。您应该实施一种有效的方法:在发生更新或出现新需求时将软件包添加到存储库。AWS CodeArtifact
实施步骤
实施可在用于开发软件的所有环境中使用的逻辑集中式存储库服务。
在 AWS 账户 分配过程中包括对存储库的访问权限。
构建自动化以在存储库中发布软件包之前对其进行测试。
维护最常用软件包、语言和更改量最大的团队的指标。
-
为构建者团队提供一种自动化机制来请求新软件包和提供反馈。
-
定期扫描存储库中的软件包,以确定新发现的问题的潜在影响。
资源
相关最佳实践:
相关文档:
相关示例:
相关视频: