波田野 裕一
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
コマンド:
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ハンズオンガイドをご参照ください。
アクセスキー
ログインプロファイル
MFA
必ず、練習用のAWSアカウントで実施してください。
復元する自信が無い場合は、以下のハンズオンは実施しないでください。
アカウントエイリアス
現在のアカウントエイリアスを保存します。
コマンド: aws iam list-account-aliases \ > ${HOME}/account-alias-current.json
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' ) 結果(例): (出力なし)
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
rm ${HOME}/account-alias-current.json
パスワードポリシー
現在のアカウントパスワードポリシーを保存します。
コマンド: aws iam get-account-password-policy \ > ${HOME}/account-password-policy-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 } }
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
rm ${HOME}/account-password-policy-current.json
ここでは、署名証明書の手順で作成したX.509証明書を再利用します。
今後の参考にするため、本手順についてご意見・コメントをお願いします。
必須項目はありません。お気軽にご回答ください。
内容が違えばお一人何回回答していただいても問題ありません。
はまりどころや誤字・脱字などの修正のご指摘もお待ちしています。
このアンケートシステムはS3 + Cognitoで構築しています。
ハンズオンに使用した権限のデタッチ
サインイン用ユーザーへのスイッチバック
サインイン用ユーザーのサインアウト