AWS IAM のアイコン

AWS IAM

AWS リソースへのアクセスを安全に管理するための認証・認可サービス

何ができるか

AWS IAM (Identity and Access Management) は、AWS リソースへのアクセスを安全に制御するためのサービスです。誰が (ユーザー、ロール)、どのリソースに (S3、EC2 など)、何をできるか (読み取り、書き込み、削除) を細かく定義できます。IAM 自体の利用料金は無料で、AWS アカウントを作成すると自動的に利用可能になります。

どのような場面で使うか

チームメンバーごとの AWS アクセス権限管理、アプリケーションから AWS サービスへのアクセス制御、外部パートナーへの一時的なアクセス権付与、コンプライアンス要件に基づくアクセスポリシーの実装、マルチアカウント環境でのアクセス管理など、AWS のセキュリティ基盤として利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

会社の入退室管理システムに例えるとわかりやすいでしょう。社員証 (IAM ユーザー) を持つ人だけがビルに入れ、部署ごとに入れるフロア (アクセス権限) が異なります。経理部は経理システムの部屋に、開発部はサーバールームに入れますが、お互いの部屋には入れません。管理者はいつでも権限を変更できます。

IAM とは

AWS Identity and Access Management (IAM) は、AWS のセキュリティの根幹を担うサービスです。AWS アカウントを作成すると、すべての権限を持つルートユーザーが作成されますが、日常的な操作にはルートユーザーを使わず、IAM ユーザーやロールを作成して必要最小限の権限を付与するのがベストプラクティスです。IAM はグローバルサービスであり、リージョンに依存せず全世界で同じ設定が適用されます。

主要な概念

IAM には 4 つの主要な概念があります。ユーザーは個人に対応するアイデンティティで、コンソールログインやプログラムからのアクセスに使います。グループはユーザーの集まりで、グループに権限を付与すると所属する全ユーザーに適用されます。ロールは一時的な権限を付与する仕組みで、EC2 インスタンスや Lambda 関数などの AWS サービスに権限を与える際に使います。ポリシーは JSON 形式で記述する権限の定義書です。

最小権限の原則

IAM の運用で最も重要なのは、最小権限の原則です。各ユーザーやロールには、業務に必要な最小限の権限だけを付与します。たとえば、S3 のデータを読むだけの処理には、S3 の読み取り権限のみを付与し、書き込みや削除の権限は与えません。IAM Access Analyzer を使えば、実際に使用されている権限を分析し、不要な権限を特定できます。

はじめかた

IAM を使い始めるには、IAM コンソールでまず管理者用の IAM ユーザーを作成し、ルートユーザーの使用を最小限にします。次に、チームメンバー用のユーザーやグループを作成し、AWS 管理ポリシー (あらかじめ用意された権限セット) を割り当てます。MFA (多要素認証) を有効にすることで、パスワードが漏洩した場合でもアカウントを保護できます。

注意点

  • ルートユーザーは日常的に使用せず、MFA を設定して厳重に管理すること
  • アクセスキーをソースコードにハードコードしないこと。IAM ロールや環境変数を使用する
  • IAM は無料で利用できるが、設定を誤るとセキュリティインシデントにつながるため、最小権限の原則を徹底すること

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。