【AWS基礎】AWS IAMについて学ぶ | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

あけましておめでとうございます。

年末からAWSの勉強をしていますが、今年も引き続き、AWSの基本を学んでいきます。

 

ということで、新年一発目は、AWS IAMの概要をサラッと…。

 

もくじ

1.AWS IAMとは

2.IAMユーザとIAMグループ

3.IAMロール

4.IAMポリシーとは

5.まとめ

参考文献

 

1.AWS IAMとは

AWS Identity and Access Management(AWS IAM)とは、AWSにおける、サービスやリソースへの認証・認可を管理するサービスである。

 

AWSのリソース操作は、ルートユーザまたはAWS IAMを用いて行われる。

 

このうち、ルートユーザはAWSの契約・料金等を管理する、強い権限を持ったユーザである。

アカウントの解約も含めて、AWS契約の根幹操作まで出来る。

誤操作や乗っ取り防止のため、AWSのリソース操作に、ルートユーザは原則として使用せず、AWS IAMを使用することが強く推奨されている。

 

AWS IAMは、ほぼすべてのAWSサービスのアクセス制御を網羅しており、
それぞれでアクセス権限を細かく設定できるようになっている。

なお、利用は無料である。

 

IAMでのリソースアクセス制御方法は、以下の2種類ある。

 

制御方法 設定対象
IAMユーザ AWSサービスの利用者(ヒト)
IAMロール AWSリソース(モノ)

 

次に、それぞれの制御方法の詳細を説明する。

 

2.IAMユーザとIAMグループ

◎IAMユーザ

IAMユーザは、AWSアカウント内で作成できるユーザである。

IAMユーザでログインして、AWSのマネジメントコンソールからリソースをGUI操作(グラフィカル操作)したり、

SDKやコマンドラインツールから、CUI操作(文字ベースでの操作)したりすることができる。

 

各ユーザが操作できる内容は、IAMポリシー(後述)で制御される。

ユーザAは書き込みと読取り可、ユーザBは読取りのみ等、ユーザ個別にアクセスを制御したい時に有用である。

 

◎IAMグループ

ユーザ数が増えると、ユーザの管理が煩雑になりがちとなる。

そこでIAMには、グループという機能も存在する。

 

IAMのユーザとグループの関係は、LinuxのOSユーザ、グループと同じと考えて差し支えない。

(Linuxのユーザとグループについては過去に記事を書いたので、「?」な方は見てください)

 

複数のユーザを1つのグループにまとめれば、グループ毎に一括してアクセス制御を設定できるので、

ユーザ個別にいちいち設定する手間が省ける。

 

また、1ユーザは複数のグループに所属できる。

従って、例えば「リソースAにアクセス可とするグループ」、「リソースBにアクセス可とするグループ」があるとき、

リソースAとBの両方にアクセスを許可したいユーザZは、両方のグループに所属させれば良いことになる。


各グループが操作できる内容も、IAMポリシー(後述)で制御される。

 

3.IAMロール

IAMロールは、AWSリソースを対象とするアクセス制御方法である。

 

ストレージAは更新不可(読取りのみ)としたい、IAMユーザのアクセス制御設定の例外を設けたい等、

AWSリソースそのものへのアクセスを制御したい時に活用するとよい。
また、AWSにデプロイしたアプリケーションが、AWSリソースを操作する時にも、

ロールを用いてアクセス制御する手法がよく用いられる。

 

 

IAMユーザの場合は、一般的なパスワードやアクセスキー、SSHキー等を利用して認証されるが、

IAMロールは、ロールセッション用の、一時的なセキュリティ認証情報によって認証される。

 

各ロールが操作できる内容は、ユーザやグループの制御方式同様、IAMポリシー(後述)で制御される。

 

4.IAMポリシーとは

IAMポリシーは、IAMユーザやグループ、ロールが、何をできるかを設定するための機能である。

IAMユーザやグループ、ロール毎に、個別の設定ファイルを作るとすると、

「どのグループからも更新は不可にしたいけど、全グループに同じ設定を記述していくのは大変。しかも今後、方針を変更して更新も可となれば、全部を書き換えないといけない…」

といった煩雑さがある。

 

そこでIAMでは、「IAMポリシー」に制御設定を記述し、必要なIAMユーザやグループ、ロールに紐づけることで、

アクセス制御を実現する仕組みとなっている。

 

IAMポリシーの設定ファイルには、

「どのサービスに対して」「どんなアクション(書き込みや読取り等)を」「許可/拒否する」

といった制御内容を、JSON形式で記述する。

 

IAMポリシーは複数種類作成でき、各IAMユーザ、グループ、ロールには複数のIAMポリシーを紐づけることができる。

なお、紐づけ操作は「アタッチ」と呼ばれる。

 

↓IAMポリシーのJSON構文例(公式ドキュメントよりそのまま引用)

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::example_bucket"
  }
}

 

5.まとめ

IAMについて、簡単にまとめておく。

  • IAMは、AWSの認証・認可サービスである。
  • AWSのリソース操作には、原則としてIAMを利用し、ルートユーザは使わない。
  • IAMには、AWSサービスの利用者(ヒト)単位のユーザと、AWSサービス自体(モノ)単位のロールの、2つの制御対象がある。
  • ユーザは、グループでまとめることができる。1ユーザが複数のグループに所属してもよい。
  • IAMのアクセス制御設定内容は、IAMポリシーに記述した後、必要なユーザ、グループ、ロールに紐づける。

 

ちなみに、ユーザ、グループ、ロール作成やポリシー作成と紐づけ(アタッチ)は、

AWSのマネジメントコンソールで画面操作する方法と、

コマンドラインで記述する方法がある。

 

今回の記事はIAMの概要理解を目的としているので、実際の作成まではしていないが、

時間を見つけて実際の作成の記事もupする…予定(たぶん)。

 

参考文献

本記事は、これまでの記事に引き続き、以下の2冊と、AWS公式ドキュメントを参考にしています。

どちらも基本を学ぶ上でお勧めなので、これからAWSを学ぼうという方はぜひ!(*^^*)

 

図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

(小笠原種高著/技術評論社出版/2019年)

 

 

AWSの基本・仕組み・重要用語が全部わかる教科書 (見るだけ図解)

 

AWSの基本・仕組み・重要用語が全部わかる教科書 (見るだけ図解)

(川畑光平、菊地貴彰、真中俊輝著/SB Creative出版/2022年)

 

 

今回は以上!