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

标签 terraform snowflake-cloud-data-platform

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

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

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

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

最佳答案

通常您会在每次使用登录时实例化一个提供程序。您可以使用相同的提供程序库,但在您的 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
    ...
}

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

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

关于terraform - 是否可以部署具有不同访问级别的 terraform 资源,如果可以,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69498050/

相关文章:

azure - Terraform 授予 azure 函数应用程序与 msi 访问 azure keyvault 的权限

nginx - 如何在 terraform 中创建 nginx 入口 - aks

compiler-errors - 雪花错误- 'SQL compilation error: Empty SQL statement'

snowflake-cloud-data-platform - 雪花函数

data-modeling - 如何计算日期维度的 iso_week_start_date 和 iso_week_end_date?

azure - Snowpipe 云消息传递机制在 Azure 上到底如何工作?

Terraform 转义序列

terraform - 如何将 .env 文件中的环境变量读入 terraform 脚本?

Terraform cidrsubnets 循环 100 个子网

sql - 获取未知大小数组的最后一个元素