首页 > 解决方案 > terraform S3 模块,无法调用 KMS 密钥 arn 调用模块

问题描述

我的 S3 模块有问题,当我在模块级别的变量中放置默认 KMS arn 时,它可以工作。

|- main.tf
|- variable.tf
|- /S3
    - main.tf
    - variable.tf

模块 s3 main.tf:

resource "aws_s3_bucket" "default" {
  bucket = var.name
  tags   = var.tags
  acl    = "private"

  server_side_encryption_configuration {
    rule {
      apply_server_side_encryption_by_default {
        enabled = true
        kms_master_key_id = var.kms_key_arn
        sse_algorithm     = "aws:kms"
      }
    }
  }
}

模块 s3 variable.tf (当我用 ARN 键替换 kms_key_arn 的空值字段时,它可以工作)

variable "tags" {
  type = map
  description = "Specifies the S3 tags here."
}

variable "name" {
  type        = string
  description = "Specifies the S3 path were spark stores it jobs log."
}

variable "kms_key_arn" {
  type        = string
  description = "Specifies the kms key used for this project."
  default     = null
}

根 main.tf:

module "s3_python_scripts" {
  source  = "./s3"
  name  = "s3://my_S3_path/"
  tags = var.tags
  kms_master_key_id = var.kms_key_arn
}

根变量.tf:

...

variable "kms_key_arn" {
  type        = string
  description = "Specifies the kms key used for this project."
  default     = "arn:aws:kms:xxxxxxxxxxxxxxx:xxxxxxxxxxxxxxx:key/xxxxxxxxxxxxxxx"
}

我收到以下错误:

错误:maint.tf 第 24 行不支持的参数,在模块“s3_python_scripts”中:24:kms_master_key_id = var.kms_key_arn 这里不需要名为“kms_master_key_id”的参数。

我不知道发生了什么事。

请你帮助我好吗 ?

问候。

标签: python-3.xamazon-web-servicesamazon-s3terraformaws-kms

解决方案


没有名为 的变量kms_master_key_id。这是您试图在模块内设置的属性,但模块的变量名为kms_key_arn.

它应该是以下内容:

kms_key_arn = var.kms_key_arn

推荐阅读