【发布时间】:2018-07-15 04:56:50
【问题描述】:
我们正在研究一个要求,我们希望在 AWS EC2 实例上运行的 terraform 应用程序使用 IAM 角色,而不是使用凭证(访问密钥/密钥)作为 aws 提供程序的一部分在 AWS 中创建 route53。 注意:添加到实例的 IAM 角色已提供给角色 route53fullaccess 的策略。 当我们在 terraform.tf 中使用以下语法时,它可以正常工作。我们能够创建路线。 语法:
*provider "aws" {
access_key = "${var.aws_accesskey}
secret_key = "${var.aws_secretkey}
region = "us-east-1"
}
resource "aws_route53_record {}*
但是,我们希望 terraform 脚本使用 IAM 角色而不是凭证运行。 (不想维护凭证文件) 尝试的步骤: 1. 从 terraform.tf 文件中删除提供程序块并运行构建。 句法: 资源“aws_route53_record {} 2.得到以下错误。 Provider.aws :InvalidClientTokenid。 3. 通过 terraform 官方文档使用 IAM Role。它说使用元数据api。但没有工作样本。 (https://www.terraform.io/docs/providers/aws/index.html) 我是 Terraforms 的新手,如果这是一个基本问题,请原谅我。有人可以通过代码/工作示例来帮助实现这一目标吗?
【问题讨论】:
-
如果只用key去掉那两行呢?
-
正如@DusanBajic 所说,从您的提供者声明中删除 2 个密钥(access_key 和 secret_key)。如果 IAM 角色附加到实例,则 terraform 将使用凭证(从角色获得)来创建资源。
-
还没有尝试该选项。会尝试。谢谢。
标签: amazon-web-services amazon-ec2 terraform aws-iam