複数のIAMポリシーARNを単一のIAMロールにアタッチしたい。
1つの方法は、すべてのポリシー(複数のポリシー)の特権を持つ新しいポリシーを作成することです。
ただし、AWSには、AmazonEC2FullAccess
、AmazomS3FullAccess
など。これらの組み合わせを自分の役割に使用したい。
Terraformのドキュメントでその方法を見つけることができませんでした。
ドキュメントごとに aws_iam_role_policy_attachment
はポリシーをロールにアタッチしますが、AWSコンソールを介して利用できるため、複数のポリシーをロールにアタッチしません。
同じことを行う方法があるか、それともまだ追加する機能があるかどうかを教えてください。
私が使用するTerraformバージョンはv0.9.5
ヒントをくれたクリシュナ・クマールRに感謝します。
あなたの答えからもう少し洗練された答えに至りました。
# Define policy ARNs as list
variable "iam_policy_arn" {
description = "IAM Policy to be attached to role"
type = "list"
}
# Then parse through the list using count
resource "aws_iam_role_policy_attachment" "role-policy-attachment" {
role = "${var.iam_role_name}"
count = "${length(var.iam_policy_arn)}"
policy_arn = "${var.iam_policy_arn[count.index]}"
}
次のようなものを試しましたか:
resource "aws_iam_role" "iam_role_name" {
name = "iam_role_name"
}
resource "aws_iam_role_policy_attachment" "mgd_pol_1" {
name = "mgd_pol_attach_name"
role = "${aws_iam_role.iam_role_name.name}"
policy_arn = "${aws_iam_policy.mgd_pol_1.arn}"
}
resource "aws_iam_role_policy_attachment" "mgd_pol_2" {
name = "mgd_pol_attach_name"
role = "${aws_iam_role.iam_role_name.name}"
policy_arn = "${aws_iam_policy.mgd_pol_2.arn}"
}