2017-08-08 109 views
1

我一直使用具有terraform的訪問/密鑰來創建/管理AWS中的基礎架構。但是,我試圖切換到使用IAM角色。我應該能夠在我的帳戶中使用角色,並承擔另一個帳戶中的角色,並且應該能夠運行計劃,應用等來在其他帳戶中構建基礎。任何想法,請建議。使用IAM角色的Terraform假定

到目前爲止,我正在使用https://www.terraform.io/docs/providers/aws/進行測試,但由於某種原因,它不適用於我或者說明書對我不明確。

+0

您是否嘗試使用assume_role?如果您收到任何錯誤,請分享。 –

+0

我確實使用了假定的角色。我是否仍然需要爲承擔角色的用戶使用訪問密鑰/密鑰? – Bond

回答

0

我們使用非terraform腳本來建立我們的憑據使用IAM角色和承擔的角色。(像https://github.com/Integralist/Shell-Scripts/blob/master/aws-cli-assumerole.sh)對於1563使用,我們用https://github.com/redventures/oktad

我們得到的TMP credentaials和令牌,將它保存〜/ .aws /憑證作爲各自開發/生產等配置文件,然後指向我們各自terraform提供商的配置是這樣的:

provider "aws" { 
    region     = "${var.region}" 
    shared_credentials_file = "${pathexpand("~/.aws/credentials")}" 
    profile     = "${var.dev_profile}" 
} 
0

獲取要承擔該角色充分ARN。在您的提供商配置使用ARN的'assume_role'塊:https://www.terraform.io/docs/providers/aws/index.html#assume_role

provider "aws" 
    region = "<whatever region>" 
    assume_role { 
    role_arn  = "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME" 
    } 
} 
+0

謝謝@jpancoast。在閱讀了更多關於他們的文檔後,我發現了這一點,併發揮了作用。感謝這篇文章。 – Bond