IAMについての概要を説明 | IAM(Identity and Access Management)
AWS IAMについて
AWS IAM (Identity and Access Management)の概要について記載します。
IAMとは
アクセス権限に関する設定(許可、拒否)をする事が出来るサービスです。
IAMの主な役割
・利用者認証の設定
・アクセスポリシーの設定
・アクセスポリシーをユーザ、グループ、ロールへ設定
利用者認証とユーザ
・AWSアカウントにはルートユーザとIAMユーザがあり、それぞれに対して認証方法を設定できます。
・ルートユーザとはAWSアカウントを作成する際に、最初に作成されるアカウントです。AWSのアカウント停止など管理者権限以上の事ができるアカウントで、日常の業務で使用する事が推奨されていないアカウントです。Eメールアドレスとパスワードでサインインできます。多要素認証(MFA)を使用してセキュリティを高める事が推奨されています。
・IAMユーザとは日常業務で使用するユーザです。アカウント ID またはエイリアスを入力してから、ユーザ名とパスワードでサインインする事ができます。
IAMポリシー
・IAMポリシーには3種類あり、AWS管理ポリシー(AWSが管理するポリシー)、カスタム管理ポリシー(アカウントで管理するポリシー)、インラインポリシー(ユーザ、グループ、ロール内で管理するポリシー)があります。
・IMAポリシーはJSON形式で設定されます。カスタム管理ポリシーを設定する際にJSONで記載しなくても、ビジュアルエディタから選択する形で設定する事ができます。
・対象のAWSサービス、AWSリソースに対して、アクセスの許可、拒否、制御の条件を設定する事が可能です。
IAMエンティティ(ユーザ、グループ、ロール)
・IAMポリシーの設定先として、IMAユーザ、IMAグループ、IMAロールがあります。
・IAMユーザはユーザアカウントです。
・IAMグループはユーザのグループです。同じ役割や利用範囲のユーザをまとめて、グループを作成しポリシー適用する事で、グループ内のユーザに対して、一括でポリシー適用が可能なので、ユーザ単体にポリシー適用していくよりも効率よく運用できます。
・IAMロールはAWSサービス(EC2、S3)に対してポリシーを適用できます。
IAM Access Analyzer
・外部のエンティティ(ユーザ、グループ、ロール)と共有されているAWSサービス、データに対してアクセス分析を設定する事が可能です。設定されているAWSリージョン(東京、大阪等の設定した場所)でのみ分析可能です。
・サービスやデータへの、外部からの意図しないアクセスを特定する事ができます。
IAM 設定のベストプラクティス
記事の内容に関連したAWSのIAMでの推奨事項を要約して記載します。
・ルートユーザのアクセスキーは発行しないか、絶対に流出しないよう管理する事。
・ルートユーザの利用は控え、IAMユーザを作成して運用する事。権限やポリシーに関してはグループに適用させておくと効率が良い。
・ポリシーについてよくわからない状況で利用開始する時はAWS管理ポリシーで使用開始する事。一般的なユースケースでアクセス許可できるような設計がなされているため。
・インラインポリシーよりも、カスタマー管理ポリシーを使用する事。コンソール内の全ての管理ポリシーを1カ所で管理できる。
・MFA を有効化する事。ルートユーザだけでなく、全てのユーザに対して、多要素認証を設定する事を推奨している。認証設定の際は「Google Authenticator」のようなアプリをスマートフォンにインストールする事で簡単に設定可能。
・認証情報を定期的にローテーションする。定期的にパスワード変更する事で認証情報が漏洩した際のリスクを軽減できる。
・不要な認証情報を削除する。使用する必要のない(必要が無くなった)パスワードとアクセスキーを削除します。
・AWSアカウントのアクティビティの監視。AWS内の他サービスのロギング機能を用いて、ユーザアクセス情報や、変更履歴、アクティビティログなどを確認できます。
アクティビティの監視
IAMとは別サービスですが、IAM推奨事項に記載があるため、監視機能をもつサービスと説明を記載します。
・Amazon CloudFront:高速コンテンツ配信ネットワーク (CDN) サービスで、CloudFront が受信したユーザリクエストを記録します。
・AWS CloudTrail:AWS インフラストラクチャ全体でアカウントアクティビティをログに記録し、継続的に監視し、保持できます。
・Amazon CloudWatch:アプリケーションを監視し、システム全体におけるパフォーマンスの変化に対応して、リソース使用率の最適化をします。
・AWS Config:AWS リソースの設定に関する詳細な履歴情報を確認できる。リソース設定の変更等を管理できる。
・AmaonS3:オブジェクトストレージサービスで、Amazon S3 バケットへのアクセスリクエストを記録します。
AWS Organizations
・IAMとは別サービスですが、大きな組織でいくつかのAWSアカウントを持っている場合にグループ作成をして、アカウントのグループに対して、ポリシーを適用する事ができます。
・AWSアカウントの作成管理の自動化や、アカウントの支払いをまとめる事ができます。
最後に
IAMにはさまざまな機能があるため、いきなり適切な設定や効率的な運用をするのは、難しそうな印象を受けました。しかし、ベストプラクティスなど推奨設定が公開されているので、まずはそこを参考にしながら設定して、ログを監視しながら設定内容を調整していく事で、セキュアで無駄の無い設定ができるのではないかと思います。