【问题标题】:Terraform - Encrypting a db instance forces replacementTerraform - 加密数据库实例强制替换
【发布时间】:2021-12-17 01:36:10
【问题描述】:

我在 AWS 中有一个使用 terraform 创建的 postgres RDS 实例。

resource "aws_db_instance" "..." {
  ...
}

现在我正在尝试通过添加来加密该实例

resource "aws_db_instance" "..." {
  ...
  storage_encrypted = true
}

但是当我运行terraform plan 时,它说它将强制替换

# aws_db_instance.... must be replaced
...
~ storage_encrypted                     = false -> true # forces replacement

如何防止 terraform 替换我的数据库实例?

【问题讨论】:

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


    【解决方案1】:

    Terraform 在这里没有错。您根本无法在最初创建 RDS 实例后更改其加密设置。您可以/需要创建当前数据库的快照,复制 + 加密快照,然后从该快照恢复:https://aws.amazon.com/premiumsupport/knowledge-center/update-encryption-key-rds/

    这将导致数据库停机。 terraform 不会自动为您执行此操作,您需要手动执行此操作。数据库恢复后,terraform 不应再尝试替换数据库,因为预期配置现在与实际配置匹配。


    从技术上讲,您可以 ignore_changes storage_encrypted 属性,但这当然会导致 terraform 简单地忽略任何存储加密更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2018-09-26
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多