我有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元素的错误值无关。
答案 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主密钥。