【AWS】IAMについて
技術系ブログへの最初の投稿になります。よろしくお願いします!
AWSのIAMについて、以下にまとめておきます。
目的
・理解が不十分、間違っている点の確認、整理。
・後々忘れてしまうので、備忘録として。
・よく理解しておかないとセキュリティ事故に繋がりかねないため。
IAMとは
・「アイアム」と読む
・Identity and Access Managementの略で、認証・認可を行うことのできるAWSサービス。
認証:誰なのかを確認すること。
認可:AWSサービスへ必要なアクセス権限を与えること。
・リージョンを選択する必要がない。
ルートアカウント(ルートユーザー)
・最も強力な権限を持つアカウント
・AWSアカウントを初めて作成した際は、このアカウントのみ作成される。
・クレジットカードや課金の情報は、このアカウントからでなければ参照/変更できない。
・このアカウントを日常的に使用するべきではない。
日常的に使用する管理者アカウントは別途作成する。(後述のIAMユーザー)
IAMユーザー
・AWSサービスを利用する人用にそれぞれ作成する。
・日常的には、こちらの利用が推奨されている。使用するユーザーが自分一人であっても
ルートアカウントではなく、自分用の(管理者)IAMユーザーを作成する。
・人ではなくプログラムの場合もある。
・プログラムによるアクセスと、AWSマネジメントコンソールへのアクセスを有効にできる。
・プログラムによるアクセスを有効にすると、シークレットアクセスキーが生成される。
・パスワードやシークレットアクセスキーは厳重に保管し、GitHubへ上げたりしない。
AWSマネジメントコンソールを利用する場合、作成したアカウントで下の画面からログインする。(「IAMユーザー」を選択)
IAMグループ
・IAMユーザーの集まり
・部署やチームごとに、AWSサービスへのアクセス権限を分けたい場合に使用する。
・IAMユーザーに直接権限を付与せず、まずIAMグループにIAMユーザーを所属させて、
必要な権限をIAMグループへ必要な権限をアタッチ(割り当て)するほうが管理しやすい。
(各IAMユーザーへの権限付与漏れや過剰権限付与を防止できる。)
※IAMユーザーが自分一人の場合はメリットを感じづらいが、癖をつけるために行っておく。
・同じIAMユーザーを複数のIAMグループへ所属させることができる。
・IAMグループの中にサブグループを作成することはできない。
IAMポリシー
・AWSリソースへの権限を設定する機能。
・IAMポリシーだけでは何もできない(誰がその権限を使うかというのは含まれない)ので、IAMユーザーなどにアタッチする必要がある。
-
AWS管理ポリシー
- AWSから提供されているIAMポリシー。
- 各AWSサービスに対しての大まかな制御ポリシーが設定可能。
-
カスタマー管理ポリシー
- ユーザーがJSONファイルなどを利用して設定するポリシー。
- IPアドレスの制御など、AWS管理ポリシーよりも細かい制御が可能。
- ポリシージェネレータを利用して、GUIから作成することができる。
IAMロール
・EC2などのAWSサービスや他のアカウントに対して、AWSの操作権限を付与するための仕組み(EC2インスタンスからS3などにアクセスするなど。)
・人が手動で行う操作の権限はユーザーやグループにポリシーをアタッチし、インスタンスが自動で行う操作の権限はロールにポリシーをアタッチし、インスタンスにそのロールをアタッチする。
・IAMロールは、IAMユーザーやグループには付与できない。
権限を付与できるサービスはこんなにある。(おぼえきれない..)
Discussion