You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform为新S3存储桶启用S3 Bucket Key?

使用Terraform启用S3 Bucket Key的实现方法

要在Terraform中为S3存储桶启用Bucket Key,核心是在服务器端加密配置中添加bucket_key_enabled = true参数,且仅适用于采用KMS加密(sse_algorithm = "aws:kms")的存储桶。以下是具体实现示例:

方法一:使用独立的加密配置资源

resource "aws_s3_bucket" "example_bucket" {
  bucket = "your-unique-bucket-name"
}

resource "aws_s3_bucket_server_side_encryption_configuration" "example_encryption" {
  bucket = aws_s3_bucket.example_bucket.id

  rule {
    apply_server_side_encryption_by_default {
      # 可替换为自定义KMS密钥ARN或AWS托管的S3 KMS密钥ARN(格式:arn:aws:kms:区域:账号ID:key/aws/s3)
      kms_master_key_id = "arn:aws:kms:us-east-1:123456789012:key/your-kms-key-id"
      sse_algorithm     = "aws:kms"
      bucket_key_enabled = true # 启用Bucket Key的关键配置
    }
  }
}

方法二:内嵌加密配置到存储桶资源

部分新版本Terraform AWS Provider支持直接在aws_s3_bucket资源中内嵌加密配置,示例如下:

resource "aws_s3_bucket" "example_bucket" {
  bucket = "your-unique-bucket-name"

  server_side_encryption_configuration {
    rule {
      apply_server_side_encryption_by_default {
        sse_algorithm     = "aws:kms"
        kms_master_key_id = "arn:aws:kms:us-east-1:123456789012:key/your-kms-key-id"
        bucket_key_enabled = true
      }
    }
  }
}

注意事项

  • 确保使用的Terraform AWS Provider版本在3.70.0及以上,该版本开始支持bucket_key_enabled参数
  • Bucket Key仅兼容KMS加密方式,不能与SSE-S3(AES256)配合使用
  • 若使用AWS托管的KMS密钥,kms_master_key_id可设置为对应区域的aws/s3密钥ARN

内容的提问来源于stack exchange,提问作者boringDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:05:02