问题描述
我是不熟悉terraform的新手,但是我的任务是管理一个涉及多个帐户和环境的相当复杂的项目,我们有很多tf文件,每个文件中都有很多行。显而易见,有些事情在最佳实践中还没有完成。例如,我们为提供者进行以下配置:
provider "aws" {
region = var.region
access_key = "my-access-key"
secret_key = "my-secret-key"
assume_role {
role_arn = "arn:aws:iam::xxxxxxxxxxx:role/aaaaaaaaaaaaa"
}
}
我们在配置文件中对凭证进行了硬编码!因此,我决定需要将其替换为以下内容:
provider "aws" {
region = var.region
shared_credentials_file = "/home/jerry/.aws/credentials"
assume_role {
role_arn = "arn:aws:iam::xxxxxxxxxxx:role/aaaaaaaaaaaaa"
}
}
这很好,没有问题。因为我们有一个团队,所以我决定使用pathexpand,以便团队中的每个人都可以使用自己的凭据:
provider "aws" {
region = var.region
shared_credentials_file = pathexpand("~/.aws/credentials")
assume_role {
role_arn = "arn:aws:iam::xxxxxxxxxxx:role/aaaaaaaaaaaaa"
}
}
但是,这不再起作用了。我收到以下错误:
Error: The role "arn:aws:iam::xxxxxxxxxxx:role/aaaaaaaaaaaaa" cannot be assumed.
There are a number of possible causes of this - the most common are:
* The credentials used in order to assume the role are invalid
* The credentials do not have appropriate permission to assume the role
* The role ARN is not valid
我尝试使用非常简单的配置启动一个新的测试项目,它可以与pathexpand一起使用,没问题。但是它不能与我所负责的(大型)项目一起使用。
也许某处有某些配置禁止使用功能pathexpand?还是有些环境变量会改变行为?我已经研究了整整一天,却找不到答案。
请帮助,感谢您的见解!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)