在S3中添加存储桶KMS加密时出错

时间:2018-02-21 20:47:35

标签: terraform

我有Terraform代码,我已经添加了KMS加密。

resource "aws_s3_bucket" "bucket" {
  bucket = "${var.bucket}${var.envSuffix}"
  acl    = "private"
  tags {
      Name = "${var.bucket}${var.envSuffix}"
      Environment = "${var.env}"
  }

  server_side_encryption_configuration {
    rule {
      apply_server_side_encryption_by_default {
        kms_master_key_id = "${var.kms_key_id}"
        sse_algorithm     = "aws:kms"
      }
    }
  }
}

当我运行申请时,我收到错误:

invalid or unknown key: server_side_encryption_configuration

我正在运行Terraform v0.11.0。为什么Terraform不将server_side_encryption_configuration识别为有效元素?我假设它指的是server_side_encryption_configuration元素而不是kms_master_key_id元素。

我在没有kms_master_key_id元素的情况下进行了测试并得到完全相同的错误,因此它似乎与分配给kms_master_key_id元素的错误值无关。

1 个答案:

答案 0 :(得分:0)

kms_master_key_id应该是ARN而不是关键名称。

您能否确认是否在var.kms_key_id进行了正确的设置?

   kms_master_key_id = "${aws_kms_key.mykey.arn}"
  

kms_master_key_id - (可选)用于SSE-KMS加密的AWS KMS主密钥ID。这只能在将sse_algorithm的值设置为aws:kms时使用。如果在sse_algorithm为aws:kms时缺少此元素,则使用默认的aws / s3 AWS KMS主密钥。