なんとなく理解するIAM

本投稿は TECOTEC Advent Calendar 2022 の9日目の記事です。
はじめまして!SRE推進室の石原です。
今回はややこしいAWSのアクセス管理サービスIAMについて知識整理も兼ねて、ざっくりなんとなく分かるよう用語説明をしていきたいと思います!

目次

そもそもIAMとは?

AWS Identity and Access Management の略でIAMです。略す前のものを見てもよく分かりませんね。。
単純にI am ishihara のようにiamと書いてあるので自分のことを証明するんだなーアカウント系のサービスなんだなーと認識した方が飲み込みやすいんじゃないかと!

(AMIという別サービスもありIAMかAMIかで最初少し混乱していました。。)

AWS Identity and Access Management (IAM) は、AWS のサービスへのアクセスをセキュアに制御するためのウェブサービスです。IAM を使用すると、ユーザー、セキュリティ認証情報 (アクセスキーなど)、およびユーザーとアプリケーションがアクセスできる AWS リソースを制御するアクセス許可を集中管理できます。 *1

公式サイトの説明を読むとAWSリソースに関連するアクセスを集中管理できるサービスだと分かりますね。

IAM以外のアカウントは?

IAMとは別にルートユーザーがあります。AWSアカウントを最初に作成したときに使用するユーザーがルートユーザーになります。 こちらのルートアカウントは全ての権限を持っておりベストプラクティスでは一度作成してから利用は推奨されていません。
ルートユーザーの代わりに使用するアカウトがIAMユーザーになります。

IAMの種類について

IAMの中にもいくつか種類があります。
図を見ていただけるとイメージがつきやすいかと、IAMユーザー,IAMグループ,IAMロールはIAMポリシーを利用する付与先といったイメージです。

種類 説明
IAMユーザー AWSを利用するユーザー
IAMグループ IAMユーザーを所属させるグループ
IAMロール EC2等のAWSサービスに対して権限を与える仕組み
IAMポリシー 上記3つのIAMに付与しAWSリソースへのアクセス制御を行うルール

それぞれのIAMについて詳しく確認していきます!

IAMユーザーについて

IAMユーザーも認証の違いで2種類あり、同じIAMユーザーでも利用用途は異なります。 IAMユーザー作成時に2種類とも選択できますが、基本的にはどちらかを1ユーザーに付与します。 またアカウントの共用は避け利用者毎・ツール毎にIAMユーザーを作成します。

認証方式 説明
ID・パスワード マネジメントコンソールから操作するユーザー用
アクセスキーID・シークレットアクセスキー API,CLI,SDK等の開発ツールを利用する場合

IAMグループについて

IAMグループは同じ権限セットを複数のIAMユーザーに付与させることができます。IAMユーザーに直接権限を付与するのでなく、グループで権限を付与する方が管理がし易いため推奨されています。

IAMポリシーについて

IAMポリシーにも種類があります。

管理ポリシーとインラインポリシー

まず大きく分けて管理ポリシーとインラインポリシーがあります。 インラインポリシーは特定のユーザー・グループにしか設定ができず管理する上で負担も大きいため、特に理由がなければ管理ポリシーを選択すれば問題ありません。

各用途向けにさまざまなポリシーが用意されています。通常、インラインポリシーではなく、管理ポリシーを使用することをお勧めします。 *2

種類 説明
管理ポリシー 複数のユーザー・グループで共用可能
インラインポリシー 特定のユーザー・グループにのみ設定可能

管理ポリシー

管理ポリシーでもさらに2つ種類があります。 AWS管理ポリシーとカスタマー管理ポリシーを利用してリソースの権限制御をしていきます。 AWS管理ポリシーは広く許可されてしまうため、カスタマー管理ポリシーと併用して調整することができます。

種類 説明
AWS 管理ポリシー AWS側で作成済みのポリシー
カスタマー管理ポリシー 利用者側で新規作成したポリシー

まとめ

以上でざっくりですがIAMについてまとめました。なんとなく理解していただけたら幸いです! IAM毎に種類が分かれましたのでそれも加味した図になります。ちょっと確認したいときなど利用していただければと思います。 最後まで読んでいただきありがとうございました!!

www.tecotec.co.jp