IAMとは
AWSアカウントのIDやアクセス権の管理ツールのこと。
「Identity and Access Management」の略。
個人で使う分にはそこまで意識する必要もないところではあるが、企業で複数の人が共同でアカウントを利用するときは必要。例えばプロジェクトのリーダーとメンバーで使える機能は違った方がいいし、派遣で参画した人に重要な機能の操作をできるような状態にしておくことは危険。その辺りを制御してくれるのがIAMである。
実際にIAMアカウントを作っている様子を見ると一番イメージが湧きやすい。
IAMユーザー
1つのアカウント(企業アカウントをイメージすると分かりやすい)に対して作成されるユーザーのこと。
週末プロジェクトとかでは1つのアカウントのID/PWを裏で共有して使い回すことがあるかと思うが、会社のプロジェクトでは危険。IAMユーザーごとにID/PWが割り振られてログインを行うようにする。
IAMポリシー
「何に対して」「どのような操作を」「できるか(できないか)」の権限を記述したドキュメントのこと。これをIAMユーザーや後述のIAMロールに割り当てることで、「誰が」その権限を持つのかといったことを決定します。
ポリシーの例:
AdministratorAccess:管理者権限で全部許可
ReadOnlyAccess:見るだけ許可
AmazonS3ReadOnlyAccess:S3を見るだけ許可
IAMロール
上記のIAMポリシーで定義された権限を束ねた概念的な名称のこと。
例えば「プロジェクトリーダー」は全ての権限が与えられるべきである。
ロール:レジ係 → ポリシー:レジシステムへのアクセス権など
ロール:在庫管理係 → ポリシー:在庫システムへのアクセス権・更新権限など
ロール:オンライン注文係 → ポリシー:オンラインシステムへのアクセス権・更新権限など
KMS
AWS Key Management Serviceのこと。暗号化や復号のための鍵を管理するサービス。
CloudHSMというサービスもあるが、こちらはVPC内で専用のハードウェアを利用して鍵を管理するもので、相当大規模かつ法令遵守が求められるサービスでない限り利用されることはない。
一般的にはAWSで管理されるKMSが利用されることが多い。こちらの記事が分かりやすかったです。ありがとうございます。
参考