0

我将这段代码片段用作我的模块。

我想知道的是如何制定政策

resource "aws_iam_role_policy" "role" {
  name   = var.name
  role   = var.role
  policy = file("${path.module}/mypolicy.json")
}

这是我创建 TF 的代码:

module "aws_iam_role_policy" {
   source = "../modules/mypolicypolicy/"
   name = "mypolicy"
   role = module.myrole.myroleout
}

我想知道的是在我的模块中引用“策略”的最佳方式,以及我运行的代码以实际基于我的模块创建策略。我不想在我的模块中硬编码实际的 json。我怎样才能使它更可重用,以便以后用于其他策略?

4

1 回答 1

1

将策略路径作为变量传递给您的模块怎么样?

在模块中:

variable "iam_policy_path" {
  default = "./mypolicy.json"  
}

resource "aws_iam_role_policy" "role" {
  name   = var.name
  role   = var.role
  policy = file(var.iam_policy_path)
}

然后在父模块中,如果需要,您只需提供新路径?

module "aws_iam_role_policy" {
   source = "../modules/mypolicypolicy/"
   name = "mypolicy"
   role = module.myrole.myroleout
   iam_policy_path = "new_policy_path.json"
}
于 2020-08-01T03:45:00.303 回答