AWS IAMとはどんなサービス?
AWS IAMとは認証と認可の設定を行うAWSのサービスです。
IAMは「Identity and Access Management」を略した言葉で、「アイアム」と読みます。AWS IAMはAWSのサービスを安全に利用するためのセキュリティに関するサービスです。
AWS IAMで認証や認可を設定することにより、AWSの利用者やサービスがアクセスできる範囲を制限することが可能です。
「認証」と「認可」の意味の違い
「認証」とは相手が誰なのかを確認することで、「認可」とはアクセス権限を与えることを意味します。
認証と認可は似ているように思えますが意味は全く異なります。認証とは誰なのかを確認することで、実生活であれば身分証などで本人確認を行うようなイメージです。
一方、認可は特定の権限を持っていることを確認することで、実生活であればアルコールを購入する際に身分証を提示し、購入できる権限について確認するのと同じです。
AWS IAMが持つ機能4つ
AWS IAMが持つ機能をご紹介します。
AWS IAMが認証や認可を設定するサービスだということはわかっても、具体的にどのようなことができるのかイメージできないという方も多いでしょう。
ここではAWS IAMが持つ機能4つをご紹介しますので、どのような機能があるのか参考にしてみてはいかがでしょうか。
AWS IAMが持つ機能1:他のアカウントにAWSの操作権限を付与できる
AWS IAMでは IAMロールが設定できます。
IAMロールとは、AWSの他のサービスや他のアカウントに対してAWSの操作権限を付与するものです。ユーザーやグループではなくサービスやアカウントに権限付与するのが特徴です。
たとえばIAMロールによってEC2にRDSへのアクセス権限を付与することで、EC2にデータベース操作を行うアプリケーションの導入なども可能になります。
AWS IAMが持つ機能2:AWSリソースへの操作権限を設定できる
AWS IAMではIAMポリシーの設定ができます。
IAMポリシーはIAMロールや後述するIAMユーザーなどにアタッチできるAWSリソースへの操作権限を設定できるものです。
また、IAMポリシーには3つの種類があるため、ここではそれぞれご紹介していきます。
カスタマー管理ポリシー
カスタマー管理ポリシーとはユーザーが作成できるポリシーです。
ユーザー自身の手でJSONファイルなどを使用して作成するもので、AWSが用意しているAWS管理ポリシーよりもより細やかな制御が実現できます。
また、複数のIAMユーザーやIAMグループ、IAMロールの間でも共有できます。
インラインポリシー
インラインポリシーとはIAMユーザーなどと1対1の関係で作成するポリシーです。
特定のIAMユーザーやIAMグループ、IAMロール専用のポリシーです。カスタマー管理ポリシーや後述するAWS管理ポリシーなどが複数のIAMユーザーなどで利用できるのに対して、インラインポリシーは1対1のアタッチしかできないのが特徴です。
そのため、多くの場合カスタマー管理ポリシーやAWS管理ポリシーで権限制御を行います。
AWS管理ポリシー
AWS管理ポリシーとはAWSが用意しているポリシーです。
各サービスへ大まかなポリシーを設定できるもので、複数のIAMユーザーやIAMグループ、IAMロールの間でも共有できます。
ただし、そこまで細かく設定できるわけではないため、一般的にAWS管理ポリシーの中に最適なポリシーがない場合、カスタマー管理ポリシーを作成することになります。
AWS IAMが持つ機能3:IAMユーザー・グループを作成できる
AWS IAMではIAMユーザーやグループを作成することができます。
IAMユーザーとはAWSを利用するアカウントのことで、基本的にAWSの管理を行うコンソール画面にログインする際に利用するアカウントです。IAMユーザーを作成すると、AWSコンソールにログインできるようになります。
また、IAMグループではIAMユーザーをまとめて管理できるようになるため、ユーザーごとに権限を分けたい場合に活用できます。
AWS IAMが持つ機能4:多くのAWSサービスと連携できる
AWS IAMはさまざまなAWSサービスと連携可能です。
IAMはAWSが提供するコンピューティングサービス、ストレージサービス、データベースサービス、開発者用ツールサービス、コンプライアンスサービス、機械学習サービス、管理とガバナンスサービス、移行と転送サービス、モバイルサービスなどのあらゆるサービスと連携できます。
連携できるサービスについては詳しくはAWS公式を参照しましょう。
AWS IAMの始め方3つ
AWS IAMの始め方をご紹介します。
AWS IAMを使用する場合、IAMの利用方法としては「コマンドラインツール」「マネジメントコンソール」「アプリケーション」という3種類の方法があります。
一般的にはマネジメントコントロールから利用しますが、方法としては知っておいた方が良いでしょう。ここではAWS IAMの始め方3つをご紹介しますので、どのような方法があるのか参考にしてみてはいかがでしょうか。
AWS IAMの始め方1:コマンドラインツールから始める場合
AWS IAMはコマンドラインツールから利用することができます。
IAMを利用する際のコマンドラインツールには「AWS Command Line Interface(AWS CLI)」もしくは「AWS Tools for Windows PowerShell」があります。
IAMも他のAWSサービスを同じく自動化可能なため、コマンドラインツールを利用することでシェルスクリプトから利用できるようになります。
AWS IAMの始め方2:マネジメントコンソールから始める場合
AWS IAMはマネジメントコンソールから利用することができます。
AWSのマネジメントコンソールにはAWSのサービスやリソースの管理ができるUIが用意されており、IAMの利用も可能なので基本的にはマネジメントコンソールを利用すると良いでしょう。
ただし、IAMユーザーのサインイン画面はrootユーザーでのサインインとは異なるため注意が必要です。
AWS IAMの始め方3:アプリケーションに組み込む場合
AWS IAMはアプリケーションに組み込んで利用することができます。
アプリケーションに組み込む場合は、AWS SDK(Java、Python、Ruby、PHP、C++、Go、.NET、Node.jsなど)や WebAPIなどを利用することができます。
AWS IAMを利用する際のポイント4つ
AWS IAMを利用する際のポイントをご紹介します。
ここまでAWS ISMがどういったものなのかご紹介してきましたが、実際どのように使用すればいいのかわからないという方も多いでしょう。
ここでは最後にAWS IAMを利用する際のポイント4つをご紹介しますので、これからAWS IAMを利用していこうと考えている方はぜひ参考にしてみてください。
AWS IAMを利用する際のポイント1:漏洩に備えて操作を記録しておこう
AWS IAMを利用する場合は、パスワード漏えいに備えて操作履歴を残すように設定しておきましょう。
CloudTrailのイベント履歴やCloudWatchのクエリ、Athenaのクエリを使うことで、IAMユーザーおよびIAMロールのアカウントアクティビティの履歴にアクセスできます。
もっとも簡単なのはCloudTrailを利用する方法なので、CloudTrailを有効にしておくのがおすすめです。
AWS IAMを利用する際のポイント2:アクセスキーは極力生成しない
AWS IAMを利用する場合は、アクセスキーはできるだけ使わないようにしましょう。
IAMユーザーごとのアクセスキーを生成することはできますが、アクセスキーを誤ってGitで公開してしまうケースが多いため、できるだけ生成しない方が好ましいです。
また、誤って公開されたアクセスキーを自動収集するクローラーも存在するため、できるだけIAMロールを使用するようにしましょう。
AWS IAMを利用する際のポイント3:多要素認証を利用しよう
AWS IAMを利用する場合は、多要素認証を設定しましょう。
AWSでアカウントを作成した際に生成される「rootユーザー」という強い権限を持ったアカウントやIAMユーザーに対しては、セキュリティを強化するために多要素認証を設定することが推奨されています。
多要素認証を設定しておくことで、パスワードリスト攻撃などを防御することができるようになります。
AWS IAMを利用する際のポイント4:必要以上の権限を与えない
AWS IAMを利用する場合は、権限は最小限にしましょう。
IAMユーザーに付与する権限は、たとえば読み込みだけ行いたいのであれば「ReadOnly」などの権限に抑えておくことが望ましいです。権限を必要以上に設定していると、あとから予想外の被害に繋がる可能性があります。
AWS IAMを利用しよう
AWS IAMはAWSを利用する上で必要な認証や認可を行うサービスです。
AWSのサービスを利用する上で、IAMの利用は必須となります。ぜひこの記事でご紹介したAWS IAMが持つ機能や始め方、AWS IAMを利用する際のポイントなどを参考に、AWS IAMを活用してみてはいかがでしょうか。]]>