将资源创建限制为 Terraform 中的特定 AWS 提供商配置文件

Restrict creation of resources to a particular AWS Provider Profile in Terraform

我正在尝试实施一种逻辑来限制仅为特定 AWS 配置文件创建 AWS 资源,这样就不会有人意外地在不同的 AWS 配置文件中创建 AWS 资源。

例如- 仅当为以下配置文件设置 AWS 变量时,才会创建 AWS 资源

provider "aws" {
  profile = "AWS_Horizontal_Dev"
  region  = "us-east-1"
}

如果用户不小心设置了不同配置文件的 AWS 变量,则不应创建 AWS 资源。

实现此逻辑的最佳方法是什么?

您也可以在此处添加 allowed_account_ids 参数以限制到确切的 AWS 帐户,假设您的 AWS 配置文件映射到 AWS 帐户:

provider "aws" {
  profile = "AWS_Horizontal_Dev"
  region  = "us-east-1"
  allowed_account_ids = ["${var.allowed_account_id}"]
}

或者您可以使用 forbidden_account_ids 排除不允许的帐户:

provider "aws" {
  profile = "AWS_Horizontal_Dev"
  region  = "us-east-1"
  forbidden_account_ids = ["${var.excluded_account_id}"]
}