![](/img/trans.png)
[英]AWS Authorization In Code - {“message”: “The security token included in the request is invalid.” }
[英]InvalidClientTokenId: The security token included in the request is invalid. status code: 403
我正在使用 terraform 和 kubectl 来部署基础架构和应用程序。
由于我更改了 aws 配置:
terraform init
terraform apply
我总是得到:
terraform apply
Error: error validating provider credentials: error calling sts:GetCallerIdentity: InvalidClientTokenId: The security token included in the request is invalid.
status code: 403, request id: 5ba38c31-d39a-11e9-a642-21e0b5cf5c0e
on providers.tf line 1, in provider "aws":
1: provider "aws" {
你能建议吗? 欣赏 !
从这里。
这是一个一般错误,可能由几个原因引起。
一些例子:
1) 作为环境变量或在~/.aws/credentials
。
解决方案:删除旧的配置文件/凭据并清理所有环境变量:
for var in AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_SECURITY_TOKEN ; do eval unset $var ; done
2) 当您的aws_secret_access_key
包含加号+
或多个正斜杠/
等字符时。 在这里查看更多信息。
解决方案:删除凭据并生成新凭据。
3) 当您尝试在必须显式启用(但未启用)的区域内执行 Terraform 时。
(就我而言,它是me-south-1 (Bahrain)
- 在这里查看更多信息)。
解决方案:启用区域或移动到启用的区域。
4) 如果您使用Vault等 3rd 方工具并且不提供有效的 AWS 凭证进行通信 - 请在 此处查看更多信息。
所有这些都会导致 aws sts:GetCallerIdentity
API 失败。
添加 S3 Terraform 后端后,我得到了同样的无效令牌错误。
这是因为我在新后端缺少profile
属性。
这是我收到无效令牌错误时的设置:
# ~/.aws/credentials
[default]
aws_access_key_id = OJA6...
aws_secret_access_key = r2a7...
[my_profile_name]
aws_access_key_id=RX9T...
aws_secret_access_key=oaQy...
// main.tf
terraform {
backend "s3" {
bucket = "terraform-state"
encrypt = true
key = "terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-state-locks"
}
}
这是有效的修复(显示差异,我在开头添加了带有“+”的行):
// main.tf
terraform {
backend "s3" {
bucket = "terraform-state"
// ...
+ profile = "my_profile_name"
}
}
我阅读或观看的指南或视频都没有包含profile
属性。 但它在 Terraform 文档中进行了解释,这里:
就我而言,事实证明我设置了环境变量AWS_ACCESS_KEY_ID
、 AWS_DEFAULT_REGION
和AWS_SECRET_ACCESS_KEY
。 这绕过了我的~/.aws/credentials
文件。 简单地取消设置这些环境变量对我有用!
我的问题与 VS Code 调试控制台有关:未加载AWS_PROFILE
和AWS_REGION
环境变量。 为了解决这个问题,我关闭了 vscode 并使用命令code <project-folder>
通过 CLI 重新打开。
我使用了aws configure并提供了我的密钥,如下所示查看我得到的错误图片
但我仍然收到无效令牌错误。
回答
我已经清除了~/.aws/credentials中的所有内容,然后再次运行aws configure并提供了我的密钥。
它对我有用。 也试试
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.