是否可以部署具有不同访问级别的 terraform 资源,如果可以,如何部署?

Bal*_*ali 3 terraform snowflake-cloud-data-platform

我对 terraform 非常陌生,正在寻求建议。

我们有一个用例,使用相同的提供程序但具有不同的访问级别来维护和部署资源。意义

  1. 创建ABC资源(需要账户管理员权限)
  2. 创建XYZ资源(它需要比帐户管理员更低的权限)

我的所有资源都维护在一个存储库子目录中,但我们可以使用不同的访问级别独立部署资源。

Dan*_*ego 7

通常,您会在每次登录时实例化一个提供程序。您可以使用相同的提供程序库,但在您的 terraform 中您将单独引用它们:

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
    ...
}
Run Code Online (Sandbox Code Playgroud)

尽管您的用例是可行的,但这种多提供商模式最常用于跨帐户访问。

更常见的模式是以高访问级别运行 terraform 以创建资源并添加权限,然后以低访问级别运行其他任务和脚本来更新这些资源。