IAMとは、Identity and Access Managementのことです。AWSアカウントの中で、だれが何をできるかをコントロールするためのサービスです。
特徴は、
1.ユーザ、グループ、ロール、パーミッションで設定できます。
2.集中管理:サーバごとに設定する必要がありません。AWSコンソールで集中管理できます。
3.安全性:デフォルトは全禁止。新規IAMユーザがなにもできません。
ユーザ
みんなが同じAWSアカウント(ルート)を使うのはまだ管理が出来ていない状態です。まずユーザを作りましょう。AWSコンソール及びCLIでユーザを作成できます。
AWSコンソールから作成する手順は、ここをご参照ください。
パーミッション
新規ユーザはデフォルトでなにもできないので、権限を与える必要があります。
ここでは、最小権限の原則を適用します。すべての操作ができる権限を与えてしまうのは、セキュリティ管理になっていないので、意味がありません。
権限を緩くすることは、厳しくすることより簡単です。まずユーザに最小権限を与えて、必要に応じて新たな権限をあたえば良いです。
他の環境との違うところは、AWSコンソール権限と、API権限に分けていることです。AWSコンソールにサインインするのに、パスワードが必要です。APIを使う際に、アクセスキーが必要です。
ですから、AWSコンソールしか使わないユーザの場合は、アクセスキーを作らないようにしましょう。同様、APIしか使わないプログラマーの場合は、パスワードを設定しないようにしましょう。
*:*権限がなんでもできるので、実際の運用上完全になくすことが難しいが、最小限に控えるべきです。
注意すべきなのは、パーミッションはAWSアカウント(ルート)に適用しません。AWSアカウント(ルート)のできることを制限できないのは、AWSアカウントを利用しない最大の理由です。
グループ
ユーザとパーミッションがあれば、管理できますが、ユーザ一人一人のパーミッションを管理するのは大変です。IAMは、他の環境と同じようにグループをサポートします。
複数のユーザを1つのグループに纏めて同じパーミッションを与えるようにすれば、パーミッションを変更したいとき1回の修正で済むので便利です。さらに、グループの間にユーザを移動できるので、柔軟な管理ができます。
まとめ
以上、ユーザ、パーミッションとグループの3つは、IAMのコアな機能です。もっと複雑な機能を利用しなくても、十分に管理できます。