gpt4 book ai didi

amazon-web-services - Terraform:如何确保我在预期的 AWS 账户上运行 terraform

转载 作者:行者123 更新时间:2023-12-04 23:13:02 25 4
gpt4 key购买 nike

假设我想在我的 dev 帐户中启动一个 EC2 实例,但有可能我不小心运行了错误的命令并创建了 prod 帐户的临时凭证而不是 dev 帐户,那么当我申请 Terraform 时,我将在 prod 帐户中启动 EC2 ?

我怎样才能避免这种情况发生?我是否可以在此文件夹中创建一个带有 dev 帐户 ID 的文本文件,然后让 Terraform 在启动 EC2 之前(可能在 null_resource 中)将我的临时凭证的帐户 ID 与此文件中的帐户 ID 进行比较?我无法弄清楚如何实现它。

最佳答案

AWS 提供商允许您指定 allowed_account_ids 列表或 forbidden_account_ids 列表,您可以定义这些列表以防止在必要时发生这种情况。

所以你可能有一个看起来像这样的文件夹结构:

$ tree -a
.
├── dev
│   ├── bar-app
│   │   ├── dev-eu-west-1.tf -> ../../providers/dev-eu-west-1.tf
│   │   └── main.tf
│   ├── foo-app
│   │   ├── dev-eu-west-1.tf -> ../../providers/dev-eu-west-1.tf
│   │   └── main.tf
│   └── vpc
│   ├── dev-eu-west-1.tf -> ../../providers/dev-eu-west-1.tf
│   └── main.tf
├── prod
│   ├── bar-app
│   │   ├── main.tf
│   │   └── prod-eu-west-1.tf -> ../../providers/prod-eu-west-1.tf
│   ├── foo-app
│   │   ├── main.tf
│   │   └── prod-eu-west-1.tf -> ../../providers/prod-eu-west-1.tf
│   └── vpc
│   ├── main.tf
│   └── prod-eu-west-1.tf -> ../../providers/prod-eu-west-1.tf
├── providers
│   ├── dev-eu-west-1.tf
│   ├── prod-eu-west-1.tf
│   └── test-eu-west-1.tf
└── test
├── bar-app
│   ├── main.tf
│   └── test-eu-west-1.tf -> ../../providers/test-eu-west-1.tf
├── foo-app
│   ├── main.tf
│   └── test-eu-west-1.tf -> ../../providers/test-eu-west-1.tf
└── vpc
├── main.tf
└── test-eu-west-1.tf -> ../../providers/test-eu-west-1.tf

您的 providers/dev-eu-west-1.tf 文件如下所示:
provider "aws" {
region = "eu-west-1"
allowed_account_ids = [
"1234567890",
]
}

您的 providers/test-eu-west-1.tf 文件如下所示:
provider "aws" {
region = "eu-west-1"
allowed_account_ids = [
"5678901234",
]
}

这意味着您只能在使用属于 dev/foo-app 帐户的凭据时针对 1234567890 运行 Terraform,并且只能在使用属于 dev/foo-app 帐户的凭据时针对 5678901234 运行 Terraform。

关于amazon-web-services - Terraform:如何确保我在预期的 AWS 账户上运行 terraform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50996898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com