ハンズオン(簡易版): IAM Identity Center基礎

ハンズオン(簡易版): IAM Identity Center基礎

作成者:

波田野 裕一

公開日:

2023-12-21

目的

IAM Identity Center環境を構築します。

前提

作業権限条件

作業権限条件:

  • 親アカウントのroot権限

作業環境条件

注釈

本手順は、CloudShell環境で推奨します。

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

環境条件1: CloudShell

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

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

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

コマンド:

aws --version

結果(例):

aws-cli/2.7.12 Python/3.7.10 Linux/4.14.291-218.527.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off

構成

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

課題

構成情報

手順 (親アカウント CloudShell)

注釈

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

手順の対象リソースと順番

手順の対象リソースと順番は以下の通りです。

課題

構成図

1. Organizatsionsのセットアップ

注釈

(Organizationsハンズオンを参照)

2. IAM Identity Centerのセットアップ

注釈

マネジメントコンソールでのみ実施可能 (AWSサポート確認済み)

2.1. IAM Identity Centerを有効にする

2.2. IDソースを選択する

注釈

デフォルト

(参考: IAM Identity Centerの子アカウントへの委任)

注釈

IAM Identity Centerを子アカウントで管理する場合に実施。

  • メリット: 親アカウントの役割を限定できる。

  • デメリット: 親アカウントについては、SSOの対象外となる。

  • IAM Identity Centerマネジメントコンソールのダッシュボード( https://ap-northeast-1.console.aws.amazon.com/singlesignon/home?region=ap-northeast-1 )にアクセスする。

  • 左ペインの「設定」(リンク)をクリックします。

    • 「設定」(画面)が表示されます。

  • 「管理」(タブ)をクリックします。

  • 「委任された管理者」セクションで、「アカウントを登録」(ボタン)を選択します。

    • 「委任された管理者を登録」(画面)が表示されます。

  • 「委任された管理者を登録」ページで、登録する管理者を選択します。

  • 「アカウントを登録」を選択します。

手順 (IAM Identity Center用アカウント CloudShell)

手順の対象リソースと順番

手順の対象リソースと順番は以下の通りです。

課題

構成図

1. IAM Identity Centerのセットアップ

1.1. APIから作成されたユーザーのためのEメールOTPの設定

APIから作成されたユーザーのためにEメールのOTP(One Time Password)を送信する設定をします。

「設定」(画面)

  • 認証(タブ)をクリックします。

  • 標準認証(セクション)の「設定」(ボタン)をクリックします。

    • 標準認証の設定(ダイアログ)が表示されます。

標準認証の設定(ダイアログ)

  • 「EメールのOTPを送信」(チェックボックス)をオンにします。

  • 「保存」(ボタン)をクリックします。

    • 「設定」(画面)が表示されます。

1.2. MFAの設定

「設定」(画面)

  • 認証(タブ)をクリックします。

  • 多要素認証(セクション)の「設定」(ボタン)をクリックします。

    • 多要素認証を設定(画面)が表示されます。

多要素認証を設定(画面)

  • 以下の設定を選択します。

    • MFAのプロンプトをユーザーに表示: 「サインインごと (常時オン)」

    • ユーザーはこれらの MFA タイプで認証できます: 全てオン (デフォルト)

    • 登録された MFA デバイスをユーザーが持っていない場合: 「サインイン時に MFA デバイスを登録するよう要求する」

  • 「変更を保存」(ボタン)をクリックします。

    • 「設定」(画面)が表示されます。

1.3. AWSアクセスポータルのURLの取得

AWSアクセスポータルのURLを取得します。

コマンド:

aws_access_portal_url="https://$(
  aws sso-admin list-instances \
    --query "Instances[].IdentityStoreId" \
    --output text
).awsapps.com/start" \
  && echo ${aws_access_portal_url}

結果(例):

https://d-xxxxxxxxxx.awsapps.com/start

注釈

ブラウザのブックマークなどに保存しておきます。

2. SSO Admin許可セットの設定

注釈

許可セットの数だけ実施する。

2.1. SSO Admin: 許可セットの作成

2.2. SSO Admin: 許可セットのポリシー追加

3. IdentityStoreグループの作成

注釈

作成するグループの数だけ実行する。

4. SSO Adminアカウントアサインメントの作成

注釈

[許可セット AWSアカウント グループ]の組み合わせの数だけ実行する。

一時ファイルの作成

コマンド:

mkdir -p ${HOME}/environment/tmp-handson-cli-iic/

変数の設定:

AWS_ACCOUNT_ID='<権限をアサインするAWSアカウントID>'

コマンド:

cat << EOF > ${HOME}/environment/tmp-handson-cli-iic/handson-cli-iic-account.tmp
AWS_ID='${AWS_ACCOUNT_ID}'
EOF

cat ${HOME}/environment/tmp-handson-cli-iic/handson-cli-iic-account.tmp

(例):

AWS_ID='123456789012'

5. IdentityStore: ユーザ、グループメンバーシップの作成

5.1. ユーザーの作成

注釈

作成するユーザーの数だけ実行する。

変数の設定

USER_NAME='ichi'
GIVEN_NAME='Ichiro'
FAMILY_NAME='Suzuki'
MAIL_ADDRESS='<SSOユーザーのメールアドレス>'

コマンド:

cat << EOF > ${HOME}/environment/tmp-handson-cli-iic/handson-cli-iic-user.tmp
USER_NAME='${USER_NAME}'
GIVEN_NAME='${GIVEN_NAME}'
FAMILY_NAME='${FAMILY_NAME}'
MAIL_ADDRESS='${MAIL_ADDRESS}'
EOF

cat ${HOME}/environment/tmp-handson-cli-iic/handson-cli-iic-user.tmp

(例):

USER_NAME='ichi'
GIVEN_NAME='Ichiro'
FAMILY_NAME='Suzuki'
MAIL_ADDRESS='ichi@example.jp'

5.2. グループメンバーシップの作成

注釈

[グループ ユーザー]の組み合わせの数だけ実行する。

AWSアクセスポータル

サインインに必要な情報

注釈

各ユーザーに以下を伝えます。

  • ユーザー名: (例: ichi)

  • AWSアクセスポータルのURL

初回のサインイン

  • ブラウザで、AWSアクセスポータルのURLにアクセスします。

    注釈

    管理者の場合、ブラウザのプライベートブラウズ機能を使うと、現在のAWSマネジメントコンソールにログインしたまま作業できるのでお勧めです。

AWSアクセスポータル (画面)

  • 以下の欄の入力をします。

    ユーザー名:

    (作成したユーザーのユーザー名 例: ichi)

  • 「次へ」(ボタン)をクリックします。

メールクライアント

  • メールアドレスに認証コードが届きます。

  • 認証コード(6桁)をコピーします。

AWSアクセスポータル (画面)

  • "認証コード"(テキストボックス)に、認証コード(6桁)をペーストします。

    • "パスワードの選択"(画面)が表示されます。

パスワードの選択(画面)

  • 以下の欄の入力をします。

    • パスワード: (パスワード文字列を入力します。)

    • パスワードの確認: (パスワードと同じ文字列を入力します。)

  • "AWSビルダーIDの作成"(ボタン)をクリックします。

    • MFAデバイスの登録(画面)が表示されます。

MFAデバイスの登録(画面)

  • 「認証アプリ」(ラジオボタン)をクリックします。

  • 「Next」(ボタン)をクリックします。

    • 「認証アプリを設定する」(画面)が表示されます。

「認証アプリを設定する」(画面)

  • ステップ2の「Show QR code」をクリックします。

    • QRコードが表示されます。

MFAアプリ

  • MFAアプリを起動します。

  • MFAアプリで、QRコードを読み込み、登録します。 (登録手順は、MFAアプリのマニュアルをご参照ください。)

    • MFAアプリに表示されている6桁の数字を確認します。

「認証アプリを設定する」(画面)

  • ステップ3の「認証コード」(テキストボックス)にMFAアプリの認証コードを入力します。

  • 「MFAを割り当て」(ボタン)をクリックします。

    • 「認証アプリ 登録済み」(画面)が表示されます。

「認証アプリ 登録済み」(画面)

  • 「完了」(ボタン)をクリックします。

    • AWSアクセスポータルの画面が表示されます。

AWSアカウントへのアクセス

AWSアクセスポータル (画面)

  • 「AWS Account」をクリックします。

    • AWS アカウントの一覧が表示されます。

  • AWSアカウントをクリックします。

    • 許可セットが表示されます。

  • 許可セットの「Management Console」をクリックします。

    • 新規ウィンドウでAWSアカウントにサインインし、AWSマネジメントコンソールが表示されます。

AWSアカウントでの確認

AWSマネジメントコンソール(画面)

  • 右上のアカウントをクリックします。

    • 以下が表示されていることを確認します。

      • アカウントID: XXXXXXXXXXXX

      • フェデレーティッドユーザー: AWSReservedSSO_<許可セット名>_exxxxxxxxxxxxxxx/<ユーザ名>

  • IAMマネジメントコンソールのダッシュボードにアクセスします。

AWSマネジメントコンソール(画面)

  • 左ペインの「ロール」をクリックします。

AWSマネジメントコンソール ロール(画面)

  • ロール一覧の「AWSReservedSSO_<許可セット名>_exxxxxxxxxxxxxxx/<ユーザ名>」ロール(リンク)をクリックします。

AWSマネジメントコンソール ロール 概要(画面)

  • 「許可」(タブ)をクリックします。

  • 許可ポリシーに、SSO Admin許可セットにアタッチしたポリシー「ReadOnlyAccess」が存在することを確認します。

AWSアカウントからのサインアウト

  • 右上のアカウントをクリックします。

    • 「サインアウト」(ボタン)をクリックします。

      • AWS公式サイトにアクセスします。

  • ブラウザ(タブ)を閉じます。

アンケート

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

注釈

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

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

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

注釈

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

クリーンアップ (IAM Identity Center用アカウント CloudShell)

クリーンアップの対象リソースと順番

クリーンアップの対象リソースと順番は以下の通りです。

課題

構成図

1. IdentityStore: グループメンバーシップ、ユーザーの削除

1.1. グループメンバーシップの削除

注釈

[グループ ユーザー]の組み合わせの数だけ実行する。

1.2. ユーザーの削除

注釈

削除するユーザーの数だけ実行する。

2. SSO Admin: アカウントアサインメントの削除

注釈

[許可セット AWSアカウント グループ]の組み合わせの数だけ実行する。

3. IdentityStore: グループの削除

注釈

削除するグループの数だけ実行する。

4. SSO Admin: 許可セットのポリシー剥奪

注釈

許可セットの数だけ実施する。

4.1. SSO Admin: 許可セットのポリシー剥奪

4.2. SSO Admin: 許可セットの削除

クリーンアップ (親アカウント CloudShell)

クリーンアップの対象リソースと順番

クリーンアップの対象リソースと順番は以下の通りです。

課題

構成図

1. IAM Identity Centerのクリーンアップ

(参考: IAM Identity Centerの子アカウントへの委任の解除)

「設定」(画面)

  • 「管理」(タブ)をクリックします。

  • 「委任された管理者」セクションで、「アカウントを登録解除」(ボタン)を選択します。

    • 「アカウント <子アカウントの名前> を登録削除」(ダイアログ)が表示されます。

「アカウント <子アカウントの名前> を登録削除」(ダイアログ)

  • テキストボックスにアカウント名を入力します。

  • 「アカウントを登録解除」(ボタン)をクリックします。

    • 「設定」(画面)が表示されます。

1.1. IAM Identity Centerを無効にする

「設定」(画面)

  • 「管理」(タブ)をクリックします。

  • 「IAM Identity Center の設定を削除」セクションで、「削除」(ボタン)を選択します。

    • 「IAM Identity Center の設定を削除しますか?」(ダイアログ)が表示されます。

「IAM Identity Center の設定を削除しますか?」(ダイアログ)

  • 注意書きを確認し、それぞれのチェックボックスをオンにします。

  • テキストボックスに表示されているIDを入力します。

  • 「確認」(ボタン)をクリックします。

    • IAM Identity Centerマネジメントコンソールのダッシュボードが表示されます。

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