当我们使用 Terraform 管理 Azure 上的基础设施时,我对如何使用服务原则用户感到有点困惑。
例如,是否建议有一个SP供整个团队共享?或者我们需要为每个用户设置一个 SP?
如果每个用户都有 SP,这会导致某些资源出现问题,例如密钥保管库,这些资源本来是由一个 SP 用户配置的,因此已为该用户定义了访问策略,而团队中拥有不同 SP 的另一个人则不会可以从他们的笔记本电脑上修改该保管库。
不确定我的问题是否足够清楚,但未能找到有关这些场景的具体细节。
非常赞赏
当您有服务(非人类)执行操作时,应使用服务主体。例如,在这种情况下,Terraform 将使用服务主体来配置您的基础设施作为 CI/CD 管道的一部分。
服务主体(在任何环境中)通常配置有最小权限。原因是服务主体旨在用于单一且非常特定的目的,例如调用 Terraform 来配置您的环境。因此,你的服务主体可能有权从 Azure Key Vault 读取一组特定的机密,这些机密用于在特定资源组(或一组资源组)中预配资源。就是这样。
将其与用户帐户进行比较,例如您用于完成工作的帐户。您可以访问多个 Azure 订阅、可以在任何地方预配资源、删除资源、配置对资源的访问权限等等。
使用服务主体的主要原因在于安全性。使用上面的示例,如果服务主体的凭据(客户端 ID 和机密)遭到泄露,那么人们对这些凭据唯一能做的就是从密钥保管库读取机密并在特定资源组中配置资源。
此处的文档演示了如何向服务主体贡献者授予对整个订阅的权限。这比我上面给出的例子限制更少。但是,我怀疑它假设了另一种最佳实践,即您的开发/测试环境应该使用与生产和其他环境不同的 Azure 订阅。因此,虽然服务主体对专用于开发/测试的订阅拥有完整的贡献者权限,但它仍然无权访问组织拥有的其他订阅,也不能用于配置对订阅中资源的访问权限。
| 归档时间: |
|
| 查看次数: |
3005 次 |
| 最近记录: |