当在Terraform中使用AWS模块创建EC2实例时,我们可能会遇到“Invalid Key Pair”错误,即使公钥在AWS中定义并确保在Terraform变量中正确设置也不例外。这可能发生在使用IAM角色而不是Access Key和Secret Key的情况下。
解决此问题的方法是将AWS凭证配置为使用IAM角色,并在Terraform代码中使用以下语句:
provider "aws" {
profile = "default"
region = "us-west-2"
}
解决方法的关键是确保在Terraform配置文件中设置AWS provider的profile选项。这将告诉Terraform使用AWS CLI凭证文件中配置的IAM角色。如果您未设置profile,则Terraform将尝试使用默认的Access Key / Secret Key对进行身份验证,而不是基于IAM角色的身份验证。通过设置profile选项,我们可以确保Terraform使用正确的凭证,从而解决“Invalid Key Pair”错误。