覆盖 Terraform 中的 STS API 端点时的 SignatureDoesNotMatch

SignatureDoesNotMatch when overriding STS API endpoint in Terraform

我是 运行 Terraform,位于 AWS 区域 us-west-2(俄勒冈)的私有 VPC 中。因此,我正在使用 VPC endpoints to expose the STS API 并在 Terraform 中覆盖此端点,如下所示:

provider "aws" {
  endpoints {
    sts = "https://sts.us-west-2.amazonaws.com/"
  }
}

不幸的是,这会产生以下错误:

provider.aws: error validating provider credentials: error calling sts:GetCallerIdentity: SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

是什么导致了这个问题?在 public VPC 中应用没有端点覆盖的相同 Terraform 代码按预期工作。

我检查过的东西:

版本:

似乎 Terraform 在将 URL 发送到 AWS 之前没有对其进行清理:

provider "aws" {
  endpoints {
    sts = "https://sts.us-west-2.amazonaws.com" # No trailing slash
  }
}

对我来说效果很好,而尾部斜线会导致你的错误