Amazon SageMaker Unified Studioが即時セットアップ可能に。ワンクリックオンボーディングを試してみた
はじめに
こんにちは、データ事業本部の渡部です。
今回は、Amazon SageMaker Unified Studioに新たに追加された「ワンクリック・オンボーディング」機能を試してみます。
Introducing one-click onboarding of existing datasets to Amazon SageMaker - AWS
これまでSageMaker Unified Studioを構築して分析を始めるまでには、IAMロールの作成や権限設定、ネットワーク設定など、多くの「初動の手順」が必要でした。しかし今回のアップデートにより、既存のデータアクセス権限を引き継いだまま、文字通り「ワンクリック」で即座に分析環境を利用開始できるようになりました。
(ブログのアイキャッチが緑色のSageMakerなのは後ほど修正します)
アップデート
今回のAmazon SageMaker Unified Studioのアップデートの要点は以下の通りです。
- ワンクリック・オンボーディング機能の追加: インフラやIAMなど多くの設定は不要となり、既存のAWS認証情報を利用して即座にSageMaker Unified Studio環境を立ち上げ可能になりました。
- シームレスなデータ連携: Amazon AthenaやRedshift等のコンソールから直接起動でき、AWS Glue Data CatalogやS3へのアクセス権限を自動で引き継ぎます。
注意なのは、以前までのセットアップががらっとワンクリックで済むようになったわけではありません。
今回アップデートで追加されたワンクリック・オンボーディングは新しく作成できるようになったIAMベースドメインにおける機能で、以前まで存在していたIAM Identity Centerベースドメインの作成は依然として同じセットアップが必要です。
IAMベースドメインは、IAM Identity Centerを中心に据えた認証管理ではなく、IAM Role/Userを中心に据えるようになった点がこれまでと異なります。
試してみる
SageMaker コンソールから「Get start(開始する)」をクリックするか、Amazon Athena、Amazon Redshift、または Amazon S3 Tables から SageMaker Unified Studio を開くことができるようなので2つとも試してみようと思います。
前提
まっさらな新規アカウントでの試しではないので、少し手順などが違うかもしれません。
そのため私のAWSアカウント環境についての情報を以下に記載します
- AWS 分析サービスとの統合有効済み
- LakeFormationでの権限制御適用済み
SagaMakerコンソールからUnified Studioを開いてみる
まずはSagaMaker Unified Studioのトップ画面から試してみます。
検索から「sagemaker」と打ち込み、「Amazon SageMaker」を選択します。
緑色の「Amazon SageMaker AI」ではないことには注意です。こちらは2024re:Invent以前のSageMakerで、機械学習に使用されるものです。紫色の方がNext-Gen SageMakerというわけです。

さて画面遷移すると「今すぐ始める」の文字。
以前まではSageMaker Unified Studioのトップリソースとしての「ドメインの作成」からする必要がありましたが、「今すぐ始める」に変更されています。これこそがワンクリックオンボーディングによる変化でしょうか。すぐ始められる期待感があります。

セットアップ画面に移ります。


設定内容としては以下4つ。
- SageMaker Unified Studioの管理者設定
- SageMaker Unified Studioの実行用Roleの用意
- S3 TablesとAWS分析サービスの統合
- SageMaker Unified Studio、およびされが作成および管理するデータ・リソースのデータ暗号化に使用するKMSの用意
管理者についてはSageMakerStudioAdminIAMConsolePolicy(Amazon SageMaker Unified Studio の初期管理特権と個々のセットアップ特権を提供)がIAM Policyとしてついているとよいようです。セットアップしたIAM UserやIAM Roleが管理者として登録されるようですね。今回私のRoleにはすでに必要な権限がついているため、このままで問題ありません。
他の設定についても基本そのままでよいでしょう。実行用Roleに指定したRoleでデータへのアクセス制御がなされます。
「設定」をクリックします。
ロケットが作られる様子をみながら、セットアップを待ちます。


5分ほど待つと、自動的にSageMakerのトップ画面へと遷移しました。
先ほどまで「今すぐ始める」だったボタンが「開く」に変わっています。開いてみます。

するとこのダークモードな画面。SageMaker Unified Studioですね。
ワンクリックオンボーディングの言葉どおりにワンクリックでセットアップが完了しました。

Overviewがまずは表示されて、データ探索・ノートブックの作成・MLモデルの開発への遷移と、サンプルデータによるSageMaker Unified Studioのガイドが用意されています。
今回は「Explore your data」をしてみます。
「Catalogs」にはAwsDataCatalogとs3tablescatalogが存在します。

この画面でどんなデータがあるのかを文字通り探索することができますね。
今回はcustomer_infoというテーブルデータを確認してみるので、右上の「Actions」> 「Query」を選択します。

画面が「Query Editor」に遷移されました。
そのまま自動的にクエリが実行され、データプレビューがなされデータ確認ができましたね。

各サービスからUnified Studioを開いてみる
SageMaker Unified StudioはSageMakerコンソールだけでなく、Amazon Athena、Amazon Redshift、Amazon S3 Tables からも開くことができます。
まずS3 Tablesコンソール、Unified Studioプロジェクトを払い出した同じリージョンでS3 Tablesのテーブルを開き、「クエリ」を押すと、「SageMaker Unified Studioによるクエリ」がありました。

クリックすると、SageMaker Unified Studioのクエリエディタが開いて、クエリをしてくれました。

AthenaコンソールにもUnified Studioの選択肢がありますし、

RedshiftコンソールにもそれぞれのネームスペースからUnified Studioでのクエリの選択肢がありました。どこにデータがあってもUnified Studioからアクセスできる強みですね。

気になった点を調べてまとめてみた
とっても早くセットアップ完了しましたが、以前まではIAMやVPCなど今回より多くのセットアップを必要としていました。
なぜこんなに早くなったのか・・・?
ちょっと以前までと比べて気になるポイントもあったので調べてみた内容をまとめます。
今回のセットアップはIAMベースのドメイン作成であって、以前までのとは別物
冒頭でも書きましたが、以前までのセットアップはIdentity Center ベースのドメイン作成であるのに対して、今回のワンクリックオンボーディングで作成できるのはIAMベースのドメイン作成です。
名前の通り前者はユーザー認証と管理にAWS IAM Identity Centerを使用します(IAM Userも可能)。後者はIAM Role/Userを使用してデータやリソースにアクセスしAmazon SageMaker Unified Studio ドメインの作成を自動化します。
そのため、以前までのIdentity Centerベースのドメイン作成も可能です。
SageMakerコンソールから「ドメイン」> 「ドメインを作成」で以前までのセットアップ画面となります。



今回のアップデートはドメイン作成の方法が一つ増えたよ、という話でした。
IAMベースドメインのプロジェクトのログインRoleは1つのみの指定
現時点ではIAMベースドメインのプロジェクトのメンバーには1つのRoleもしくはUserのみ所属させることができそうです。

「Edit」からメンバーの編集ができますが、プルダウンからIAM RoleもしくはUserの選択制です。
ここから、プロジェクト:ログイン認証 = 1:1の関係であることが伺えます。

Set up IAM-based domains in Amazon SageMaker Unified Studio - Amazon SageMaker Unified Studio
IAMベースドメインのプロジェクトの実行Roleの権限
上記ログインRoleはあくまでUnified Studioのポータルに入るためのログインRoleであって、データにアクセスなどの実行Roleではありません。
実行Roleはプロジェクト単位で別に設定をします。
調べてみてわかったこととして、はじめにセットアップしたプロジェクトの実行Roleは自動的にデータへのアクセス権限が付与されますが、別のプロジェクト払出し時に別の実行Roleを割り当てると自動的にはアクセス権限が付与されないということです。
実行Roleはコンソール上ではプロジェクト作成時にのみ設定可能であるようなので、ログインRoleはそのままに実行Roleを変更してプロジェクトを作成してみました。

「Execution role」に指定したRoleは、ポリシーAmazonSageMakerAdminIAMExecutionRoleが必要とのことなのでアタッチしています。
プロジェクトは1分ほどで作成されます。
そのプロジェクトにログインしみてみると、、、Catalogsのs3Tablescatalogにあるデータベースなどが表示されていないことがわかりました。

これはLakeFormationで権限が割り当てられていないためです。
Lake FormationのData permissionを確認してみると、sagemaker_sample_dbのみの権限があるようで、既存のS3 Tablesに対する許可はありませんでした。

対してはじめにIAMベースのドメイン作成時にセットアップした実行Roleは、LakeFormationの「Data lake administrators」として登録されていました。権限を自由に設定する権限を有しています。

またDataPermissionとしてドメイン作成時に存在したすべてのカタログ・データベース・テーブルに対する権限が付与されていました。
はじめにセットアップされるプロジェクトは管理者用ということがここから伺えます。

なおIAM Identity Centerのドメインでは、Cloud Formationによって様々設定がされていましたが、今回のIAMベースのドメインで作成されていたいスタックを見る限りLake Formation周りは設定されていませんでした。APIでよしなに設定してくれているようです。
スタック: DataZone-Env-xxxxxxxxx
| 論理 ID | 物理 ID | タイプ | ステータス |
|---|---|---|---|
| AthenaWorkgroup | sagemaker-studio-workgroup-6g1uhgsdsy96sn | AWS::Athena::WorkGroup | CREATE_COMPLETE |
| EventBridgeScheduleGroup | SageMakerUnifiedStudio-6g1uhgsdsy96sn-dev | AWS::Scheduler::ScheduleGroup | CREATE_COMPLETE |
| ProjectBucket | amazon-sagemaker-<account-id>-us-east-1-6g1uhgsdsy96sn |
AWS::S3::Bucket | CREATE_COMPLETE |
| ProjectBucketPolicy | amazon-sagemaker-<account-id>-us-east-1-6g1uhgsdsy96sn |
AWS::S3::BucketPolicy | CREATE_COMPLETE |
| SageMakerSpacesDefaultDomain | d-yqw6hpc4hwef | AWS::SageMaker::Domain | CREATE_COMPLETE |
IAMベースドメインのまとめ
IAMベースドメインの特徴が見えてきましたね。
なお制約事項としてIAMベースドメインはAWSアカウントのリージョン単位で1つしか作成できません。
Only one IAM-based domain is available per AWS Account per region.
IAM-based domains and projects - Amazon SageMaker Unified Studio
これまでわかったIAMベースドメインの特徴をまとめると、
- IAMベースドメインは1リージョン1つまで作成可能
- 1プロジェクトに対してログインRole/Userは1つ割り当て可能
- 最初のセットアッププロジェクトの実行Roleには全アクセス権限がLake Formationで付与される
- 別プロジェクトで別の実行Roleをセットアップ時には、Lake Formationのアクセス権限は付与されない
IAMベースドメインの概観を図に起こしてみました。

使い方としては、まずはドメインの作成と管理者プロジェクトを作成。このプロジェクトはすべてのデータを閲覧操作可能とします。
続いて事業部やチームなどの好みの単位でプロジェクトを作成します。実行用Roleには事前にプロジェクト単位で作成したRoleを使用し、それぞれに合うようにアクセス制御します。
ここで注意なのはログインRoleも実行Roleも共通なので、誰がクエリ実行したかなどの特定はできいということです。
個人単位でプロジェクトを作成すると可能ですが、そうするとUnified Studioで作成した資材の共有が大変になるなのでここは悩ましいというところです。
IAMベースドメインで実現できないことがあるなら、IAM Identity Centerベースのドメインを使用していくとよいでしょう。
さいごに
いかがでしたでしょうか。
今回のアップデートでワンクリックで素早くSageMaker Unified Studioが扱えて、既存リソースへアクセスできるようになりました。
SageMaker Unified Studioがどのようなものなのか体験したい場合や、小規模に始めてみたい場合にまず使っていけるのかなと思います。
現状は共通Roleでのアクセスとなるので、誰が実行したのかなど監査の部分が気になります。
これではどうしても企業ポリシーが満たせない場合はIAM Identity Centerドメインの使用を検討するとよさそうです。
以上です。どなたかのご参考になれば幸いです。
合わせて読みたい
IAM Identity Centerドメインについてはこちらをご参考ください。










