クラウド 元SEママの情シスなりきりAWS奮闘記

AWS IAMとは?概要や使い方を解説

2022年6月9日掲載

こんにちは。シイノキです。小6の息子に、足のサイズが追いつかれました。背を抜かれる日も遠くなさそうです。

今回取り上げるのは、「AWS Identity and Access Management(AWS IAM)」。AWSのなかでも基本中の基本とされるサービスのひとつで、「AWSを使うときは、まずIAMユーザを作って、そちらを使う」とされているほど。このコラムでも何度も登場していますが、なんとなくID管理のサービス、とざっくり理解しているだけで、詳しく&細かく説明できるかというと……それはちょっと自信がない。というわけで、ここで一度きちんと学んでおこうと思います。

AWS IAMとは?

AWS公式サイトのAWS IAMのページを見てみると「AWSのサービスやリソースへのきめ細かいアクセス許可の適用」と書かれています。……どうにもピンと来ない説明ですが、ざっくり説明すると「ユーザ管理とアクセス制御」をおこなうサービスで、「認証」と「認可」の仕組みを提供しています。つまり、自社のAWS環境を使えるユーザを作成し、それが正しく使われていることを認証すること、そしてユーザごとに「なにができるのか」権限を設定して、認可すること、この2つが大きな役割となります。

そして、AWS環境での操作はすべてAWS IAMをベースに管理されるのですが、ここでポイントになるのが、「AWS環境に対して操作するのが、人とは限らない」ということ。たとえば、AWS LambdaでS3バケットを参照するなど、AWSのサービスが別のAWSサービスを呼び出すような場合もAWS IAMで管理されます。

AWS IAMで押さえておきたい3つの機能

AWS IAMの機能を理解するにあたって、押さえておきたいのが「IAMユーザ」「IAMポリシー」「IAMロール」の3つです。

まず「IAMユーザ」ですが、これはAWSを使うためのアカウントのこと。AWSのマネジメントコンソールなどで操作するときにも使うもので、IAMユーザのID(ユーザ名)とパスワードでログインする感じですね。もちろんこのとき、該当するIAMユーザに権限が与えられている操作しかできません。

そして、そういった権限を管理するのが「IAMポリシー」です。これは、AWS内でどんな操作ができるかを定義するもの。それぞれAWSサービス、リソース、操作、許可 or 拒否を指定していきます。たとえば、「Amazon S3の、sampleバケットに、読み書きを、許可する」のような感じです。これをIAMユーザにアタッチすることで、該当するIAMユーザがこの操作をできるようになります。

そして最後が「IAMロール」ですが、これがちょっとクセモノ……。ロール、つまり「役割」ということですよね。いろいろ調べた結果、AWSにおいてなにかの役割を担うのに必要な権限をまとめたもの、と理解しました。たとえば、「〇〇アプリケーションを動かすために必要な、S3バケットと、RDSインスタンスを参照するための権限」をまとめておく、といったイメージです。

ではなぜ、IAMポリシーではいけなくて、IAMロールが必要なのか?そのキーになるのが、上でも書いた「AWSサービスが別のAWSサービスを使う場合もAWS IAMで管理する」というところです。IAMポリシーは「なにをしてOKか」の権限は管理しますが、「だれが使っていいか」は管理しません。基本的にはIAMユーザにアタッチして使いますが、AWSサービスに権限を付与する場合は、「アクセスキー」というものを使うことで、権限を使えるようになります。が!アクセスキーは固定の文字列。これが流出してしまうと、……うん、まぁ大惨事になりかねない。そこで、IAMロール。IAMロールは「だれが使っていいか」まで指定するので、このリスクを回避できる、というワケですね。なので、AWSサービスがAWSサービスを操作する場合はIAMロールを使うのが基本、とされているようです。

AWS IAMはどう使うべきか?ベストプラクティスを解説!

ここまで説明してきたように、AWS環境における操作のIDや権限を管理するのがAWS IAMですから、つまり、AWS IAMをちゃんと管理しないと、セキュリティ的に結構問題がある、ということです。やろうと思えば、「全リソースになんでもできるよ」という権限をつけたユーザをガシガシ発行して、それで運用しちゃえ♪ということだってできるわけですが、それは当然よろしくない。

じゃあ、どうすればいいのか……というのを「IAM でのセキュリティのベストプラクティス」としてAWSがまとめて公開しています。ここではその内容をもとに、やるべきことをまとめました。

AWSアカウントのルートユーザは使わない

AWSアカウントを作成したときに発行されるユーザ(ル―トユーザ)は、まさに全体管理者。なんでもできてしまうユーザなので、基本的にはこのユーザは使いません。

IAMユーザに必要な権限を適切に与えて使う

普段AWSを使うときにはIAMユーザを使うこと、そしてIAMユーザには必要な権限だけを与えるようにすること、というのがポイントになります。AWSを使っていると確かに「権限がないよ」というエラーが結構出たりして、正直めんどうくさい……と思うことがなくもないのですが、だからといってガバっと大きな権限を与えるのはNGです。あとは、使わなくなったIAMユーザや権限がそのまま残っているのもNG。不要な権限などは忘れずに削除するようにしましょう。

また、「なるべくIAMロールを活用しよう」「カスタマー管理ポリシーを使おう」「ポリシーが正しいか、ちゃんと検証しよう」などもベストプラクティスに挙げられています。ちなみにカスタマー管理ポリシーというのは、利用者が必要な権限や設定をまとめて作成するカスタムポリシーのこと。カスタマー管理ポリシーは1つ作成すると複数のIAMユーザにアタッチできるのですが、これとは別に特定のIAMユーザ専用に作る「インラインポリシー」というものがあります。インラインポリシーではユーザごとに作成しなければならず、管理が大変になるので、なるべくカスタマー管理ポリシーでまとめて管理しよう、ということですね。

IAMユーザのパスワードの強度をチェック

AWSのマネジメントコンソールには、IAMユーザとパスワードでログインしますが、当然このパスワードもちゃんと管理する必要があります。推測されやすい文字列じゃダメですし、認証情報は定期的に変更する必要があります。

このあたりも、IAMユーザを渡す相手に「一定の強度で」と依頼すればよいと言えばよいかもしれませんが、パスワードポリシーで指定することも可能。確実に運用するためには、事前にポリシーを設定しておきたいところです。

また、多要素認証を使うのも効果的。AWS IAMは多要素認証に対応しているので、これも有効化して使うのがベストとされています。

AWSアカウント内のアクションを監視する

IAMユーザなどを適切に管理・設定することは大切ですが、「ちゃんと設定したからOK」ではなく、問題なく使われているかをモニタリングすることも重要です。「だれが、いつ、なにを、どう操作したか」といったログは各種AWSサービスを組み合わせることで取得・監視できるようになるので、事前に設定しておきましょう。

AWS IAMの適切な運用をサポート

AWS IAMはAWSを使ううえで欠かせない基本サービスのひとつ。適切な設定と運用が欠かせません……というのは分かっていても、「使わなくなった権限をちゃんと削除しているか」「パスワードやアクセスキーを定期的に変更したか」など、きっちり管理するのはやっぱり大変そうです。

ソニービズネットワークスでは、こういった運用もサポートしています。AWSセキュリティ強化支援パッケージでは、AWSのベストプラクティスに則ってIAMリソースを監視し、違反検知時に通知するところまでを実現!「ちゃんとできているか、どうも不安」をしっかり解消して、より確実な運用ができるように専任エンジニアがしっかりフォローします。ぜひご相談ください。

AWSセキュリティ強化支援サービス

AWSのセキュリティが不安な方へ 運用負荷をおさえた効果的な対策強化を支援します

マネージドクラウド with AWS

はじめてのAWSから 一歩進んだ活用までトータルサポート

AWS運用管理・自動化ツール「クラウドポータル」

「はじめてでも運用できる」 「もっと使いこなせる」 独自開発ツール

お役立ち資料をダウンロード

AWS セキュリティ対策ガイド

「AWS セキュリティ対策ガイド」のダウンロードをご希望のお客様は、
以下必要事項をご入力ください。

関連コラム

このコラムに関連する製品

  • AWSセキュリティ強化支援サービス

    AWSのセキュリティが不安な方へ
    運用負荷をおさえた効果的な対策強化を支援します

    詳細はこちら

  • マネージドクラウド with AWS

    はじめてのAWSから
    一歩進んだ活用までトータルサポート

    詳細はこちら

  • AWS運用管理・自動化ツール「クラウドポータル」

    「はじめてでも運用できる」
    「もっと使いこなせる」
    独自開発ツール

    詳細はこちら

このコラムに関連する
導入事例

このコラムに関連する
セミナー・イベント

AWS IAMとは?概要や使い方を解説

SHARE
シェアシェア ポストポスト
AWS IAMとは?概要や使い方を解説
SHARE
ポスト シェア