【AWS】IAMについて

2 min read読了の目安(約2000字

技術系ブログへの最初の投稿になります。よろしくお願いします!
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ユーザーなどにアタッチする必要がある。

  1. AWS管理ポリシー

    • AWSから提供されているIAMポリシー。
    • 各AWSサービスに対しての大まかな制御ポリシーが設定可能。
  2. カスタマー管理ポリシー

    • ユーザーがJSONファイルなどを利用して設定するポリシー。
    • IPアドレスの制御など、AWS管理ポリシーよりも細かい制御が可能。
    • ポリシージェネレータを利用して、GUIから作成することができる。

IAMロール

EC2などのAWSサービスや他のアカウントに対して、AWSの操作権限を付与するための仕組み(EC2インスタンスからS3などにアクセスするなど。)
・人が手動で行う操作の権限はユーザーやグループにポリシーをアタッチし、インスタンスが自動で行う操作の権限はロールにポリシーをアタッチし、インスタンスにそのロールをアタッチする。
・IAMロールは、IAMユーザーやグループには付与できない。

権限を付与できるサービスはこんなにある。(おぼえきれない..)