Я управляю Terraform в регионе AWS us-west-2 (Oregon) в частном VPC.Из-за этого я использую конечные точки VPC для предоставления 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.
Что может быть причиной этой проблемы?Применение того же кода Terraform без переопределения конечной точки в общедоступном VPC сработало как ожидалось.
Вещи, которые я проверял:
- Экземпляр, на котором работает Terraform, отображает правильное время (UTC)
- Для env-переменных AWS_REGION и AWS_DEFAULT_REGION задано значение us-west-2
- env-переменная AWS_SECRET_ACCESS_KEY, которую я использую для аутентификации (вместе с AWS_ACCESS_KEY_ID) содержит только 10 буквенно-цифровых символов
Версии:
terraform version
: Terraform v0.11.13 terraform-provider-aws
: v2.17.0