我是一个新手,正在寻求建议。
我们有一个用例,使用相同的提供者但具有不同的访问级别来维护和部署资源。意思
- 创建ABC资源(需要帐户管理员权限)
- 创建XYZ资源(它需要比admin帐户更低的权限)
我所有的资源都保存在一个repo子目录中,但是我们可以使用不同的访问级别独立部署资源。
通常您会为每个使用的登录实例化一个提供者。您可以使用相同的提供程序库,但在您的环境中,您将分别引用它们:
provider "aws" {
profile = "limited-access-profile"
}
provider "aws" {
alias = "admin"
profile = "high-access-profile"
}
resource "aws_s3_bucket" {
//This bucket is created with minimal access
...
}
resource "aws_s3_bucket" {
//This bucket is created with high access
provider = aws.admin
...
}
这种多提供者模式最常用于跨帐户访问,尽管您的用例是可行的。
更常见的模式是在高访问级别运行terraform来创建和添加资源的权限,然后在低访问级别运行其他任务和脚本来更新这些资源。