AWS IAMとは
AWS IAMとは、Amazon Web Services(AWS)上でアクセス制御を管理するためのサービスです。IAMは、ユーザー、グループ、ロールなどのアクセス許可を定義し、AWSリソースへのアクセスを制御します。これにより、セキュリティを維持し、AWSリソースの使用を最適化することができます。
たとえば、IAMを使用することで、AWSリソースへのアクセスを制御できます。IAMを使用することで、ユーザーはリソースにアクセスするための認証情報を受け取ります。これにより、リソースに対するアクセスを制限することができます。IAMを使用することで、ユーザーのアクセスを一元管理し、必要な権限を与えることができます。
まとめると、IAMは会社のセキュリティカードのようなものです。
この記事ではセキュリティカードを例にして分かりやすく解説していきます。
AWSの基本的なセキュリティの考え
その前に、AWSの基本的なセキュリティの考え方を先ず理解する必要があります。
AWSでは各人が必要最小限の権限を持った状態でそれぞれのワークロード(作業)をすることが良いとされています。このようにAWSで良いとされているルールや行いを「ベストプラクティス」と呼んでいます。
最小権限というのは、サーバーを管理する人はサーバーを動かす権限だけ、経理をする人は、コスト管理をする権限だけを付与するという事です。
これにより、経理の人が誤ってサーバーを停止することが無くなります。また、経理の人のID/パスワードが流出したとしても、経理側の影響だけで済みます。
全て実行できる権限を持つ人が存在した場合、流出時の被害は甚大となります。
IAMの種類
IAMには上記で書いたように、
・IAMグループ
・IAMユーザー
・IAMロール
・IAMポリシー
に分けられます。
感覚として、グループ>ユーザー>ロール>ポリシーの順に規模が大きくなります。
それぞれ解説していきます。
IAMグループ
IAMグループはその名の通り、グループを作る機能です。
個々のIAMユーザーをグループとして一括で管理することができます。
IAMグループで管理する場合は、IAMユーザー個々の設定が不要となります。
セキュリティカードで例えると
人事部は人事部の事務室、エンジニアはサーバー室へ入ることができるカードを持っています。他部署の部屋には入ることができません。他社の人はどちらも入ることができません。
実際の活用方法
グループ分け
IAMグループを活用する場合、例えば、以下のようなグループ分けをします。
・部署別
それぞれの部署で必要な権限のみを付与します。
-経理部
-開発部
-管理部
・会社別
それぞれの会社で必要な権限のみを付与します。
-ベンダーA社
-ベンダーB社
・その他
適宜必要な権限のみを付与します。
-新人研修用
-監査用
使い方
社員それぞれにIAMユーザーを持っているとして、IAMグループの使い方は、
・新人研修をしたのち、各部署へ配属する
①新人研修用のIAMグループに所属
②各部署への配属決定後、その部署グループへIAMユーザーを移動
・配置転換により、管理部から経理部へ異動
①管理部のIAMグループから該当のIAMユーザーを除外
②該当のIAMユーザーを経理部へ追加
・監査用時期のIAM
①監査時期以外はIAMグループに所属無
②監査時期になった際に、該当人員のIAMユーザーを発行、監査用IAMグループに追加
IAMユーザー
IAMユーザーは、1ユーザーごとに発行するIAMです。
Aさん、Bさん、Cさん・・・とそれぞれ発行します。
発行後にAWSへログインができるID・パスワードが出力されます。
それを以てAWSへログインすることができるようになります。
管理者がAWSアカウントのIAMユーザーを発行し、メールでID・パスワードを送付する場合と、csv出力して渡すことが可能です。
また、人以外にもIAMユーザーを作成する場合があります。
機械やアプリケーションにIAMユーザーを利用する場合です。
機械、アプリケーションに権限を渡すことで、その機械自体がAWSサービスを使うことができます。これにより、自動でアプリケーションの処理(メール送信やDB接続など)を実行することができます。
セキュリティカードで例えると
それぞれのセキュリティカードを発行し、それぞれに配布します。
機械やアプリケーションの場合は、Papper(ソフトバンクのペッパー)やカフェテリアにいる配膳ロボットにセキュリティカードを渡してあげるイメージです。配膳ロボットはキッチンカウンターから客席までは動けますが、キッチン内部やレジには行けないようになっています。
使い方
・新入社員が来た場合に新規に作成する
作成後は、上記のようにIAMグループに所属させる場合や、下記のようにIAMユーザー単体で利用します。
・IAMグループを使わない場合
IAMユーザーに個別に権限を与えることが可能です。
ただし、メンバー数が多い場合は管理が煩雑になります。
・新しいアプリケーションを導入する際に作成する
開発用、本番用に分けて作成します。
少々長くなってしまいました。
IAMロール、IAMポリシーについては次の記事で解説します。
AWSの効果的な学習方法は?

最後に、AWSの効果的な学習方法をご紹介します。
自学自習はUdemy講座
オンラインプラットフォームであるUdemyは安価で手軽にAWSの学習が可能です。
しかし、上記で紹介したような実際のAWSエンジニアが実施している構築スキルまでは教えてくれません。初心者~中級者向けの講座が多くなっています。
私も受講した、初心者向けAWS講座を下記記事でまとめています。ご参考ください。
1人で学習が難しい場合はオンラインレッスン
1人で学習が難しい場合はオンラインレッスンがおすすめです。
最近では、AWS講座を提供するオンラインレッスンも増えてきました。
料金は高くなりますが、現役エンジニアからAWSについて学ぶことができます。
【虎の巻】これで合格!AWS CLFC-02試験対策ポイント
https://note.com/tech_cida/n/nf0c91c3f077a
未だCLF(クラウドプラクティショナー)を取得していない場合はコチラがおすすめです。
上記は、noteの有料記事ですが、CLF対策問題集や動画教材では触れられない、試験の特性や合格のコツに焦点を当てた虎の巻的な内容が記載されています。
CLF-C02の学習ガイドラインとして、後述するUdemyを利用しCLF合格を目指すと良いでしょう。
本ブログ執筆者のメンタリングも受付中
本ブログを執筆している[KAITech]もメンタリングを受け付けています。
オンラインレッスンは高くて手が出せないという方は私までお気軽にご相談ください。
下記から承っております。