Amazon Web Services ブログ

ビジネスアナリストが AWS IAM Identity Center を経由して Amazon SageMaker Canvas に AWS 管理コンソールを介さずにアクセス

本稿は、2022年6月14日に AWS Machine Learning Blog で公開された “Enable business analysts to access Amazon SageMaker Canvas without using the AWS Management Console with AWS SSO” を翻訳したものです。

近年、IT はますます進化しています。ローコード・ノーコード (LCNC) テクノロジーのおかげで、これまでエンジニアや開発者など社内の技術に精通した人の特権であったツールやプラットフォームへのアクセスが、さまざまなバックグラウンドを持つ人に求められるようになっています。

そのような LCNC テクノロジーの発展の中で、私たちは、ビジネスアナリストが機械学習 (ML) モデルを構築し、コードを書いたり ML の経験がなくても正確な予測を生成できる、ポイント&クリックのビジュアルインターフェースである Amazon SageMaker Canvas を発表しました。

環境のセキュリティを確保しながら、そうした新しいユーザーの俊敏性を確保するために、多くの企業が AWS IAM Identity Center (AWS SSO の後継サービス) などのシングルサインオン技術の導入を選択しています。IAM Identity Center は、クラウドベースのシングルサインオンサービスで、会社のすべての AWS アカウントとクラウドアプリケーションへのシングルサインオンアクセスを簡単に一元管理することができます。エンドユーザーが、SAML (Security Assertion Markup Language) 2.0 をサポートするカスタムアプリケーションを含め、割り当てられたすべての AWS アカウントとクラウドアプリケーションにひとつの画面からアクセスできるユーザーポータルが用意されています。

本稿では、SageMaker Canvas を IAM Identity Center のカスタム SAML 2.0 アプリケーションとして構成し、ビジネスアナリストが IAM Identity Center やその他の既存の ID プロバイダー (IdP) からの認証情報で、AWS 管理コンソールを経由しなくても、SageMaker Canvas にシームレスにアクセスできるようにするために必要なステップを説明します。

ソリューションの概要

IAM Identity Center から Amazon SageMaker ドメイン内のアプリ (訳注: SageMaker Canvas など) への接続を確立するには、次の手順を実行する必要があります。

  1. SageMaker Canvas にアクセスする必要があるすべての IAM Identity Center ユーザーについて、SageMaker ドメインでユーザープロファイルを作成する。
  2. IAM Identity Center でカスタム SAML 2.0 アプリケーションを作成し、ユーザーに割り当てる。
  3. 必要な Identity and Access Management (IAM) SAML プロバイダーと IAM Identity Center ロールを作成する。
  4. IAM Identity Center から必要な情報を属性マッピングで SageMaker ドメインにマッピングする。
  5. IAM Identity Center から SageMaker Canvas アプリケーションにアクセスする。

前提条件

SageMaker Canvas を IAM Identity Center に接続するには、以下の前提条件を満たす必要があります。

  • サポートされている AWS リージョンのどれかひとつで IAM Identity Center を設定する。手順については、「はじめに」を参照してください。
  • IAM を使用する SageMaker ドメインを作成する (訳注: SageMaker ドメイン自体は IAM Identity Center 経由で認証することもできますが、ここでは IAM で認証するよう設定する必要があります)。手順については、「IAM を使用して Amazon SageMaker ドメインにオンボードする」を参照してください。

SageMaker ドメインのユーザープロファイルを作成する

SageMaker ドメインでは、それぞれのユーザーが自分のユーザープロファイルを持っています。Studio IDE、RStudio、SageMaker Canvas などの Studio アプリは、これらのユーザープロファイルごとに作成することができ、作成したユーザープロファイルに紐付けられています。

IAM Identity Center で所定のユーザープロファイルの SageMaker Canvas アプリにアクセスするためには、ユーザープロファイル名を IAM Identity Center のユーザー名にマッピングする必要があります。こうすることで、AWS Identity Center のユーザー名、つまりユーザープロファイル名を IAM Identity Center から Canvas に自動的に渡すことができるようになります。

この記事では、IAM Identity Center へのオンボーディングの前提条件の際に作成された IAM Identity Center ユーザーがすでに利用可能であると仮定しています。SageMaker ドメイン、および SageMaker Canvas にオンボードさせたい各 IAM Identity Center ユーザーについて、それぞれユーザープロファイルが必要です。

この情報を取得するには、IAM Identity Center コンソールの「Users (ユーザー)」ページに移動します。ここでは、ユーザー名 (以下の場合は davide-gallitelli) を確認できます。

この情報をもとに、SageMakerドメインにアクセスして、davide-gallitelli という同じ名前の新しいユーザープロファイルを作成します。

別の IdP をお持ちの場合、ドメイン内で重複がなければ、その IdP が提供する任意の情報をユーザープロファイルの名前に使用できます。ただし、IAM Identity Center の属性マッピングに従って、正しくマッピングする必要があります。

IAM Identity Center でカスタム SAML 2.0 アプリケーションを作成する

次のステップは、IAM Identity Center でカスタム SAML 2.0 アプリケーションを作成することです。

  1. IAM Identity Center コンソールのナビゲーションペインで「Applications (アプリケーション)」を選択する。
  2. Add aplication (アプリケーションの追加)」を選択する。
  3. Add custom SAML 2.0 application (カスタム SAML 2.0 アプリケーションの追加)」を選択する。

  1. Display name (表示名)」には、SageMaker Canvas + リージョン名などを入力する。
  2. Description (説明)」には、オプションの説明を入力する。
  3. 後ほど IAM 設定時に使用する「IAM Identity Center SAML metadata file (IAM Identity Center SAML メタデータファイル)」をダウンロードしておく。
  4. Application start URL (アプリケーション開始 URL)」は、そのまま空にしておく。
  5. Relay state (リレー状態)」には、次のように入力する。
    https://YOUR-REGION.console.aws.amazon.com/sagemaker/home?region=YOUR-REGION#/studio/canvas/open/YOUR-STUDIO-DOMAIN-ID
  6. Session duration (セッション時間)」では、セッション時間を選択する。8時間をお勧めします。
    セッション時間の値は、認証が再度必要になるまでのユーザーセッションの継続時間を表します。1時間が最も安全ですが、時間が長いと再ログインの必要性が少なくなります。ここでは、1営業日に相当する8時間を選択します。
  7. Application ACS URL (アプリケーション ACS URL)」には、https://signin.aws.amazon.com/saml と入力する。
  8. Application SAML audience (アプリケーション SAML オーディエンス)」には、urn:amazon:webservices と入力する。

ここまでの設定を提出すると、アプリケーションの構成は次のスクリーンショットのようになります。

このアプリケーションにユーザーを割り当てることで、ログイン後にユーザーの IAM Identity Center ポータルに SageMaker Canvas のアプリケーションが表示されるようになります。

  1. Assigned users (アサインされたユーザー)」タブで、「Assign Users (ユーザーのアサイン)」を選択する。
  2. 割り当てたいユーザーを選択する。

オプションとして、社内の多くのデータサイエンティストやビジネスアナリストが SageMaker Canvas を使えるようにしたい場合は、IAM Identity Center グループを使うのが一番早くて簡単な方法です。そのために、以下の例では business-analystsdata-scientists という 2 つの IAM Identity Center グループを作成しています。それぞれの社員の役割に応じて、これらのグループにユーザーを割り当て、それぞれのグループにアプリケーションへのアクセス権を与えることができます。

IAM SAML プロバイダーと IAM Identity Center ロールを設定する

IAM SAML プロバイダーを構成するには、次の手順を実行します。

  1. IAM コンソールのナビゲーションペインで「Identity providers (ID プロバイダ)」を選択する。
  2. Add provider (プロバイダを追加)」を選択する。
  3. Provider type (プロバイダのタイプ)」で「SAML」を選択する。
  4. Provider name (プロバイダ名)」に、AWS_SSO_Canvas などの名前を入力する。
  5. 先ほどダウンロードしたメタデータドキュメントをアップロードする。

  1. 作成した ID プロバイダーを表示し、後のステップで使用する ARN (arn:aws:iam:ACCOUNT:saml-provider:AWS_SSO_Canvas) をメモしておく。

また、IAM Identity Center が SageMaker Canvas アプリケーションにアクセスするために使用する新しいロールを作成する必要があります。

  1. IAM コンソールのナビゲーションペインの「Roles (ロール)」を選択する。
  2. Create role (ロールを作成)」を選択する。
  3. Trusted entity type (信頼されたエンティティタイプ)」は「SAML 2.0 federation (SAML 2.0 フェデレーション)」を選択する。
  4. SAML 2.0-based provider (SAML 2.0 ベースのプロバイダー)」では、先ほど作成したプロバイダー (AWS_SSO_Canvas) を選択する。
  5. ふたつの SAML 2.0 アクセス方法はどちらも選択しない。
  6. Attribute (属性)」には、SAML:sub_type を選択する。
  7. Value (値)」には、persistent と入力します。
  8. Next (次へ)」を選択する。

次に、SageMaker Canvas へのリダイレクトを行うために必要な、SageMaker ドメインの署名付き URL の作成権限を IAM Identity Center に付与する必要があります。

  1. Permissions policies (許可ポリシー)」ページで「Create policy (ポリシーを作成)」を選択する。
  2. Create policy (ポリシーの作成)」ページのタブで「JSON」を選択し、以下のコードを入力する。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePresignedDomainUrlWithPrincipalTag",
                "sagemaker:CreatePresignedDomainUrl"
            ],
            "Resource": "*"
        }
    ]
}
  1. Next:Tags (次のステップ: タグ)」 を選択し、必要であればタグを記入する。
  2. Next:Review (次のステップ: 確認)」を選択する。
  3. ポリシーに名前 (例: CanvasSSOPresignedURL) を付ける。
  4. Create policy (ポリシーの作成)」を選択する。
  5. ステップ 15 の「Add permisions (許可の追加)」ページに戻り、作成したポリシーを検索する。

  1. 作成したポリシーを選択し、「Next (次へ)」を選択する。
  2. ロールに AWS_SSO_Canvas_Role などの名前を付け、オプションとして説明を記入する。
  3. 確認ページで、信頼ポリシーを編集して、次のコードを入力する。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "<ステップ 6 でメモした IAM SAML プロバイダーの ARN>"
            },
            "Action": [
                "sts:AssumeRoleWithSAML",
                "sts:TagSession"
            ],
            "Condition": {
                "StringEquals": {
                    "SAML:sub_type": "persistent",
                    "SAML:aud": "https://signin.aws.amazon.com/saml"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "<ステップ 6 でメモした IAM SAML プロバイダーの ARN>"
            },
            "Action": "sts:SetSourceIdentity"
        }
    ]
}
  1. 変更を保存し、「Create role (ロールを作成)」を選択する。
  2. 次のセクションで使用するために、このロールの ARN もメモしておく。

IAM Identity Center で属性マッピングを設定する

最後のステップでは、属性マッピングを構成します。ここでマッピングした属性は、アプリケーションに送信される SAML アサーションの一部となります。アプリケーションのどのユーザー属性が、接続されたディレクトリ (訳注: ここでは IAM Identity Center) の対応するユーザー属性にマッピングされるかを選択できます。詳細については「属性マッピング」を参照してください。

  1. IAM Identity Center コンソールで、作成したアプリケーションに移動する。
  2. Actions (アクション)」メニューの「Edit attribute mappings (属性マッピングを編集)」を選択し、以下のマッピングを構成する。
User attribute in the application (アプリケーションのユーザー属性) Maps to this string value or user attribute in IAM Identity Center (この文字列値または IAM Identity Center のユーザー属性にマップする)
Subject ${user:email}
https://aws.amazon.com/SAML/Attributes/RoleSessionName ${user:email}
https://aws.amazon.com/SAML/Attributes/PrincipalTag:
SageMakerStudioUserProfileName
${user:subject}
https://aws.amazon.com/SAML/Attributes/Role <IAM SAML プロバイダーの ARN>, <CANVAS SSO IAM ロールの ARN>
  1. Save changes (変更の保存)」を選択する。

これで完了です!

IAM Identity Center から SageMaker Canvas アプリケーションにアクセスする

IAM Identity Center コンソールで、ユーザーポータルの URL をメモしておきます。まずは AWS アカウントからログアウトするか、シークレットブラウザウィンドウを開くことをお勧めします。それから、ユーザーポータルの URL にアクセスし、IAM Identity Center ユーザーに設定した認証情報でログインし、SageMaker Canvas アプリケーションを選択します。

自動的に SageMaker Canvas のアプリケーションにリダイレクトされます。

後片付け

セッション料金の発生を避けるため、SageMaker Canvas からログアウトしてください。

まとめ

本稿では、ビジネスアナリストがシングルサインオンのポータルを通じて、SageMaker Canvas を用いたノーコード ML を安全かつ統一された方法で体験できるようにするためのソリューションについて説明しました。これを実現するために、SageMaker Canvas を IAM Identity Center 内のカスタム SAML 2.0 アプリケーションとして構成しました。ビジネスアナリストは、ワンクリックで SageMaker Canvas を使用し、ノーコード ML で新しい課題を解決できるようになりました。これにより、クラウドエンジニアリングとセキュリティチームが必要とするセキュリティを実現する一方で、ビジネスアナリストチームの俊敏性と独立性を確保することができるようになりました。これらの手順と同様のプロセスを任意の IdP で再現し、その他のシングルサインオンの仕組みに適合させることもできます。

SageMaker Canvas の詳細については「Amazon SageMaker Canvas を発表 – ビジネスアナリスト向けの視覚的でノーコードの機械学習機能」をご覧ください。SageMaker Canvas は、データサイエンスチームとのコラボレーションも容易に実現します。詳しくは、「ビルド、共有、デプロイ : ビジネスアナリストとデータサイエンティストが、ノーコード機械学習と Amazon SageMaker Canvas を使用して市場投入までの時間を短縮する方法」をご覧ください。IT 管理者向けには「Amazon SageMaker Canvas のセットアップと管理 (IT 管理者向け)」を確認することをお勧めします。


著者について

Davide Gallitelli は EMEA 地域における AI/ML Specialist Solutions Architect です。ブリュッセルに拠点を置き、ベネルクス全域のお客様を密にサポートしています。幼少期から開発を始めており、7歳でコードを書き始め、大学の後期に AI/ML を学び始め、それ以来、AI/ML に惚れ込んでいます。
 
 
 
 
 

翻訳は機械学習パートナーソリューションアーキテクトの本橋が担当しました。