ハンズオン(簡易版): IAM基礎 (認証編)

ハンズオン(簡易版): IAM基礎 (認証編)

作成者:

波田野 裕一

公開日:

2025-07-31

更新日:

2025-08-14

目的

IAMの認証機能について操作してみます。

前提

作業権限条件

本作業は、以下の権限を有する「IAMユーザー」もしくは「IAMロール/インスタンスプロファイルが付与された環境(CloudShell環境やEC2環境)で行います。

作業権限条件: 必要なIAMポリシー

  • AWSCloudShellFullAccess

  • IAMFullAccess

必要なIAMポリシーを利用する環境(「IAMユーザー」「IAMグループ」もしくは「IAMロール/インスタンスプロファイル」)にアタッチした後に、手順を実施します。

作業環境条件

本作業は、以下の環境で行います。

環境条件1: CloudShell

本作業は、AWS CloudShellでの実施を前提としています。

環境条件2: AWS CLIのバージョン

本作業は、AWS CLIのバージョン"2.32.29"以降での実施を前提としています。

コマンド:

aws --version

結果(例):

aws-cli/2.32.29 Python/3.13.11 Linux/6.1.158-180.294.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023

構成

本手順では、以下の構成のリソースを扱います。

注釈

構成情報

参考: ハンズオンの事前作業

サインイン用ユーザーのサインイン

ハンズオンに必要な権限のアタッチ

警告

リージョンの表示があるサービスを開いている場合に、OrganizationsのSCP(サービスコントロールポリシー)などで禁止されているリージョンを選択しているときは、スイッチロールに失敗します。

スイッチロールに失敗する場合は、マネジメントコンソールの右上に表示されているリージョンを「禁止されていないリージョン」に切り替えるか、IAMなどのグローバルサービスのダッシュボードに画面を切り替えてください。

ハンズオンに使用する環境へのアクセス

手順

注釈

CLIハンズオンの実施方法や効果的に行うためのポイントについては、CLIハンズオンガイドをご参照ください。

1. IAMユーザー

1.1. IAMユーザー

1.2. 一般的な認証方法

アクセスキー

ログインプロファイル

MFA

1.3. 特殊な認証方法 (SSH鍵)

1.4. 特殊な認証方法 (サービス固有の資格情報)

1.5. 特殊な認証方法 (署名証明書)

1.6. 共通設定

警告

必ず、練習用のAWSアカウントで実施してください。

復元する自信が無い場合は、以下のハンズオンは実施しないでください。

アカウントエイリアス

現在のアカウントエイリアスを保存します。

コマンド:

aws iam list-account-aliases \
  > ${HOME}/account-alias-current.json

アカウントエイリアスを復元します。 (出力結果を参考にして、create-account-alias サブコマンドを実施してください。)

コマンド:

aws iam create-account-alias \
    --account-alias $(
      cat ${HOME}/account-alias-current.json \
        | jp.py 'AccountAliases[0]' \
        | sed 's/\"//g'
      )

結果(例):

(出力なし)

注釈

アカウントエイリアス復元後、ファイルを削除します。

コマンド:

rm ${HOME}/account-alias-current.json

パスワードポリシー

現在のアカウントパスワードポリシーを保存します。

コマンド:

aws iam get-account-password-policy \
  > ${HOME}/account-password-policy-current.json

アカウントパスワードポリシーを復元します。 (出力結果を参考にして、update-account-password-policy サブコマンドを実施してください。)

コマンド:

cat ${HOME}/account-password-policy-current.json

結果(例):

{
    "PasswordPolicy": {
        "MinimumPasswordLength": 10,
        "RequireSymbols": true,
        "RequireNumbers": true,
        "RequireUppercaseCharacters": true,
        "RequireLowercaseCharacters": true,
        "AllowUsersToChangePassword": true,
        "ExpirePasswords": false
    }
}

注釈

アカウントパスワードポリシー復元後、ファイルを削除します。

コマンド:

rm ${HOME}/account-password-policy-current.json

2. IAMロール

2.1. IAMユーザー用IAMロールの作成

2.2. IAMロール用IAMロールの作成

2.3. Lambda関数用IAMロールの作成

2.4. EC2インスタンス用IAMロールの作成

3. サーバー証明書

注釈

ここでは、署名証明書の手順で作成したX.509証明書を再利用します。

アンケート

今後の参考にするため、本手順についてご意見・コメントをお願いします。

注釈

  • 必須項目はありません。お気軽にご回答ください。

  • 内容が違えばお一人何回回答していただいても問題ありません。

  • はまりどころや誤字・脱字などの修正のご指摘もお待ちしています。

注釈

このアンケートシステムはS3 + Cognitoで構築しています。

クリーンアップ

1. サーバー証明書

2. IAMユーザー

2.1. 特殊な認証方法 (署名証明書)

2.2. 特殊な認証方法 (サービス固有の資格情報)

2.3. 特殊な認証方法 (SSH鍵)

2.4. 一般的な認証方法

MFA

ログインプロファイル

アクセスキー

2.5. IAMユーザー

3. IAMロール

3.1. EC2インスタンス用IAMロールの削除

3.2. Lambda関数用IAMロールの削除

作業用ディレクトリの削除

参考: ハンズオンの事後作業

ハンズオンに使用した権限のデタッチ

サインイン用ユーザーへのスイッチバック

サインイン用ユーザーのサインアウト