参考サイト†
JSONやヒアドキュメントやHCLなどのやり方解説。個人的にはそのまま使えるJSON+Template置換一択!
https://dev.classmethod.jp/articles/writing-iam-policy-with-terraform/
ロール作成†
- aws_iam_role 一択。AssumeRoleが必要
data | aws_iam_role | 既存のIAMロールの名前を指定して、arnを取得したい時に利用 |
resource | aws_iam_role | 通常はこちらでIAMロールを作成する |
ポリシー作成†
- 厳密にはポシリー作成しないで、直接アタッチしてもいいのだが、複数使い回しを考えるとポリシー作成してアタッチがよい。data と resourceでそれぞれ同じ名称だが微妙に属性が違う!!
Data†
aws_iam_policy | 定義済みポシリーを使うとき |
aws_iam_policy_document | ポリシーを作成して定義するとき |
Resource†
aws_iam_policy | 定義済みポシリーを使うとき |
aws_iam_policy_document | ポリシーを作成して定義するとき |
アタッチ†
aws_iam_role_policy_attachment | roleとpolicyの組み合わせてアタッチ |
aws_iam_policy_attachment | 一つしかつけられず、既存roleを複数破壊する可能性があるため絶対使わない!!! |