AWSコンソールでぽちぽちすることはやりたくないので、そこはCloudFormationを使いたい。してもAWSコンソール上でぽちぽちすると手順がよくわからんくなってしまうし、裏で勝手にリソースが作られたりして、リソースの削除が面倒という問題がある。CloudFormationで作成されたリソースは「スタック」と呼ばれ、スタックを削除すると全てのリソースが削除できるし、誰がやっても同じようにリソースが作成できるので、今回はCloudFormationを採用している。configが必要になる。略で、ユーザーの管理だとか、権限管理などを行うAWS上のサービスだ。ロールとはIAMには「グループ」「ユーザー」「ロール」「ポリシー」がある。「ポリシー」はAWSコンソールのIAMから「ポリシー」を見てもらうと色々出てくる。できたりREADONLYな操作が可能になるポリシーである。これを「ユーザー」にくっつけるとそのユーザーがCodeCommitからのREADONLYな操作ができるようになる。ポリシーの例これによりユーザーの権限を細かく設定できる。この人はCodeCommitにはアクセスできるけどEC2のコンソールにはアクセスできない、などの設定が可能だ。ポリシーは「ユーザー」だけでなく「グループ」に付けることもできる。そのグループにユーザーを所属させると、グループに与えられた権限がそのユーザーに与えられる仕組み。ユーザーが多くなってきた場合はユーザーごとに設定するのは大変なので、グループで権限管理するのが主な使い方になる。「ロール」は特殊だが、今回はこれが一番重要だ。AWSではユーザーではなくインスタンスの権限も管理してやる必要がある。「このインスタンスはCodeCommitにアクセスする権限があるかどうか」「このインスタンスは〜できる権限があるかどうか」というのをこのIAMの権限を見て判定している。この場合はユーザーではなく「ロール」に「ポリシー」をつけて、その「ロール」をEC2インスタンスにつけてやる必要がある。権限を持つロールを作成するそのロールをEC2につけてやるということが必要になる。本当は「ロールをEC2につける」のではなく、「そのロールを持つインスタンスプロファイルを作成して、そのインスタンスプロファイルをEC2につける」というのが正確っぽいが、インスタンスプロファイルはあんまり意識しなくてもいい。