【发布时间】:2021-11-02 22:42:09
【问题描述】:
我正在尝试使用 terraform 启动与 AWS 的连接以创建基础设施。 如果我运行 aws configure sso,我可以默认登录到 eu-west-2 并在庄园内四处走动 然后我使用 terraform apply,aws 部分如下:
provider "aws" {
region = "eu-west-2"
shared_credentials_file = "~/.aws/credentials"
profile = "450694575897_ProdPS-SuperUsers"
}
Terraform 报告:错误:使用凭据获取帐户 ID 时出错:调用 sts:GetCallerIdentity 时出错:InvalidClientTokenId:请求中包含的安全令牌无效。 │ 状态码:403,请求id:5b8be53d-253d-4c48-8568-ad78be14115f
设置了以下变量:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
如果我跑步
aws sts get-session-token --region=us-west-2
我明白了
An error occurred (InvalidClientTokenId) when calling the GetSessionToken operation: The security token included in the request is invalid.
【问题讨论】:
-
AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 使用 AWS SSO 设置没有意义。使用 AWS SSO,您可以使用
aws sso login获取凭证,并将其存储在 json 文件中。您唯一需要在 terraform 中设置的是区域和配置文件。 -
好的,谢谢,所以我做 aws sso 登录,然后我尝试同样的事情: aws sts get-session-token --region=us-west-2 。同样的问题。接下来是什么
-
清除 vars 后,我的 .tf -------- provider "aws" { region = "eu-west-2" shared_credentials_file = "~/.aws/credentials " 配置文件 = "450694575897_ProdPS-SuperUsers" }。然后运行 terraform apply,我得到
ExpiredToken请求中包含的安全令牌已过期 。如果我删除 shared_credentials_file 位@jordanm,也会出现同样的错误。如果我从 aws 部分删除“配置文件”,我会收到一条消息:请求中包含的安全令牌无效”当我运行 terraform 应用时 -
如果我做 cat ~/.aws/config,我会更进一步。我可以看到我的实际个人资料名称是这样的:[profile ProdPS-SuperUsers-450694575897]。然后我用提供者“aws”{region =“eu-west-2”profile =“ProdPS-SuperUsers-450694575897”}配置.tf。然后我运行 terraform 计划。运行了很长时间,然后最终说:错误:没有为 AWS Provider 找到有效的凭证源。
标签: amazon-web-services security terraform token