![](/img/trans.png)
[英]How to retrieve temporary AWS credentials from Amazon using IAM role associated with the EC2 instance(in java)?
[英]Use IAM role instead of credentials to create aws resource from an EC2 instance using terraform
我們正在滿足一項要求,我們希望在 AWS EC2 實例上運行的 terraform apply 使用 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 角色。它說要使用元數據 api。但沒有工作示例。( https: //www.terraform.io/docs/providers/aws/index.html ) 我是 Terraforms 的新手,所以如果這是一個基本問題,請原諒我。有人可以幫助代碼/工作示例來實現這一目標嗎?
看看這里, https://www.terraform.io/docs/providers/aws/#ec2-role它解釋了這在AWS上是如何工作的。
在提供者的terraform腳本中為IAM角色插入以下行:
role_arn = "arn:aws:iam::<your account>:role/SQS-Role-demo"
您需要在“提供程序”塊中提供配置文件arn,而不是角色,如下所示:
provider "aws" { profile = "arn:aws:iam::<your account>:instance-profile/<your role name>" }
上面答案中提到的'role_arn'鍵在'provider'上下文中實際上是無效的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.