IAMとは?AWSの権限管理の基本
IAMは、AWSで誰が何をできるかを管理するサービスです。認証と認可、ロール、最小権限とルートユーザーの扱いを説明します。
情報確認日:
目次を開く +を閉じる −
ひとことで言うと
IAMは、AWSのリソースへのアクセス権限を管理するサービスです。誰が、どの操作をできるかを決めます。リソースは、サーバーや保存領域など、AWSで使う資源です。
認証と認可の違い
| 言葉 | 意味 |
|---|---|
| 認証 | 操作する相手が誰かを確かめること |
| 認可 | その相手に操作を許可するかを判断すること |
AWSでは、サインイン時に認証し、その後の操作ごとに認可を行います。サインインできても、権限のない操作はできません。
ユーザー、ロール、ポリシー
| 要素 | 役割 |
|---|---|
| IAMユーザー | 人やプログラムを表す身元 |
| IAMロール | 必要なときに引き受けて使う身元 |
| ポリシー | 操作の許可や拒否を書く権限のルール |
ロールを引き受けると、一時的な認証情報が発行されます。認証情報は、本人であることを示すための情報です。
ユーザーやロールにポリシーを付けて、権限を決めます。IAM自体に追加料金はかかりません。
ルートユーザーと最小権限
ルートユーザーは、AWSアカウントの作成時にできる、全サービスへの完全なアクセス権を持つ身元です。AWSは、日常の作業には使わず、ルートユーザーだけができる作業に限ることを勧めています。
ルートユーザーのMFAは既定で強制されます。MFAは、パスワードに加え、別の手段でも本人を確かめる多要素認証です。
作成時やサインイン時に促されたら、利用者がMFAを追加します。普段の作業には、必要な権限だけを与える「最小権限」を使います。
権限が広いと、誤操作や認証情報の漏えいによる被害も広がります。使わなくなった権限も、見直して削除します。
具体例
EC2という仮想サーバー上のアプリケーションから、S3という保存サービスのデータを読むとします。必要な読み取り権限を持つロールを使い、長期の認証情報をコードに埋め込まずにアクセスします。
注意点
- アクセスキーは、プログラムからAWSを使うための長期の認証情報です。悪用を防ぐため、ソースコードに書かないでください。
- 人のアクセスには、AWSはIAM Identity Centerを使う方法を推奨しています。人のアクセスをまとめて管理し、一時的な認証情報で利用する仕組みです。
- 権限の設定は利用者の責任です。必要以上に広い権限を残さないようにします。