are*_*ler 3 amazon-web-services amazon-rds terraform
我在 AWS 中有一个使用 terraform 创建的 postgres RDS 实例。
resource "aws_db_instance" "..." {
...
}
Run Code Online (Sandbox Code Playgroud)
现在我尝试通过添加来加密该实例
resource "aws_db_instance" "..." {
...
storage_encrypted = true
}
Run Code Online (Sandbox Code Playgroud)
但当我运行时terraform plan,它说它将强制更换
# aws_db_instance.... must be replaced
...
~ storage_encrypted = false -> true # forces replacement
Run Code Online (Sandbox Code Playgroud)
如何防止 terraform 替换我的数据库实例?
Terraform 在这里没有错。您根本无法在 RDS 实例最初创建后更改其加密设置,不能使用 terraform、不能通过 AWS 控制台或任何 AWS API。
相反,您可以/需要创建当前数据库的快照,复制+加密快照,然后从该快照恢复: https: //aws.amazon.com/premiumsupport/knowledge-center/update-encryption-key-rds/
这将导致数据库停机。terraform 不会自动为您执行此操作,您需要手动执行此操作。恢复数据库后,terraform 不应再尝试替换数据库,因为预期配置现在与实际配置匹配。
从技术上讲,您可以使用ignore_changes该storage_encrypted属性,但这当然会导致 terraform 忽略任何存储加密更改。
| 归档时间: |
|
| 查看次数: |
3338 次 |
| 最近记录: |