Terraform EC2(根块设备加密错误未能达到目标状态)

Posted

技术标签:

【中文标题】Terraform EC2(根块设备加密错误未能达到目标状态)【英文标题】:Terraform EC2 (Root Block device Encryption error failing to reach target state) 【发布时间】:2021-11-16 22:33:47 【问题描述】:

这个错误已经存在超过 10 天了。

在 Terraform 中创建 EC2 实例时,该实例不会达到目标状态并说:

Error: Error waiting for instance (i-*************) to become ready: Failed to reach target state. Reason: Client.InternalError: Client error on launch

我们还在我们的 EC2 仪表板中启用了对新 EBS 卷的加密。

我的基本 EC2 代码如下所示:

    resource “aws_instance” “web” 
    ami = “ami-"
    instance_type = “t2.micro”
    availability_zone = “ap-south-1a”
    root_block_device 
    volume_size = “10”
    volume_type = “gp2”
    delete_on_termination = true
    encrypted = true
    kms_key_arn = "arn:aws:kms:*************”
    
    

【问题讨论】:

我认为您在这里提出问题之前没有进行足够的研究,因为简单的谷歌搜索会给出:aws.amazon.com/premiumsupport/knowledge-center/…。 嘿@Marko E,由于我们的生产集群在 EC2 上运行,因此新的 ebs 卷已加密。但它以某种方式无法加密根块设备。 【参考方案1】:

我自己就是这样做的。

我正在使用 KMS CMK 并使用以下方式调用 arn:

root_block_device 
    kms_key_id    = "arn:aws:kms:*************”

您可能还发现您需要在 KMS 中允许该 CMK 的用户帐户,这通常是您看到该错误的原因:

Error waiting for instance (i-*************) to become ready...

【讨论】:

哦,我明白了,您认为我目前还缺少哪些其他内容。你能帮忙吗 嘿嘿,你还有什么其他的政策在这里遗漏了。

以上是关于Terraform EC2(根块设备加密错误未能达到目标状态)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 terraform 在 LocalStack 上创建 EC2 实例?

如何使用 terraform 将负载均衡器添加到 ec2 实例

如何使用 Terraform 传递 AssumeRole 并将 SSM 文档与 EC2 关联

Terraform schedule_expression cron 错误

为 EC2 实例创建签名证书时如何防止循环依赖?

如何通过 Terraform 部署 Open*** EC2 实例? [关闭]