我正在使用,terraform & kubectl来部署infra结构和应用程序。
因为我更改了aws配置:terraform apply
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" {
你能给点建议吗?谢谢!
5条答案
按热度按时间wlsrxk511#
从这里。
这是一个常见错误,可能由几个原因引起。
以下是一些例子:
1)作为环境变量或在
~/.aws/credentials
中传递的凭据无效。2)当您的
aws_secret_access_key
包含诸如加号+
或多个正斜杠/
之类的字符时。请参阅here中的更多内容。3)当你试图在一个必须显式启用(但没有)的区域内执行Terraform时。
(In我的案例是
me-south-1 (Bahrain)
-在这里看到更多)。4)如果您使用Vault等第三方工具,但未提供有效的AWS凭据进行通信,请参阅此处的更多信息。
所有这些都将导致aws
sts:GetCallerIdentity
API失败。5ktev3wc2#
在添加S3 Terraform后端后,我得到了同样的无效令牌错误。
这是因为我在新的后端上缺少了一个
profile
属性。这是我在收到无效令牌错误时的设置:
第一个
这是一个有效的修复程序(显示一个差异,我在开头添加了一行“+”):
我阅读或观看的指南或视频都没有包含
profile
属性,但在Terraform文档中对此进行了解释:https://www.terraform.io/language/settings/backends/s3
hkmswyz63#
在我的例子中,我设置了环境变量
AWS_ACCESS_KEY_ID
、AWS_DEFAULT_REGION
和AWS_SECRET_ACCESS_KEY
。这绕过了我的~/.aws/credentials
文件。简单地取消设置这些环境变量对我很有效!avkwfej44#
我的问题与VS代码调试控制台有关:
AWS_PROFILE
和AWS_REGION
环境变量没有加载。为了解决这个问题,我关闭了vscode,然后使用命令code <project-folder>
通过CLI重新打开。xtfmy6hx5#
我使用了aws configure并提供了密钥,如下所示
查看我收到的错误的图像
但我还是收到了无效令牌错误。
请回答
我已经清除了**~/.aws/credentials中的所有内容,然后再次运行aws configure**并提供了我的密钥。
对我很有效,你也试试