如何在运行时重新加载terraform提供程序以使用不同的AWS配置文件。
创建一个新用户
resource "aws_iam_user" "user_lake_admin" {
name = var.lake_admin_user_name
path = "/"
tags = {
tag-key = "data-test"
}
}provider "aws" {
access_key = aws_iam_access_key.user_lake_admin_AK_SK.id
secret_key = aws_iam_access_key.user_lake_admin_AK_SK.secret
region = "us-west-2"
alias = "lake-admin-profile"
}这个lake_admin用户是在同一个文件中创建的。
试着用
provider "aws" {
access_key = aws_iam_access_key.user_lake_admin_AK_SK.id
secret_key = aws_iam_access_key.user_lake_admin_AK_SK.secret
region = "us-west-2"
alias = "lake-admin-profile"
}
resource "aws_glue_catalog_database" "myDB" {
name = "my-db"
provider = aws.lake-admin-profile
}如我所知,terraform提供程序首先在所有terraform文件中执行。
,但有没有办法在执行terraform的过程中重新加载提供程序的配置?
发布于 2020-04-14 18:25:09
你不能直接这么做。
您可以在一个根模块中应用用户的创建和状态,并在第二个提供程序中使用它的凭据。
为了部署基础设施,您可能会更好地使用IAM角色并承担角色提供程序来处理这种情况。
通常,您不需要使用特定的用户创建基础设施。这样做很少有好处。我想不出主创建基础结构对创建的基础结构有任何隐含的特定访问权的情况。
您可以使用deployment角色或IAM用户来部署帐户中的所有内容,然后分配基于资源的IAM策略来执行部署中的限制。
https://stackoverflow.com/questions/61116301
复制相似问题