terraform 模块 - 如何将策略放入变量中
terraform module - how to put policy in a variable
我将这段代码片段用作我的模块。
我想知道如何制定政策
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
}
我想知道的是在我的模块中引用 'policy' 的最佳方式,而我 运行 的代码实际上是根据我的模块创建策略的。我不想在我的模块中对实际的 json 进行硬编码。我怎样才能使它更易于重用以便以后用于其他策略?
如何将策略路径作为变量传递给您的模块?
在模块中:
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"
}
我将这段代码片段用作我的模块。
我想知道如何制定政策
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
}
我想知道的是在我的模块中引用 'policy' 的最佳方式,而我 运行 的代码实际上是根据我的模块创建策略的。我不想在我的模块中对实际的 json 进行硬编码。我怎样才能使它更易于重用以便以后用于其他策略?
如何将策略路径作为变量传递给您的模块?
在模块中:
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"
}