IAMがよくわからなくてお困りではないですか?
この記事を読めば、
- IAMの概要や利用目的がわかる
- IAMユーザー、グループ、ポリシー、ロールといった用語が理解できる
- IAMに関する公式サイトなどの情報が理解できるようになる
ようになりますよ!
以下の記事では、AWSを無料で勉強する方法をまとめているので、あわせて参考にしてください。
上記の記事でも紹介していますが、侍テラコヤではIAMの解説動画が無料で視聴できるので、こちらも見てみるといいですよ!
また、以下の記事ではAWSを学べるスクールを紹介しています。
本格的にAWSを学んでAWSエンジニアになりたい方は必見です。
現役エンジニアのエンジュニアです!
「AWSを学び始めたけど難しい!」とお悩みのAWS初心者の方のために、AWS初心者が最初に押さえておくべきポイントを図解でわかりやすく解説していきます!
はじめに:IAMで初心者が押さえるべきツボはこれ!
はじめに、IAMで初心者が押さえるべきポイントをまとめておきます。
今はよくわからなくても、この後詳しく解説していくのでぜひ最後まで読んでくださいね!
- IAMユーザー AWSで実際に開発などを行うひとりひとりのアカウントのこと!
- IAMグループ IAMユーザーをグルーピングしたもの!グルーピングすることで、同じようなユーザーをまとめて管理できて楽チン!
- IAMポリシー ユーザーができることをまとめたもの!AWSでは、ユーザーごとに「何ができるのか?」を細かく指定して管理します!
- IAMロール IAMポリシーをまとめてEC2などのAWSリソースの「何ができるのか?」を設定するもの!
IAMとは?
IAM(アイアム)は、AWSにおいて「誰が」「何ができるか」を管理するためのサービスです。
この、「誰が」「何ができるか」のことを専門用語で認証・認可といいます。
認証・認可とは?
「認証」「認可」はそれぞれ似たような言葉ですが、意味が違います。
ざっくりいうと、以下のような意味合いです。
- 認証 「あなたは誰ですか?」の確認
- 認可 「あなたは何ができますか?」の確認
例えば、「運転免許証」をイメージしてみてください。
運転免許証には、「あなたは誰か」の情報が記載されています。
一方で、「どんな車を運転できるのか?」も記載されていますよね?
つまり、運転免許証を使うことで、認証・認可がおこなえるわけです。
IAMを利用する目的
IAMでは、「どのユーザーが」「AWSのどのリソースに対してどんな操作ができるのか」を管理しています。
AWSは複数人で開発することを前提としているので、ひとによって「できること」を管理することは超重要です。
例えば、「新人のAさんがAWSにある重要なファイルを削除するのが怖いな〜」といったときに、「Aさんに対して重要ファイルへのアクセス権限をなくす」ことができます。
また、「いつの間にかAWSのアカウントがのっとられてしまった!知らない間に大量のリソースが利用されて高額請求が来てしまった…」ということを防ぐために、「そもそもひとりひとりができることを制限しておく」ことが可能です。
つまり、IAMでひとりひとりの権限を厳密に管理することで、
- 誤操作を防ぐ
- ユーザーがのっとられたときの被害を最小限に抑える
ことができるんですね。
これによって、安心して開発を進めることができます。
それでは、これからIAMの機能である
- IAMユーザー
- IAMグループ
- IAMポリシー
- IAMロール
について解説していきますね!
初心者が押さえるべきポイントに絞っているので、安心して読み進めていただけますよ!
IAMユーザーとは?
IAMユーザーとは、「AWSで実際に作業するひとりひとりのアカウントのようなもの」です!
AWSは複数人での開発が前提なので、ひとつのAWSアカウントに複数の子アカウントのようなものを作成できます。
この子アカウントに該当するのがIAMユーザーです。
IAMユーザーはそれぞれにIDとパスワードを持っており、各自でログインして作業を行います。
そして、それぞれのIAMユーザーには「AWSのどのリソースに対してどんな操作ができるのか?」を指定することが可能です。
例えば、「AさんはEC2の操作はできるけど、S3の内容は見れないよ」といった感じです。
「IAMを利用する目的」でも説明しましたが、このようにユーザーごとに権限を絞ることで不必要な操作を防ぐことができます。
IAMグループとは?
IAMグループとは、同じ権限を持つユーザーをグルーピングしたものです。
同じような権限の組み合わせを複数のユーザーに適用したい場合、ひとりひとりに同じ設定をするのは面倒ですよね。
しかも、彼らの権限を変更したい場合、ひとりひとり権限を修正する必要がありメンテナンスの手間もかかります。
一方で、IAMグループを使えば、グループ内のユーザーに一括で同じ権限の設定を適用することができます。
グループの権限が変更になった場合も、グループの設定のみを変更すれば、自動的にグループ内のユーザーすべての権限が変更されるというわけです。
例えば、「管理者」「開発者」「運用者」のように、役職ごとにグループを作成するのが一般的ですね。
できるだけIAMユーザーではなく、IAMグループで権限管理を行うようにしましょう。
IAMポリシーとは?
IAMポリシーとは、IAMユーザーやIAMグループの「できること・できないことリスト」のことです。
先ほどの「EC2の操作はできるけど、S3の内容は見れない」という設定そのものがIAMポリシーにあたります。
例えば、IAMユーザーのBさんは「EC2の起動とS3の内容の確認はできるけど、EC2の終了とS3のファイルの削除はできない」という権限を設定したい場合、
- EC2の起動ができる
- EC2の終了はできない
- S3の内容はみれる
- S3のファイルを削除できない
というIAMポリシーを適用します。
このように、IAMポリシーは、「どのAWSリソースに対して」「どんな操作ができるか/できないか」というのをひとつずつ設定します。
ただ、毎回このようにひとつずつ設定するのは手間なので、AWSがよく使う設定を事前にまとめた「AWS管理ポリシー」というものがあります。
例えば、S3に対するあらゆる操作ができる「AmazonS3FullAccess」や、EC2関連リソースに対する参照権限のみをまとめた「AmazonEC2ReadOnlyAccess」などが用意されていますね。
一方で、先ほどの例のように、ひとつずつ自分で設定したIAMポリシーを「カスタマー管理ポリシー」といいます。
IAMロールとは?
IAMロールを利用することで、EC2やLambda関数のようなAWSリソースに対する権限の設定が可能です。
IAMロールには、IAMポリシーを適用することで権限の設定を行います(複数のIAMポリシーを適用することも可能)。
例えば、EC2から直接S3にファイルをアップロードするプログラムを実行したい場合、EC2に「S3にファイルをアップロードできる」IAMポリシーを適用したIAMロールを適用します。
少し複雑ですが、EC2などのAWSリソースに権限を付与する場合、IAMポリシーを直接適用するのではなく、「IAMポリシーをひとまとめにしたIAMロールというものを作成して、IAMロールをEC2に適用する」というイメージです。
まとめ
以上でIAMの基本機能について、初心者が抑えるべきポイントに絞って解説しました。
以下、再度まとめておきます。
- IAMユーザー AWSで実際に開発などを行うひとりひとりのアカウントのこと!
- IAMグループ IAMユーザーをグルーピングしたもの!グルーピングすることで、同じようなユーザーをまとめて管理できて楽チン!
- IAMポリシー ユーザーができることをまとめたもの!AWSでは、ユーザーごとに「何ができるのか?」を細かく指定して管理します!
- IAMロール IAMポリシーをまとめてEC2などのAWSリソースの「何ができるのか?」を設定するもの!
IAMは結構ややこしいですが、AWSを使う上では避けては通れないサービスです。
よくわからないからといって、むやみに「何でもできちゃうユーザー」でAWSを利用していると、セキュリティ的に危険です。
ぜひ、IAMをよく理解した上で、適切な権限管理を行なって、安心してAWSを利用しましょう!
以下の記事では、AWSを無料で勉強する方法をまとめているので、あわせて参考にしてください。
上記の記事でも紹介していますが、侍テラコヤ
コメント