我一直使用具有terraform的访问/密钥来创建/管理AWS中的基础架构。但是,我试图切换到使用IAM角色。我应该能够在我的帐户中使用角色,并承担另一个帐户中的角色,并且应该能够运行计划,应用等来在其他帐户中构建基础。任何想法,请建议。使用IAM角色的Terraform假定
到目前为止,我正在使用https://www.terraform.io/docs/providers/aws/进行测试,但由于某种原因,它不适用于我或者说明书对我不明确。
我一直使用具有terraform的访问/密钥来创建/管理AWS中的基础架构。但是,我试图切换到使用IAM角色。我应该能够在我的帐户中使用角色,并承担另一个帐户中的角色,并且应该能够运行计划,应用等来在其他帐户中构建基础。任何想法,请建议。使用IAM角色的Terraform假定
到目前为止,我正在使用https://www.terraform.io/docs/providers/aws/进行测试,但由于某种原因,它不适用于我或者说明书对我不明确。
我们使用非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}"
}
获取要承担该角色充分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"
}
}
谢谢@jpancoast。在阅读了更多关于他们的文档后,我发现了这一点,并发挥了作用。感谢这篇文章。 – Bond
您是否尝试使用assume_role?如果您收到任何错误,请分享。 –
我确实使用了假定的角色。我是否仍然需要为承担角色的用户使用访问密钥/密钥? – Bond