amazon-web-services - 使用 IAM 角色而不是凭证从使用 terraform 的 EC2 实例创建 aws 资源

标签 amazon-web-services amazon-ec2 terraform aws-iam

我们正在满足一项要求,我们希望在 AWS EC2 实例上运行的 terraform apply 使用 IAM 角色而不是使用凭证(访问 key / secret key )作为 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 文件中删除 provider 块并运行构建。
句法:
资源“aws_route53_record {}
2.得到以下错误。
Provider.aws :InvalidClientTokenid。
3. 查阅 terraform 官方文档以使用 IAM 角色。它说使用元数据api。但没有工作样本。 ( https://www.terraform.io/docs/providers/aws/index.html )
我是 Terraforms 的新手,如果这是一个基本问题,请原谅我。有人可以帮助代码/工作示例来实现这一目标吗?

最佳答案

您需要在“提供者”块中提供配置文件 arn,而不是角色,如下所示:
provider "aws" { profile = "arn:aws:iam::<your account>:instance-profile/<your role name>" }
上面答案中提到的 'role_arn' 键在 'provider' 上下文中实际上是无效的。

关于amazon-web-services - 使用 IAM 角色而不是凭证从使用 terraform 的 EC2 实例创建 aws 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48620824/

相关文章:

azure - 如何将 Azure AD 添加为 AWS Cognito 联合 IdP

amazon-web-services - EC2 实例未加入 ECS 集群

linux - 我挂载的 EBS 卷没有显示

amazon-web-services - 如何使用与 terraform 中的最新/非限定 lambda 函数相同的事件源映射设置 lambda 别名

amazon-web-services - Terraform:使用存储在 AWS CodeCommit 中的版本化模块

amazon-web-services - 从远程状态重建/重新创建地形

python - 如何使用 AWS S3 策略强制联合用户的资源所有权?

linux - 如何在没有 ppk 文件的情况下从移动应用程序连接到 linux 服务器?

重建索引时,带有 Elasticsearch 的 Django haystack 找不到数据库

python - EC2 SSH 连接到其他 SSH 并运行 bash 脚本