【问题标题】:How to encrypt S3 bucket using Terraform如何使用 Terraform 加密 S3 存储桶
【发布时间】:2019-08-09 10:22:04
【问题描述】:

我正在尝试创建加密的 S3 存储桶。执行 terraform apply 后,一切看起来都很好,但是当我在 AWS 控制台中查看存储桶时,它没有加密。我也知道previous 问题。

这是我的 terraform 版本:

Terraform v0.11.13
+ provider.aws v2.2.0

这是我的 tf 文件:

resource "aws_s3_bucket" "test-tf-enc" {
  bucket = "test-tf-enc"
  acl    = "private"

  tags {
    Name = "test-tf-enc"
  }

  server_side_encryption_configuration {
    rule {
      apply_server_side_encryption_by_default {
        sse_algorithm = "AES256"
      }
    }
  }
}

这是我执行命令后的输出:

aws_s3_bucket.test-tf-enc: Creating...
  acceleration_status:                                                                                   "" => "<computed>"
  acl:                                                                                                   "" => "private"
  arn:                                                                                                   "" => "<computed>"
  bucket:                                                                                                "" => "test-tf-enc"
  bucket_domain_name:                                                                                    "" => "<computed>"
  bucket_regional_domain_name:                                                                           "" => "<computed>"
  force_destroy:                                                                                         "" => "false"
  hosted_zone_id:                                                                                        "" => "<computed>"
  region:                                                                                                "" => "<computed>"
  request_payer:                                                                                         "" => "<computed>"
  server_side_encryption_configuration.#:                                                                "" => "1"
  server_side_encryption_configuration.0.rule.#:                                                         "" => "1"
  server_side_encryption_configuration.0.rule.0.apply_server_side_encryption_by_default.#:               "" => "1"
  server_side_encryption_configuration.0.rule.0.apply_server_side_encryption_by_default.0.sse_algorithm: "" => "AES256"
  tags.%:                                                                                                "" => "1"
  tags.Name:                                                                                             "" => "test-tf-enc"
  versioning.#:                                                                                          "" => "<computed>"
  website_domain:                                                                                        "" => "<computed>"
  website_endpoint:                                                                                      "" => "<computed>"
aws_s3_bucket.test-tf-enc: Still creating... (10s elapsed)
aws_s3_bucket.test-tf-enc: Creation complete after 10s (ID: test-tf-enc)

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

【问题讨论】:

  • 代码看起来不错,甚至 terraform 输出看起来也不错。这可能是最新的 AWS Provider 的错误。你试过1.60吗?您可以这样指定:provider "aws" { region = "us-east-1" version = "1.60.0" }
  • 该资源的提供者版本没问题,代码看起来也不错。所以它会是别的东西。
  • 我使用 aws provider 1.60.0 版进行了测试,但无济于事。
  • 您的 terraform 代码看起来不错,所以它一定是导致问题的其他原因,可能是权限问题。试试这个 cli 命令看看它是否有效: aws s3api put-bucket-encryption --bucket my-bucket --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": " AES256"}}]}'
  • 代码运行正常;我用来登录 AWS 管理控制台的用户没有足够的权限查看 s3 存储桶加密属性。感谢@victorm 帮助我解决问题。

标签: amazon-web-services amazon-s3 terraform


【解决方案1】:

按预期工作。 使用没有足够权限的不同用户通过 AWS 管理控制台中的 UI 验证操作会导致混乱。 UI 中的权限不足消息仅在展开“加密”窗格后可见。
使用 aws cli 进行故障排除以减少问题面。

【讨论】:

    猜你喜欢
    • 2023-01-05
    • 1970-01-01
    • 2017-06-26
    • 2023-03-24
    • 1970-01-01
    • 2019-11-10
    • 2022-11-21
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多