セキュリティとコンプライアンス

IAMとは?AWSの権限管理の基本

IAMは、AWSで誰が何をできるかを管理するサービスです。認証と認可、ロール、最小権限とルートユーザーの扱いを説明します。

目次を開く +を閉じる −

ひとことで言うと

IAMは、AWSのリソースへのアクセス権限を管理するサービスです。誰が、どの操作をできるかを決めます。リソースは、サーバーや保存領域など、AWSで使う資源です。

認証と認可の違い

言葉意味
認証操作する相手が誰かを確かめること
認可その相手に操作を許可するかを判断すること

AWSでは、サインイン時に認証し、その後の操作ごとに認可を行います。サインインできても、権限のない操作はできません。

ユーザー、ロール、ポリシー

要素役割
IAMユーザー人やプログラムを表す身元
IAMロール必要なときに引き受けて使う身元
ポリシー操作の許可や拒否を書く権限のルール

ロールを引き受けると、一時的な認証情報が発行されます。認証情報は、本人であることを示すための情報です。

ユーザーやロールにポリシーを付けて、権限を決めます。IAM自体に追加料金はかかりません。

ルートユーザーと最小権限

ルートユーザーは、AWSアカウントの作成時にできる、全サービスへの完全なアクセス権を持つ身元です。AWSは、日常の作業には使わず、ルートユーザーだけができる作業に限ることを勧めています。

ルートユーザーのMFAは既定で強制されます。MFAは、パスワードに加え、別の手段でも本人を確かめる多要素認証です。

作成時やサインイン時に促されたら、利用者がMFAを追加します。普段の作業には、必要な権限だけを与える「最小権限」を使います。

権限が広いと、誤操作や認証情報の漏えいによる被害も広がります。使わなくなった権限も、見直して削除します。

具体例

EC2という仮想サーバー上のアプリケーションから、S3という保存サービスのデータを読むとします。必要な読み取り権限を持つロールを使い、長期の認証情報をコードに埋め込まずにアクセスします。

注意点

  • アクセスキーは、プログラムからAWSを使うための長期の認証情報です。悪用を防ぐため、ソースコードに書かないでください。
  • 人のアクセスには、AWSはIAM Identity Centerを使う方法を推奨しています。人のアクセスをまとめて管理し、一時的な認証情報で利用する仕組みです。
  • 権限の設定は利用者の責任です。必要以上に広い権限を残さないようにします。

参考資料

← このカテゴリの記事へトップへ戻る