AWS IAMとは?アクセス管理の基本【AWS入門8】

IAMとは?

IAMの概要

AWS IAM(Identity and Access Management)は、AWSリソースへのアクセスを安全に管理するためのサービスです。ユーザー、グループ、ロールを活用することで、適切な権限を持つユーザーにのみリソースを利用させることが可能になります。

IAMの特徴

  • 細かなアクセス制御:ユーザーごとに適切な権限を付与可能
  • ポリシーベースの管理:JSON形式のポリシーで権限設定
  • 多要素認証(MFA)対応:セキュリティ強化が可能
  • 一元管理:複数のAWSアカウントにまたがる管理が可能

IAMの基本概念

IAMユーザー

IAMユーザーとは、AWSにログインしてリソースを操作するための個々のアカウントのことです。

  • 特定のアクセス権限を持つ
  • AWSマネジメントコンソールまたはCLIを使用可能
  • 一意のアクセスキーとシークレットキーを持つ(CLI用)

IAMグループ

IAMグループは、複数のユーザーをまとめて管理するための機能です。

  • 同じ権限を持つユーザーを一括管理
  • 個別にポリシーを設定する手間を省く
  • チームごとに異なるアクセス権限を適用(例:開発者、運用担当者)

IAMロール

IAMロールは、AWSサービスや外部アカウントが一時的に特定の権限を持つための仕組みです。

  • 一時的なアクセス権を付与可能
  • ユーザーアカウントを使用せずにAWSリソースを操作
  • EC2インスタンスやLambda関数に適用可能

IAMポリシー

IAMポリシーは、アクセス制御をJSON形式で定義するドキュメントです。

  • 明示的に許可・拒否を設定可能
  • ユーザー、グループ、ロールに適用できる
  • 管理ポリシー(AWS提供)とカスタムポリシー(ユーザー定義)が存在

IAMの設定方法

IAMユーザーの作成

  1. AWSマネジメントコンソールにログイン
  2. 「IAM」サービスを開く
  3. 「ユーザー」メニューを選択し、「ユーザーの追加」ボタンをクリック
  4. ユーザー名を入力し、「AWS マネジメントコンソールへのアクセス」を有効化
  5. 一時パスワードを設定し、ユーザーに通知
  6. 「アクセス権限の設定」で適切なポリシーを付与(例:AdministratorAccess、ReadOnlyAccess)
  7. 「作成」ボタンをクリックして完了

IAMグループの作成とユーザーの追加

  1. 「グループ」メニューを開く
  2. 「新しいグループの作成」をクリック
  3. グループ名を入力(例:Developers、Admins)
  4. グループに適用するポリシーを選択
  5. 作成したIAMユーザーをグループに追加

IAMロールの作成

  1. 「ロール」メニューを開く
  2. 「新しいロールの作成」をクリック
  3. ロールの使用ケースを選択(例:EC2、Lambda)
  4. 必要なポリシーを選択(例:AmazonS3FullAccess)
  5. ロール名を入力し、「作成」ボタンをクリック

IAMポリシーの設定と管理

管理ポリシーとカスタムポリシー

  • 管理ポリシー:AWSが提供するあらかじめ設定されたポリシー(例:AdministratorAccess、AmazonS3ReadOnlyAccess)
  • カスタムポリシー:ユーザーが独自に作成するポリシー

カスタムポリシーの作成方法

  1. 「ポリシー」メニューを開く
  2. 「新しいポリシーの作成」をクリック
  3. JSONエディタでポリシーを記述(例:S3バケットへの限定的なアクセス) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetObject"], "Resource": ["arn:aws:s3:::example-bucket", "arn:aws:s3:::example-bucket/*"] } ] }
  4. ポリシーを保存し、IAMユーザーやロールに適用

IAMのベストプラクティス

最小権限の原則を適用

IAMポリシーは、必要最小限の権限のみ付与することが推奨されます。

  • 管理者権限を制限し、特定のタスクに応じた権限を付与
  • 不要なポリシーを定期的に見直す

MFA(多要素認証)の導入

IAMユーザーのセキュリティを強化するために、MFAを有効化します。

  • IAMユーザーのセキュリティ設定からMFAを有効化
  • Google Authenticatorなどのアプリで設定

ルートアカウントの使用を最小限に

AWSルートアカウントは強力な権限を持つため、日常の操作にはIAMユーザーを利用し、ルートアカウントの使用を避けることが推奨されます。

まとめ

AWS IAMは、AWS環境のセキュリティを強化するために欠かせないアクセス管理サービスです。本記事では、

  • IAMの基本概念(ユーザー、グループ、ロール、ポリシー)
  • IAMの設定方法(ユーザー作成、ロール設定、ポリシー管理)
  • IAMのベストプラクティス(最小権限、MFA、ルートアカウント制限) について解説しました。