amazon-web-services - Terraform Workspace - AWS 提供 - 如何为每个工作区维护不同的 IAM 实例角色/策略?
问题描述
我正在尝试使用 Terraform 工作区在 AWS 中构建多个环境。
每个环境都有自己的 IAM 实例角色,需要附加不同的策略。
如何使用 Workspace 在 Terraform 中强制执行此操作。
Terraform 文件夹结构:
ami.tf
backend.tf
iam_role_policy.tf
lauch_config.tf
local.tf
main.tf
output.tf
provider.tf
user_data.sh
variables.tf
地形代码:
resource "aws_launch_configuration" "launch_config" {
name_prefix = "${var.application_name}-${var.application_type}-${local.environment}-launch-config-"
image_id = "${data.aws_ami.puppet_ami.id}"
instance_type = "${local.instance_type}"
security_groups = "${var.security_group}"
key_name = "${local.key}"
user_data = "${data.template_file.user_data.rendered}"
iam_instance_profile = "${aws_iam_instance_profile.iam_instance_role.name}"
associate_public_ip_address = false
}
我尝试使用environment
不起作用的文件夹结构
iam_instance_profile = "${local.environment}/${aws_iam_instance_profile.iam_instance_role.name}"
下面是错误
terraform plan
Acquiring state lock. This may take a few moments...
Error: Reference to undeclared resource
on lauch_config.tf line 23, in resource "aws_launch_configuration" "launch_config":
23: iam_instance_profile = "${local.environment}/${aws_iam_instance_profile.iam_instance_role.name}"
A managed resource "aws_iam_instance_profile" "iam_instance_role" has not been
declared in the root module.
Error: Reference to undeclared resource
关于如何缓解这个问题的任何想法?
解决方案
推荐阅读
- python - Python - 格式化excel表格太慢(逐行)
- regex - 在 Bash 中将 vim 替换为 sed / awk
- laravel - Laravel - 使用 where 时 Eloquent 覆盖 get 方法
- java - 使用 Maven 下载具有依赖项的 jar
- python-3.x - 如何将字符串传递给python3中的函数参数
- ios - 在数据源中隐藏表格视图单元或过滤器更好吗?(性能问题)
- mysql - SQL:分别按过去 3 个月和过去 5 个月分组
- sql - SQL - 具有多个条件的分组集
- python - 使用python中的元组键从dict中获取项目
- bazel - bazel 可以打印构建规则的层次结构吗?