Slide 1

Slide 1 text

よくわからない人向けの IAM Identity Center と ちょっとした落とし穴 [IAMスペシャル!]Security-JAWS 【第39回 】(November 8th, 2025) Speaker : @kazzpapa3 / JAWS-UG 神戸

Slide 2

Slide 2 text

Biography { "Bio": { "Name": "ICHINO Kazuaki a.k.a. kazzpapa3", "Organization": "A certain AWS partner company", "Role": "Technical Support Engineer", "Favorite AWS Services": [ "AWS CLI", "AWS CloudTrail" ], "Less Favorite AWS Service (as a Support Engineer)": [ "AWS Billing (請求ロジックが難解すぎる)" ], "Personal Interest": "初音ミク", "Socials": { "Twitter/X": "@kazzpapa3", "LinkedIn": "https://www.linkedin.com/in/kazzpapa3/" } } }

Slide 3

Slide 3 text

Biography { "Bio": { "Name": "ICHINO Kazuaki a.k.a. kazzpapa3", "Organization": "A certain AWS partner company", "Role": "Technical Support Engineer", "Favorite AWS Services": [ "AWS CLI", "AWS CloudTrail" ], "Less Favorite Person (as a Support Engineer)": [ "アクセスキーを雑に扱うすべての人(勘繰っちゃダメ!)" ], "Personal Interest": "初音ミク", "Socials": { "Twitter/X": "@kazzpapa3", "LinkedIn": "https://www.linkedin.com/in/kazzpapa3/" } } }

Slide 4

Slide 4 text

目黒は何回か来てますが 目黒で登壇するのは初めてで、広くて緊張しますね とはいえ、Security-JAWS 【第39 ( ミク) 回 】とキリのいい数字! はりきっていきます @kazzpapa3 / #secjaws #jawsug 4 / 60

Slide 5

Slide 5 text

はじめに @kazzpapa3 / #secjaws #jawsug 5 / 60

Slide 6

Slide 6 text

対象として想定する聴講者・前提 開発者やデータアナリストなど、インフラ専門ではないが AWS サービ スを利用する必要がある方を想定しています 文脈上出てくる Amazon Q については、ローカルでの CLI 環境 (Amazon Q Developer for CLI)を想定しています @kazzpapa3 / #secjaws #jawsug 6 / 60

Slide 7

Slide 7 text

話すこと IAM Identity Center の概要 組織インスタンスとアカウントインスタンスの話 組織インスタンスとアカウントインスタンスは別物であること 機能的に異なる点も大きいがアカウントインスタンスから組織インス タンスへの昇格もできないこと @kazzpapa3 / #secjaws #jawsug 7 / 60

Slide 8

Slide 8 text

話さないこと IAM Identity Center の仕組みについての深掘り ユーザー設計や管理についての詳細 @kazzpapa3 / #secjaws #jawsug 8 / 60

Slide 9

Slide 9 text

(たぶん)持ち帰っていただける内容 以下を考えるきっかけや気づき IAM Identity Center の適切な選択基準(組織 vs アカウントインス タンス) 後から困らないための初期設計時のチェックポイント @kazzpapa3 / #secjaws #jawsug 9 / 60

Slide 10

Slide 10 text

Amazon Q や QuickSight を使おうとして… 「IAM Identity Center を設定する」のように書かれていて、それ何? ってなった方 アプリ使いたいだけなんやけど? Amazon AppStream 2.0 ※ や、もうさよならしましたが Amazon Monitron などもそうでしたね まさか直前で名前が変わると思っていなかったのですが、Amazon AppStream 2.0 は 11月6日から Amazon WorkSpaces Applications という名称に変わったとのことです @kazzpapa3 / #secjaws #jawsug 10 / 60

Slide 11

Slide 11 text

そもそも IAM Identity Center って何者やねん @kazzpapa3 / #secjaws #jawsug 11 / 60

Slide 12

Slide 12 text

情シスやインフラでない方には馴染み薄かも ざっくり言うとアプリケーションや AWS アカウント(マネジメントコ ンソールや CLI 経由)へのユーザーアクセスを管理するサービスです 古くは AWS SSO と呼ばれていました SSO = Single Sign-On ですので、この頃の呼称の方がサービスの 役割を想起しやすいかもです 一部サービスプレフィックス(名前空間)に残っています IdC や IIC などと略されることもあるようですが、AWS で正式な略称 はないようです なので長いですが本登壇でも IAM Identity Center と呼称します @kazzpapa3 / #secjaws #jawsug 12 / 60

Slide 13

Slide 13 text

大別すると 2 つのユーザーアクセスを管理 AWS アカウントへのユーザーアクセス アプリケーションへのユーザーアクセス AWS マネージドアプリケーション Amazon Q や QuickSight を使う時に問われているのはこちら カスタマーマネージドアプリケーション @kazzpapa3 / #secjaws #jawsug 13 / 60

Slide 14

Slide 14 text

AWS アカウントへのユーザーアクセス AWS STS AWSアカウント 外部IdP (Optional) IAM Identity Center ブラウザ ユーザー AWS STS AWSアカウント 外部IdP (Optional) IAM Identity Center ブラウザ ユーザー alt [外部IdPを使⽤する場合] [Identity Centerの内部ユーザーストア] AWSアクセスポータルにアクセス ログインリクエスト SAML/OIDC認証リダイレクト 認証情報⼊⼒要求 認証情報⼊⼒ 認証結果 (SAML Assertion/ID Token) 認証情報⼊⼒要求 認証情報⼊⼒ ユーザー認証・認可チェック 利⽤可能なAWSアカウント・ロール⼀覧表⽰ アクセスしたいアカウント・ロール選択 アカウント・ロールアクセス要求 権限セット・アカウント割り当て確認 AssumeRoleWithSAML リクエスト SAML Assertion検証・⼀時認証情報⽣成 ⼀時認証情報 (AccessKey, SecretKey, SessionToken) AWSマネジメントコンソールへリダイレクト ⼀時認証情報でアクセス AWSリソースへのアクセス許可 14 / 60

Slide 15

Slide 15 text

アプリケーションへのユーザーアクセス AWSマネージドアプリケーション 外部IdP (Optional) IAM Identity Center ブラウザ ユーザー AWSマネージドアプリケーション 外部IdP (Optional) IAM Identity Center ブラウザ ユーザー alt [外部IdPを使⽤する場合] [Identity Centerの内部ユーザーストア] AWSアクセスポータルにアクセス ログインリクエスト SAML/OIDC認証リダイレクト 認証情報⼊⼒要求 認証情報⼊⼒ 認証結果 (SAML Assertion/ID Token) 認証情報⼊⼒要求 認証情報⼊⼒ ユーザー認証・認可チェック 利⽤可能なアプリケーション⼀覧表⽰ 使⽤したいアプリケーション選択 アプリケーションアクセス要求 アプリケーション割り当て・権限確認 SAML Assertion⽣成 アプリケーションへSAMLリダイレクト SAML Assertion付きでアクセス SAML Assertion検証 ユーザー属性・権限マッピング アプリケーションへのアクセス許可 15 / 60

Slide 16

Slide 16 text

いずれのユーザーアクセスでも シングルサインイン用のアクセスポータルを提供する SSO のユーザーとして認証を行う 認証されたユーザーに対して、認可されている AWS アカウントやアプ リケーションへの動線を表示する @kazzpapa3 / #secjaws #jawsug 16 / 60

Slide 17

Slide 17 text

やや複雑化してきている IAM Identity Center @kazzpapa3 / #secjaws #jawsug 17 / 60

Slide 18

Slide 18 text

従来は AWS Organizations が必須でした AWS Organizations を有効化し、管理アカウントから IAM Identity Center の設定を行う必要がありました 有効化された IAM Identity Center の操作権限を、他のメンバーアカ ウントに与えることは可能でした(権限委任) ただ AWS Organizations に対する 明確な依存関係 がありました @kazzpapa3 / #secjaws #jawsug 18 / 60

Slide 19

Slide 19 text

ただ 2023年11月 @kazzpapa3 / #secjaws #jawsug 19 / 60

Slide 20

Slide 20 text

アカウントインスタンスの登場 2023年11月17日 に「アカウントインスタンス」として AWS Organizations の利用有無に関係なく作成できるようになりました[1] IAM Identity Center と連携が可能な AWS マネージドアプリケーシ ョンを迅速に評価可能とすること が主目的 [1] AWS IAM Identity Center provides new account instance for faster evaluation and adoption of AWS managed applications 結果、従来の AWS Organizations と統合される IAM Identity Center の利用方法が「組織インスタンス」と呼ばれるようになりました @kazzpapa3 / #secjaws #jawsug 20 / 60

Slide 21

Slide 21 text

これがちょっとわかりにくい @kazzpapa3 / #secjaws #jawsug 21 / 60

Slide 22

Slide 22 text

画面 A

Slide 23

Slide 23 text

画面 B

Slide 24

Slide 24 text

マネジメントコンソールでは間違い探しレベル ダッシュボード画面トップの状態では、左サイドナビ部分に「マルチア カウントのアクセス許可」があるかどうか?程度 以前より少しアップデートされて「設定」メニューでアカウントインス タンスと組織のインスタンスが併記されるようになり、多少わかりやす くなった @kazzpapa3 / #secjaws #jawsug 24 / 60

Slide 25

Slide 25 text

画面 C(「設定」画面)

Slide 26

Slide 26 text

機能差分や注意点 @kazzpapa3 / #secjaws #jawsug 26 / 60

Slide 27

Slide 27 text

機能の差分 機能 AWS Organizations 管理アカ ウントのインスタンス (推奨) メンバーアカウ ント内のインス タンス スタンドアロンのイ ンスタンス AWS ア カウント ユーザーの管理 はい はい はい AWS AWS マネージドアプリケーション へのシングルサインオンアクセス用の ア クセスポータル はい はい はい OAuth 2.0 (OIDC) カスタマーマネージ ドアプリケーション はい はい はい マルチアカウント権限 はい いいえ いいえ AWS へのシングルサインオンアクセス用 の アクセスポータル AWS アカウント はい いいえ いいえ SAML 2.0 カスタマーマネージドアプリ ケーション はい いいえ いいえ 委任管理者がインスタンスを管理できる はい いいえ いいえ 出典:https://docs.aws.amazon.com/ja_ jp/singlesignon/latest/userguide/identity-center-instances.html

Slide 28

Slide 28 text

注意点 出典:https://docs.aws.amazon.com/singlesignon/latest/userguide/account-instances-identity-center.html を登壇者にて和訳 アカウントインスタンスに関する考慮事項 アカウントインスタンスは特殊なユースケース向けに設計されてお り、組織インスタンスで利用可能な機能のサブセットを提供します。 アカウントインスタンスを作成する前に、以下の点にご留意くださ い。 アカウントインスタンスは権限セットをサポートしていないため、 AWS アカウントへのアクセスはサポートされません。 “ “ @kazzpapa3 / #secjaws #jawsug 28 / 60

Slide 29

Slide 29 text

注意点 出典:https://docs.aws.amazon.com/singlesignon/latest/userguide/account-instances-identity-center.html を登壇者にて和訳 アカウントインスタンスを組織インスタンスに変換または統合する ことはできません。 アカウントインスタンスをサポートしているのは、一部の AWS マ ネージドアプリケーションのみです。 アカウントインスタンスは、単一のアカウントでのみ、かつアプリ ケーションの有効期間中のみアプリケーションを使用する、独立し たユーザーのみに使用してください。 “ “ @kazzpapa3 / #secjaws #jawsug 29 / 60

Slide 30

Slide 30 text

注意点 出典:https://docs.aws.amazon.com/singlesignon/latest/userguide/account-instances-identity-center.html を登壇者にて和訳 アカウントインスタンスにアタッチされたアプリケーションは、ア プリケーションとそのリソースを削除するまで、アカウントインス タンスにアタッチされたままである必要があります。 アカウントインスタンスは、作成された AWS アカウント内に保持 する必要があります。 “ “ @kazzpapa3 / #secjaws #jawsug 30 / 60

Slide 31

Slide 31 text

要点 権限セットをサポートしておらず AWS アカウントへのユーザーアクセ スには使えない アカウントインスタンスを組織インスタンスに変換または統合すること ができない 一部の AWS マネージドアプリケーションのみに限られ AWS としては 組織のインスタンスを推奨している つまり検証用途で使ってほしいし、本番利用するときには再度作成する 必要があるよ、ということ @kazzpapa3 / #secjaws #jawsug 31 / 60

Slide 32

Slide 32 text

できることが違うのに見た目でわかりにくい メンバーアカウント側でポチポチ作成して、出来上がったものがアカウ ントインスタンスかどうかの認識がないまま作成が終わっている可能性 もある AWS Organizations が必要だった頃を知らない人だと、余計疑問に 思うポイントが少ないはず 出来上がった後に、アカウントインスタンスに対応していないサービ スである、マルチアカウント管理が必要である、など、IAM Identity Center がなんかうまくいっていなさそう という部分にハマりがち @kazzpapa3 / #secjaws #jawsug 32 / 60

Slide 33

Slide 33 text

実際のお問い合わせでも テクサポとして受け付けているお客様からの問い合わせでも、社内から の問い合わせでも、一定数「なんかうまくいかない」的な問い合わせが あります 調査するとアカウントインスタンスとして作成されていて、そもそもや ろうとしていることの要件を満たしていないことが大半 そして組織インスタンスとアカウントインスタンスの違いをそもそも知 らないことが多い というか 「アカウントインスタンス」の存在を知らないことも多い @kazzpapa3 / #secjaws #jawsug 33 / 60

Slide 34

Slide 34 text

さらにバッティングすると面倒に メンバーアカウント A がありアカウントインスタン スを構築する 加えて管理アカウントからメンバーアカウントに権 限委任をする この状態になると IAM Identity Center インスタ ンスの どちらにもアクセスできない状態に陥るケー ス があります 過去に ブログにしている のでよろしければ @kazzpapa3 / #secjaws #jawsug 34 / 60

Slide 35

Slide 35 text

一瞬、情シスの人向け @kazzpapa3 / #secjaws #jawsug 35 / 60

Slide 36

Slide 36 text

一応、制御はできる 前述と同様の社内問い合わせの増加につながる可能性が考えられます そのため アカウントインスタンスの作成を抑制する方法 が管理アカウ ントの IAM Identity Center ダッシュボードに「中央マネジメント」 として掲載されています @kazzpapa3 / #secjaws #jawsug 36 / 60

Slide 37

Slide 37 text

抑制の方法は SCP による制限 「中央マネジメント」セクションの「アカウントインスタンスの防止」 ボタンをクリックするとサンプルポリシーを確認できます { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyMemberAccountInstances", "Effect": "Deny", "Action": [ "sso:CreateInstance" ], "Resource": "*" } ] }

Slide 38

Slide 38 text

一瞬、情シス向けに抑制方法の説明を挟みましたが 裏を返すと明示的に Deny されていないとアカウントインスタンスが作 れるということ 例えば Amazon QuickSight では作成済みのアカウントの認証方法を 変更ができない ここに IAM Identity Center のアカウントインスタンスから組織の インスタンスへの昇格ができない制約が加わる ので、QuickSight の 認証方法をアカウントインスタンスから組織のインスタンスへ変更し ようと思った場合も、データ移行とダウンタイムを伴う移行計画が必 要となります もちろんこの課題を理解した上での PoC なら OK です

Slide 39

Slide 39 text

ここで Amazon Q Developer に目を向けてみる @kazzpapa3 / #secjaws #jawsug 39 / 60

Slide 40

Slide 40 text

Amazon Q Developer でのサインイン方法 Amazon Q Developer では インターフェイスと Tier(=プラン)の 掛け合わせ で使える使えないが存在します インターフェイスとして定義されているものには以下 3 パターンが存在 します AWS マネジメントコンソール、AWS アプリとウェブサイト 各種 IDE Eclipse、JetBrains、Visual Studio Code、Visual Studio コマンドライン(=Amazon Q Developer for CLI) @kazzpapa3 / #secjaws #jawsug 40 / 60

Slide 41

Slide 41 text

Free ティア Free ティアでは以下のようになっており、開発目的として IDE やコマ ンドラインを視野に入れた場合は Builder ID しか選択肢がない状況 で す インターフェイス 個人アカウント (Builder ID) IAM Identity Center IAM 認証情報 AWS マネジメントコンソール、 および AWS アプリとウェブサイト いいえ はい はい IDE はい いいえ いいえ コマンドライン はい いいえ いいえ 出典:https://docs.aws.amazon.com/ja_ jp/amazonq/latest/qdeveloper-ug/q-tiers.html より抜粋し調整 @kazzpapa3 / #secjaws #jawsug 41 / 60

Slide 42

Slide 42 text

Pro ティア Pro ティアになると Builder ID、IAM Identity Center ともに利用が可 能になります インターフェイス 個人アカウント (Builder ID) IAM Identity Center AWS マネジメントコンソール、 および AWS アプリとウェブサイト いいえ はい IDE はい はい コマンドライン はい はい 出典:https://docs.aws.amazon.com/ja_ jp/amazonq/latest/qdeveloper-ug/q-tiers.html より抜粋し調整 @kazzpapa3 / #secjaws #jawsug 42 / 60

Slide 43

Slide 43 text

急な登場人物 Builder ID とは? いきなり出てきましたが、AWS の資格試験を受験されたことのある方 には少し馴染みがあるかもしれません 我らが沼口さんの note によると以下となっています 出典:https://note.com/s_numaguchi/n/nd5126833389b AWSのさまざまな部門がさまざまな目的で Builder ID の利用を進めて いくことになりそうですが、現状のメリットは「クレジットカードの 登録がいらない」「個人用のアカウント」ということだと思います。 “ “ @kazzpapa3 / #secjaws #jawsug 43 / 60

Slide 44

Slide 44 text

AWS Account ユーザーCさん Builder ID AWS Account ユーザーBさん Builder ID AWS Account ユーザーAさん Builder ID クレカ不要で Pro Tier どうするん ユーザーと Builder ID の組み合わせに対し、 Pro Tier の費用を紐づける AWS アカウントを 一意に指定する つまり、ユーザー:Builder ID:AWS アカウ ント が 1:1:1 の関係 AWS アカウントは管理者からの払い出し → な のに Pro Tier 用の Builder ID は個人に帰属、 となって野良に近い感じになる これが許容しにくい組織もあるのでは? @kazzpapa3 / #secjaws #jawsug 44 / 60

Slide 45

Slide 45 text

また、いくつかの制限事項も存在します 出典:https://docs.aws.amazon.com/ja_ jp/amazonq/latest/qdeveloper-ug/getting-started- builderid.html#builder-id-limitations @kazzpapa3 / #secjaws #jawsug 45 / 60

Slide 46

Slide 46 text

となると IAM Identity Center か @kazzpapa3 / #secjaws #jawsug 46 / 60

Slide 47

Slide 47 text

の前に、デプロイオプションという新たな概念が サブスクライブの管理にプロファイルという概念があります プロファイルをメンバーアカウントにシェアする・しないが行えます AWS Cloud AWS Organizations Management Account Amazon Q Profile IAM Idnetity Center subscription subscription Member Account B Profile Sharing Pro le Sharing Member Account A Profile Sharing Pro le Sharing

Slide 48

Slide 48 text

Q Developer プロファイルの特性 IAM Identity Center ワークフォースユーザーでの利用の場合に作成が 必須となっています IAM Identity Center ワークフォースユーザー=AWS アカウントへ のサインインが行える IAM Identity Center ユーザーのこと つまり AWS アカウントへのユーザーアクセスには使えない「アカウ ントインスタンス」は対象外 ということになります Amazon Q Developer プロファイルとは @kazzpapa3 / #secjaws #jawsug 48 / 60

Slide 49

Slide 49 text

そのため、以下のような書かれ方をしています アカウントインスタンスの場合、マネジメントコンソールや AWS アプ リ、ウェブサイトでの Pro Tier が使えないとあります※ IAM Identity Center + Pro Tier なのに使えないインターフェイス がある、というのが混乱しそうです(Pro=全部使えるんじゃないの と) 出典:https://docs.aws.amazon.com/ja_ jp/amazonq/latest/qdeveloper-ug/deployment-options.html @kazzpapa3 / #secjaws #jawsug 49 / 60

Slide 50

Slide 50 text

このままだと Amazon Q Devloper の話になっちゃ うので戻しますが… @kazzpapa3 / #secjaws #jawsug 50 / 60

Slide 51

Slide 51 text

Amazon Q と IAM Identity Center の関係だけでも 考える要素が多い 組み合わせによって、何ができる・できないが発生する 「ちょっと検証するだけだから…」の「ちょっと」がどの程度か? 導入判断をした時に付随的・派生的に発生する作業があるのかないの か? といったポイントまで気を回す必要がありそうです @kazzpapa3 / #secjaws #jawsug 51 / 60

Slide 52

Slide 52 text

さらにいろいろ思いを巡らせると… IAM Identity Center は 1 組織に 1 つしか組織のインスタンスを持て ません 仮にすでに東京リージョンで組織のインスタンスを持っていて、バー ジニア北部リージョンでしかリリースされておらず、かつ、IAM Identity Center を要求するサービスを使いたいとなった時どうする か? @kazzpapa3 / #secjaws #jawsug 52 / 60

Slide 53

Slide 53 text

私はマイルドな変態なので 会社と関係ない個人の環境のいくつかはこんな感じ AWS Cloud AWS Organizations Management Account IAM Idnetity Center (ap-northeast-1) AWS Organizations Management Account IAM Idnetity Center (us-east-1) External IdP @kazzpapa3 / #secjaws #jawsug 53 / 60

Slide 54

Slide 54 text

ただ そもそも外部 IdP で良いのか okta への依存度が高すぎないか? SaaS(IDaaS)側に障害が発生した場合のアクセス経路は? などなど、夢は広がるばかりw @kazzpapa3 / #secjaws #jawsug 54 / 60

Slide 55

Slide 55 text

よき、IAM Identity Center ライフを! @kazzpapa3 / #secjaws #jawsug 55 / 60

Slide 56

Slide 56 text

ちょこっと告知ー JAWS-UG 神戸やりまーす 11月18日(火)19時〜 @三宮 目黒からだったら 3時間半ほど なので余裕ですね @kazzpapa3 / #secjaws #jawsug 56 / 60

Slide 57

Slide 57 text

Security is job zero. Thank you.

Slide 58

Slide 58 text

Appendix 58 / 60

Slide 59

Slide 59 text

参考資料 AWS 公式文書など AWS IAM Identity Center provides new account instance for faster evaluation and adoption of AWS managed applications IAM アイデンティティセンターの組織インスタンスとアカウントイ ンスタンス Account instances of IAM Identity Center Q Developer のサービスティア – Free および Pro 個人アカウント (Builder ID) を使用した開始方法 Amazon Q Developer プロファイルとは 59 / 60

Slide 60

Slide 60 text

登場した資料など 登壇者作成のコンテンツ IAM Identity Center における組織インスタンスとアカウントインス タンスの違いについてと注意点 60 / 60