如何解决Terraform:附加不受管理的IAM角色
terraform版本:12
我们有一个不受terraform IAM角色管理的旧版文件,我想从aws_iam_policy_attachment
块中引用,我尝试了以下操作:
resource "aws_iam_policy_attachment" "example-attach" {
name = "example-attach"
roles = [
aws_iam_role.managed-role.name,"arn:aws:iam::1234567890:role/unmanaged-role"
]
policy_arn = aws_iam_policy.example-policy.arn
}
试运行可以正常工作,但是在应用TF时说:
– ValidationError:roleName的指定值无效。它只能包含字母数字字符和/或以下内容:+ =,。@ _-
有没有办法我可以引用非托管角色而不在TF中定义它?还是有某种非破坏性的方式声明它与非托管角色没有任何关系?
解决方法
在您的roles
中,您提供的是角色ARN,而不是角色名称。
因此,应使用其名称代替ARN:
resource "aws_iam_policy_attachment" "example-attach" {
name = "example-attach"
roles = [
aws_iam_role.managed-role.name,"unmanaged-role"
]
policy_arn = aws_iam_policy.example-policy.arn
}
您也可以使用data_source
data "aws_iam_role" "example" {
name = "unmanaged-role"
}
并在您的资源中引用它:
resource "aws_iam_policy_attachment" "example-attach" {
name = "example-attach"
roles = [
aws_iam_role.managed-role.name,data.aws_iam_role.example.name
]
policy_arn = aws_iam_policy.example-policy.arn
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。