модуль terraform - как поместить политику в переменную - PullRequest
0 голосов
/ 01 августа 2020

У меня есть этот фрагмент кода, который я использую в качестве модуля.

Мне интересно, как я могу сделать политику

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 в моем модуле. Как я могу сделать это более пригодным для повторного использования в дальнейшем для других политик?

1 Ответ

1 голос
/ 01 августа 2020

Как насчет передачи пути к политике в качестве переменной в ваш модуль?

В модуле:

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"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...