Las*_*eek 4 amazon-ec2 amazon-web-services terraform
我正在使用 Terraform 和用户数据在 AWS 中设置一个 HA 集群。我的 main.tf 看起来像这样:
provider "aws" {
access_key = "access_key"
secret_key = "secret_key"
}
resource "aws_instance" "etcd" {
ami = "${var.ami}" // coreOS 17508
instance_type = "${var.instance_type}"
key_name = "${var.key_name}"
key_path = "${var.key_path}"
count = "${var.count}"
region = "${var.aws_region}"
user_data = "${file("cloud-config.yml")}"
subnet_id = "${aws_subnet.k8s.id}"
private_ip = "${cidrhost("10.43.0.0/16", 10 + count.index)}"
associate_public_ip_address = true
vpc_security_group_ids = ["${aws_security_group.terraform_swarm.id}"]
tags {
name = "coreOS-master"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时terraform plan出现以下错误provider.aws: InvalidClientTokenId: The security token included in the request is invalid.
status code: 403, request id: 45099d1a-4d6a-11e8-891c-df22e6789996
我环顾四周的一些建议是清除我的 ~/.aws/credentials 文件或使用新的 aws IAM 凭证更新它。我对如何解决这个错误很迷茫。
这是一个可能由多种原因引起的一般错误。
一些例子:
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
Run Code Online (Sandbox Code Playgroud)
2) 当您aws_secret_access_key包含诸如加号+或多个正斜杠之类的字符时/。在此处查看更多信息。
解决方案:删除凭据并生成新凭据。
3) 当您尝试在必须显式启用(并且没有)的区域内执行 Terraform 时。
(就我而言,它是me-south-1 (Bahrain)- 在此处查看更多信息)。
解决方案:启用区域或移动到启用的区域。
4) 如果您使用Vault等3rd 方工具并且不提供有效的 AWS 凭证进行通信 - 请在此处查看更多信息。
所有这些都会导致 aws sts:GetCallerIdentityAPI失败。
| 归档时间: |
|
| 查看次数: |
8440 次 |
| 最近记录: |