AWS managed policyを作成したIAMroleに紐づける
自分で作成したIAMpoliciesであれば、datasource利用してPolicy document作成し、aws_iam_role_policy_attachmentで紐づければ良いけど、AWS managedの場合どうするのがよいか調べたのでメモ。
方法1 - 直接ARNを書く
例えば AmazonSSMManagedInstanceCore (arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore)
ポリシをIAMrole (my-test-role)に付与したい場合は下記な感じ。
resource "aws_iam_role" "my_test_role" { name = "my-test-role" .... } resource "aws_iam_role_policy_attachment" "my_test_role_pol_attachment" { role = aws_iam_role.my_test_role.name policy_arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore" }
方法2 - data source を利用する
方法1同様、 AmazonSSMManagedInstanceCore (arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore)
ポリシをIAMroleに付与したい場合は下記のようになる。
resource "aws_iam_role" "my_test_role" { name = "my-test-role" .... } data "aws_iam_policy" "AmazonSSMManagedInstanceCore" { arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore" } resource "aws_iam_role_policy_attachment" "my_test_role_pol_attachment" { role = aws_iam_role.my_test_role.name policy_arn = data.aws_iam_policy.AmazonSSMManagedInstanceCore.arn }
方法2の方がTerraform的な書き方ですかね。