![](/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.