0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSマルチアカウント構成でSSOログイン設定(IAM Identity Center)する際のハマりどころ

0
Posted at

AWSマルチアカウント構成でSSOログイン設定(IAM Identity Center)する際のハマりどころ

はじめに

AWS Organizations でマルチアカウント構成を作り、IAM Identity Center(旧 AWS SSO)で SSO ログインを設定しようとしたところ、コンソールの「AWS アカウント」画面に何も表示されず、SSO ユーザーの割り当てができないという状況にハマりました。

途中、AI アシスタントに「Identity Center インスタンスを削除して再作成するしかない」と提案されましたが、これは間違いでした。削除せずに CLI で切り分けて解決できたので、その手順を公開します。

環境・やりたかったこと

  • 管理アカウント + メンバーアカウント(ポートフォリオ用)の 2 アカウント構成
  • AWS Organizations でメンバーアカウントを招待済み(ステータス: アクティブ)
  • IAM Identity Center を東京リージョン(ap-northeast-1)で有効化済み
  • 許可セット AdministratorAccess を作成済み
  • Identity Center ユーザーを作成済み(MFA 設定済み)

やりたいこと: ユーザー → メンバーアカウント → AdministratorAccess の割り当て

症状

  • Identity Center の「AWS アカウント」画面を開いても、アカウントが 1 件も表示されない
  • そのため「ユーザーまたはグループを割り当て」の対象アカウントが選べない
  • 管理アカウントでログインしており、リージョンも正しい(ap-northeast-1)

やってはいけないこと:安易なインスタンス削除

AI アシスタントには「初期化が壊れているのでインスタンス削除 → 再作成が唯一の解決策」と提案されました。しかし Identity Center インスタンスを削除すると:

  • 作成済みのユーザー・グループ
  • 許可セット
  • すべての割り当て

全部消えます。削除は最終手段であり、まずは実態を確認すべきです。

切り分け:CloudShell で 3 層を確認する

コンソールの表示と API の実態は別物です。管理アカウントで CloudShell を開き、以下を順に確認しました。

① Identity Center インスタンスの状態

aws sso-admin list-instances --region ap-northeast-1

確認ポイント:

  • OwnerAccountId が管理アカウントか(組織インスタンスであること)
  • StatusACTIVE
  • インスタンスが 1 つだけか(アカウントインスタンスの紛れ込みがないか)

→ 結果: 正常

② Organizations 側の信頼されたアクセス

aws organizations list-aws-service-access-for-organization

確認ポイント: 出力に sso.amazonaws.com が含まれているか。

もし無ければ、これが原因です。以下で有効化できます:

aws organizations enable-aws-service-access --service-principal sso.amazonaws.com

→ 結果: 有効(正常)

③ 組織のアカウント一覧

aws organizations list-accounts

確認ポイント: 対象のメンバーアカウントが ACTIVE で表示されるか。

→ 結果: 表示される(正常)

結論:バックエンドは全部正常、コンソール表示だけの問題

3 層すべて正常でした。つまり「壊れている」ものは何もなく、コンソールの表示だけがおかしい状態です。であれば、コンソールに付き合わず CLI で直接割り当てを完了させれば良いという判断になります。

CLI で割り当てを実行する

必要な値を集める

ユーザー ID:

aws identitystore list-users --identity-store-id d-xxxxxxxxxx --region ap-northeast-1

許可セット ARN:

aws sso-admin list-permission-sets \
  --instance-arn arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxxxx \
  --region ap-northeast-1

割り当てを作成

aws sso-admin create-account-assignment \
  --instance-arn arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxxxx \
  --target-id 123456789012 \
  --target-type AWS_ACCOUNT \
  --permission-set-arn arn:aws:sso:::permissionSet/ssoins-xxxxxxxxxxxxxxxx/ps-xxxxxxxxxxxxxxxx \
  --principal-type USER \
  --principal-id <ユーザーID> \
  --region ap-northeast-1

Status: IN_PROGRESS が返れば処理開始です。

割り当ての確認

aws sso-admin list-account-assignments \
  --instance-arn arn:aws:sso:::instance/ssoins-xxxxxxxxxxxxxxxx \
  --account-id 123456789012 \
  --permission-set-arn arn:aws:sso:::permissionSet/ssoins-xxxxxxxxxxxxxxxx/ps-xxxxxxxxxxxxxxxx \
  --region ap-northeast-1

AccountAssignments にユーザー ID が表示されれば完了です。

動作確認

アクセスポータル(https://d-xxxxxxxxxx.awsapps.com/start)を開き、作成したユーザーでログイン(パスワード + MFA)。アカウント一覧に対象アカウントが表示され、AdministratorAccess からコンソールに入れました。

このとき実際に起きているのは、メンバーアカウント内に自動作成された IAM ロール(AWSReservedSSO_AdministratorAccess_xxxx)を一時認証情報で引き受ける動作です。長期のアクセスキーは存在せず、セッションは期限付きです。

学んだこと

  • コンソールの表示と API の実態は別物。 表示がおかしくても、まず CLI で各層(sso-admin / organizations / identitystore)の状態を確認する
  • 「削除して再作成」は最終手段。 特に Identity Center インスタンス削除はユーザー・許可セット・割り当てを全部消す破壊的操作
  • AI の診断も鵜呑みにしない。 「症状と完全に一致する」と断言されても、根拠(実際の API の状態)を自分で確認してから判断する
  • コンソールが使えなくても、Identity Center の割り当ては create-account-assignment で完結できる

おわりに

結果的に「壊れていたものは何も無かった」というオチでしたが、コンソールの不調を CLI で迂回して先に進む貴重な経験となりました。同じ症状で困っている方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?