基础设施安全与管理:权限、标签与策略代码化
1. 权限管理与最小特权原则
在遵循最小特权原则时,移除权限需格外谨慎。有时,管道需要更特定的权限来读取或更新依赖项。若权限不足,可能会破坏基础设施或应用程序。
部分基础设施提供商(如 GCP)会分析服务账户或用户使用的权限,并输出一组多余的权限。此外,还可运行第三方工具来分析访问权限并识别未使用的权限。建议每次添加新的基础设施资源时,使用这些工具检查和更新访问控制。
2. 配置中保护机密信息
除了使用管道中的管理凭证访问基础设施提供商外,有人可能会修改管道以打印出有关基础设施的敏感信息。例如,前端交付管道可能会在日志中输出数据库根密码,任何有权访问管道日志的人都可以使用该根密码登录数据库。
为解决此安全问题,可采取以下措施:
1. 使用基础设施即代码工具将密码标记为敏感变量,该工具会在日志中屏蔽密码。
2. 在管道工具中安装插件,以识别并屏蔽任何敏感信息,如密码。
3. 将这两个配置添加到管道中,避免数据库密码在管道日志中泄露。
4. 作为安全预防措施,在机密管理器中轮换数据库密码。
可使用工具通过抑制或编辑明文信息来屏蔽交付管道中的密码。屏蔽敏感信息意味着抑制或编辑其明文格式,以防止他人读取该信息。使用一种或两种机制可防止敏感信息出现在管道日志中。敏感信息包括密码、加密密钥或基础设施标识符(如 IP 地址)。
不过,屏蔽敏感信息并不能保证防止未经授权的访问。仍需一个工作流来尽快补救暴露的凭证。可使用机密管理器存储和轮换凭证,而非在基础设施即代码中定义它们。
单独管理机密信息会给基础设施即代码