Terraform 用 Assume role 的方式登入 AWS

2017-10-12 AWS, Terraform

這篇要講的是 Terraform 對於 AWS Assume role 的用法,官方文件上有寫「Assume role」的作法,不過我實際上的情境是由 Jump Account 跳到 Project Account 的 Assume role 方式,其實文件上也是有寫,只是並不怎麼明確,所以用這篇記錄用法

 

由於現有團隊會需要管理非常多的 AWS Account,所以會統一由一個 Jump Account 來 Switch Role 到其他的 Project Account,這時候 Assume role 就會是很常用到的項目

 

原本看官方文件單純使用 assume_role 的方式沒辦法直接 Assume role,查了一下 terraform 的一個 issue「AWS assume role not working」和我的情境相同

 

首先必須在 ~/.aws/credentials 要有 Jump Account 的 Credentials Profile,像這樣:

 

然後在 Terraform 我就可以透過 [jump-account] 來 Assume role 到其他 Project Account,其實概念和你在 manage console 上操作 Switch Role 相同。

 

這樣就可以不需要儲存 credentials 而且透過 Jump Account 的方式來管理更方便。

 

 

 

另外如果你用 sts 的方式可以用 AccessKey、SecretKey、Token 登入:

 

因為是使用 var 來抓變數,所以必須先 export AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN。

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

彙整

分類

open all | close all

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱