Amazon SageMaker のカスタムセットアップを使用する - Amazon SageMaker

Amazon SageMaker のカスタムセットアップを使用する

[組織向けの設定] (カスタムセットアップ) は、Amazon SageMaker ドメインの高度なセットアップのガイドを提供します。このオプションは、アクセス許可、統合、暗号化など、アカウント設定のあらゆる側面を理解し、制御するのに役立つ情報とレコメンデーションを提供します。カスタムドメインを設定する場合は、このオプションを使用します。ドメインの詳細については、「Amazon SageMaker ドメインの概要」を参照してください。

認証方法

ドメインを設定する前に、ユーザーがドメインにアクセスするための認証方法を検討してください。

AWS アイデンティティセンター:

  • ユーザーグループへのアクセス許可の管理を簡素化します。グループを使用すると、個別のユーザーにこれらのアクセス許可を適用するのではなく、ユーザーグループに対してアクセス許可を付与したり拒否したりできます。ユーザーが別の組織に異動した場合は、そのユーザーを別の AWS Identity and Access Management アイデンティティセンター (AWS IAM Identity Center) グループに移動することができます。その後、ユーザーは新しい組織に必要なアクセス許可を自動的に受け取ります。

    IAM アイデンティティセンターは、ドメインと同一の AWS リージョンに配置されている必要があることに注意します。

    IAM アイデンティティセンターを使用して設定を行うには、以下の「AWS IAM アイデンティティセンターユーザーガイド」の手順を使用します。

  • IAM アイデンティティセンターのユーザーは、E メールで送信される AWS アクセスポータル URL を使用してドメインにアクセスできます。E メールには、ドメインにアクセスするためのアカウントを作成する手順が記載されています。詳細については、「AWS アクセスポータル へのサインイン」を参照してください。

    管理者は、[IAM アイデンティティセンター] に移動し、[設定の概要] の下にある [AWS アクセスポータル URL] を検索して、AWS アクセスポータル URL を取得できます。

  • ドメインへのアクセスを特定の Amazon Virtual Private Cloud (VPC)、インターフェイスエンドポイント、または事前定義された IP アドレスセットのみに制限する場合は、ドメインで AWS Identity and Access Management (IAM) 認証を使用する必要があります。この機能は、IAM アイデンティティセンター認証を使用するドメインではサポートされていません。IAM アイデンティティセンターを使用して、ワークフォース ID の一元管理を有効にすることはできます。IAM アイデンティティセンターを維持しながらこのような制限を実装し、一貫したユーザーサインインエクスペリエンスを提供するために IAM アイデンティティセンターを維持しながらこれらの制限を実装する方法については、AWS機械学習ブログの「Secure access to Amazon SageMaker Studio Classic with IAM Identity Center and a SAML application」を参照してください。このブログに記載の AWS SSO は、IAM アイデンティティセンターであることに注意してください。

IAM 経由でログイン:

  • ユーザープロファイルは、アカウントにログインした後、SageMaker コンソールからドメインにアクセスできます。

  • ドメインへのアクセスを特定の Amazon Virtual Private Clouds (VPC)、インターフェイスエンドポイント、または事前定義された IP アドレスセットのみに制限する場合は、ドメインで、AWS Identity and Access Management (IAM) 認証を使用する必要があります。詳細については、「VPC 内からのアクセスのみを許可する」を参照してください。

組織向けの設定 (カスタムセットアップ)

Amazon SageMaker の前提条件を満たす」の前提条件を満たしたら、[SageMaker Domain をセットアップ] (カスタムセットアップ) ページを開き、以下のセクションを展開して、セットアップの情報を表示します。

SageMaker コンソールから [SageMaker Domain をセットアップ] を開きます。
  1. [SageMaker コンソール] を開きます。

  2. 左側のナビゲーションペインで、[管理者設定] を選択して、オプションを展開します。

  3. [管理者設定] で、[ドメイン] を選択します。

  4. [ドメインの追加] ページで [ドメインの作成] を選択します。

  5. [SageMaker ドメインをセットアップ] ページで、[組織向けの設定] を選択します。

  6. [Set up (セットアップ)] を選択します。

[SageMaker Domain をセットアップ] ページが開いたら、以下の手順を実行します。

  1. [ドメイン名] には、ドメインの一意の名前を入力します。例えば、プロジェクト名やチーム名などを入力します。

  2. [Next] を選択します。

このステップでは、ドメインの認証方法、ユーザー、アクセス許可を設定します。

  1. [Studio へのアクセス方法] では、2 つのオプションのいずれかを選択できます。認証方法の詳細については、「認証方法」を参照してください。オプションの詳細については、以下を参照してください。

    • AWS アイデンティティセンター:

      [Studio を使用するユーザー] では、ドメインにアクセスする AWS IAM Identity Center グループを選択します。

      [アイデンティティセンターのユーザーグループなし] を選択した場合は、ユーザーなしのドメインが作成されます。IAM アイデンティティセンターグループは、ドメインの作成後にドメインに追加できます。詳細については、「ドメイン設定を編集する」を参照してください。

    • IAM 経由でログイン:

      [Studio を使用するユーザー][+ ユーザーを追加] をクリックして新しいユーザープロファイル名を入力し、[追加] をクリックしてユーザープロファイル名を作成して追加します。

      このプロセスを繰り返して、複数のユーザープロファイルを作成できます。

  2. [Studio を使用するユーザー] で IAM アイデンティティセンターユーザーまたは IAM アイデンティティセンターグループを選択して、[選択] をクリックします。Amazon SageMaker Studio は、IAM アイデンティティセンターを設定したリージョンと同一のリージョン内で設定する必要があります。ドメインのリージョンを変更するには、コンソールの右上にあるドロップダウンリストからリージョンを選択します。IAM アイデンティティセンターのリージョンは、AWS アクセスポータルに移動して変更することもできます。

  3. [実行する ML アクティビティ] で、[既存のロールを使用] をクリックして既存のロールを使用することも、[新しいロールの作成] をクリックして、ロールにアクセスを許可する ML アクティビティを確認することもできます。

  4. ML アクティビティを選択する際は、要件を満たす必要がある場合があります。要件を満たすには、[追加] をクリックして、要件を完了します。

  5. すべての要件が満たされたら、[次へ] をクリックします。

このステップでは、前のステップで有効にしたアプリケーションを設定できます。ML アクティビティの詳細については、「ML アクティビティリファレンス」を参照してください。

アプリケーションが有効になっていない場合、そのアプリケーションに関する警告が表示されます。有効になっていないアプリケーションを有効にするには、[戻る] をクリックして前のステップに戻り、前の手順に従って有効にします。

  • Studio の設定:

    [Studio] では、デフォルトのエクスペリエンスとして、Studio の最新バージョンか Classic バージョンを選択できます。つまり、Studio を開く際に操作する ML 環境を選択します。

    • Studio は、Amazon SageMaker Studio Classic など、複数の統合開発環境 (IDE) とアプリケーションを提供しています。選択すると、Studio Classic IDE はデフォルト設定を提供します。デフォルト設定の詳細については、「デフォルト設定」を参照してください。

      Studio の詳細については、「Amazon SageMaker Studio」を参照してください。

    • Studio Classic には Jupyter IDE が含まれています。選択すると、Studio Classic の設定を行うことができます。

      Studio Classic の詳細については、「Amazon SageMaker Studio Classic」を参照してください。

  • SageMaker Canvas の設定:

    Amazon SageMaker Canvas が有効になっている場合のオンボーディングの手順と設定の詳細については、「Amazon SageMaker Canvas の開始方法」を参照してください。

  • Studio Classic の設定:

    [Studio] をデフォルトのエクスペリエンスとして選択した場合 (推奨設定)、Studio Classic IDE がデフォルト設定を提供します。デフォルト設定の詳細については、「デフォルト設定」を参照してください。

    Studio Classic をデフォルトのエクスペリエンスとして選択した場合は、ノートブックリソース共有を有効にするか無効にするかを選択できます。ノートブックリソースには、セル出力や Git リポジトリなどのアーティファクトなどがあります。ノートブックリソースの詳細については、「Amazon SageMaker Studio Classic ノートブックを共有、使用する」を参照してください。

    [ノートブックリソース共有の有効化] を有効にする場合:

    1. [共有可能なノートブックリソースの S3 ロケーション] には、Amazon S3 のロケーションを入力します。

    2. [暗号化キー - オプション] では、[カスタム暗号化なし] のままにするか、既存の AWS KMS キーを選択するか、[KMS キー ARN を入力] をクリックして、AWS KMS キーの ARN を入力します。

    3. [ノートブックセル出力共有の詳細設定] では、[ユーザーのセル出力共有を許可] または [セル出力共有を無効にする] を選択します。

  • RStudio の設定:

    RStudio を有効にするには、RStudio ライセンスが必要です。設定するには、「RStudio ライセンスを取得する」を参照してください。

    1. [RStudio Workbench] で、RStudio ライセンスが自動検出されることを確認します。RStudio ライセンスの取得と、SageMaker でのライセンスのアクティベーションの詳細については、「RStudio ライセンスを取得する」を参照してください。

    2. RStudio サーバーを起動するインスタンスタイプを選択します。詳細については、「RStudioServerPro インスタンスタイプ」を参照してください。

    3. [Permission] (アクセス許可) で、ロールを作成するか、既存のロールを選択します。ロールには、次のアクセス許可ポリシーが必要です。このポリシーを使用すると、RStudioServerPro アプリケーションが必要なリソースにアクセスできるようになります。これにより、既存の RStudioServerPro アプリケーションのステータスが Deleted または Failed になった場合に、Amazon SageMaker が RStudioServerPro アプリケーションを自動的に起動できるようにもなります。ロールへのアクセス許可の付与の詳細については、「ロールのアクセス許可ポリシーの変更 (コンソール)」 を参照してください。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses", "license-manager:GetLicense", "license-manager:CheckoutLicense", "license-manager:CheckInLicense", "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery", "sagemaker:CreateApp" ], "Resource": "*" } ] }
    4. [RStudio Connect] で、RStudio Connect サーバーの URL を追加します。RStudio Connect は、Shiny アプリケーション、R Markdown レポート、ダッシュボード、プロットなどのためのパブリッシングプラットフォームです。SageMaker で RStudio にオンボードした場合は、RStudio Connect サーバーは作成されません。詳細については、「RStudio Connect URL を追加する」を参照してください。

    5. [RStudio Package Manager] (RStudio パッケージマネージャー) で、RStudio パッケージマネージャーの URL を追加します。SageMaker では、RStudio にオンボードするときに、パッケージマネージャーのデフォルトのパッケージリポジトリが作成されます。RStudio パッケージマネージャーの詳細については、「RStudio Package Manager の URL を更新する」を参照してください。

    6. [次へ] をクリックします。

  • Code Editor の設定:

    Code Editor が有効になっている場合の概要と設定の詳細については、「Amazon SageMaker Studio の Code Editor」を参照してください。

このセクションでは、Studio に表示される表示可能なアプリケーションと機械学習 (ML) ツールをカスタマイズできます。このカスタマイズでは、Studio の左側のナビゲーションペインでアプリケーションと ML ツールの非表示を設定するのみです。Studio UI の詳細については、「Amazon SageMaker Studio の UI の概要」を参照してください。

アプリケーションの詳細については、「Amazon SageMaker Studio でサポートされているアプリケーション」を参照してください。

[Studio UI をカスタマイズ] の機能は Studio Classic では利用できません。Studio をデフォルトのエクスペリエンスとして設定する場合は、[前へ] と [戻る] をクリックして、前のステップに戻ります。

  1. [Studio UI をカスタマイズ] ページで、Studio に表示されるアプリケーションと ML ツールの表示設定をオフに切り替えて非表示にできます。

  2. 変更内容を確認したら、[次へ] をクリックします。

Studio を他の AWS サービスに接続する方法を選択します。

[仮想プライベートクラウド (VPC) のみ] ネットワークアクセスタイプの使用を指定することで、Studio へのインターネットアクセスを無効にできます。このオプションを選択すると、VPC に SageMaker API とランタイムへのエンドポイントがあるか、インターネットにアクセスできるネットワークアドレス変換 (NAT) ゲートウェイがあり、セキュリティグループでアウトバウンド接続が許可されていない限り、Studio ノートブックを実行できなくなります。Amazon VPC の詳細については、「Amazon VPC を選択する」を参照してください。

[仮想プライベートクラウド (VPC) のみ] を選択する場合、以下のステップが必要となります。[パブリックインターネットアクセス] を選択した場合、以下のステップが必要となります。

  1. [VPC] で、Amazon VPC ID を選択します。

  2. [サブネット] で、1 つ以上のサブネットを選択します。サブネットを選択しない場合、SageMaker では Amazon VPC 内のすべてのサブネットが使用されます。制約のあるアベイラビリティーゾーンに作成されていない複数のサブネットを使用することをお勧めします。このような制約のあるアベイラビリティーゾーンでサブネットを使用すると、容量不足エラーが発生し、アプリケーションの作成時間が長くなる可能性があります。制約のあるアベイラビリティーゾーンの詳細については、「アベイラビリティーゾーン」を参照してください。

  3. [セキュリティグループ] で、1 つ以上のサブネットを選択します。

[VPC のみ] を選択した場合、SageMaker はドメインに定義されているセキュリティグループ設定をドメイン内に作成されるすべての共有スペースに自動的に適用します。[パブリックインターネットのみ] を選択した場合、SageMaker はドメイン内で作成された共有スペースにセキュリティグループ設定を適用しません。

データを暗号化するオプションが提供されています。ドメインの作成時に作成される Amazon Elastic File System (Amazon EFS) および Amazon Elastic Block Store (Amazon EBS) ファイルシステムです。Amazon EBS のサイズは、Code Editor スペースと JupyterLab スペースの両方で使用されます。

Amazon EFS ファイルシステムと Amazon EBS ファイルシステムを暗号化した後に、暗号化キーを変更することはできません。Amazon EFS ファイルシステムと Amazon EBS ファイルシステムを暗号化するには、以下の設定を使用できます。

  • [暗号化キー - オプション] では、[カスタム暗号化なし] のままにするか、既存の KMS キーを選択するか、[KMS キー ARN を入力] をクリックして、KMS キーの ARN を入力します。

  • [デフォルトのスペースサイズ - オプション] で、デフォルトのスペースサイズを入力します。

  • [最大スペースサイズ - オプション] で、最大スペースサイズを入力します。

ドメインの設定内容を確認します。設定を変更する必要がある場合は、関連するステップの横にある [編集] をクリックします。ドメイン設定が正確であることを確認したら、[送信] をクリックします。これにより、ドメインが作成されます。このプロセスには数分かかることがあります。

以下のセクションでは、IAM アイデンティティセンターまたは IAM 認証方法を使用してドメインをカスタムセットアップするための AWS CLI の手順について説明します。

AWS CLI 認証情報の設定などの前提条件を満たしたら、「Amazon SageMaker の前提条件を満たす」で以下のステップを実行します。

  1. ドメインの作成に使用する実行ロールを作成して、AmazonSageMakerFullAccess ポリシーをアタッチします。最低限、ロールを引き受けるための SageMaker アクセス許可を付与する信頼ポリシーがアタッチされている既存のロールを使用することもできます。詳細については、「SageMaker 実行ロールの使用方法」を参照してください。

    aws iam create-role --role-name execution-role-name --assume-role-policy-document file://execution-role-trust-policy.json aws iam attach-role-policy --role-name execution-role-name --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
  2. アカウントのデフォルトの Amazon Virtual Private Cloud (Amazon VPC) を取得します。

    aws --region region ec2 describe-vpcs --filters Name=isDefault,Values=true --query "Vpcs[0].VpcId" --output text
  3. デフォルトの Amazon VPC のサブネットのリストを取得します。

    aws --region region ec2 describe-subnets --filters Name=vpc-id,Values=default-vpc-id --query "Subnets[*].SubnetId" --output json
  4. デフォルトの Amazon VPC ID、サブネット、実行ロール ARN を渡してドメインを作成します。SageMaker イメージ ARN も渡す必要があります。使用できる JupyterLab バージョンの ARN の詳細については、「JupyterLab のデフォルトバージョンを設定する」を参照してください。

    authentication-mode では、IAM アイデンティティセンター認証には SSO を、IAM 認証には IAM を使用します。

    aws --region region sagemaker create-domain --domain-name domain-name --vpc-id default-vpc-id --subnet-ids subnet-ids --auth-mode authentication-mode --default-user-settings "ExecutionRole=arn:aws:iam::account-number:role/execution-role-name,JupyterServerAppSettings={DefaultResourceSpec={InstanceType=system,SageMakerImageArn=image-arn}}" \ --query DomainArn --output text

    AWS CLI を使用し、StudioWebPortalSettings を使って、ドメインで Studio に表示されるアプリケーションと ML ツールをカスタマイズできます。アプリケーションを非表示にするには HiddenAppTypes を、ML ツールを非表示にするには HiddenMlTools を使用します。Studio UI の左側のナビゲーションのカスタマイズの詳細については、「Amazon SageMaker Studio UI で機械学習ツールとアプリケーションを非表示にする」を参照してください。この機能は、Studio Classic では利用できません。

  5. ドメインが作成されたことを検証します。

    aws --region region sagemaker list-domains

AWS CloudFormation を使用したドメイン作成の詳細については、「AWS CloudFormation ユーザーガイド」の「AWS::SageMaker::Domain」を参照してください。

ドメインの設定に使用できる AWS CloudFormation テンプレートサンプルについては、「aws-samples GitHub リポジトリ」の「 Creating Amazon SageMaker domains using AWS CloudFormation」を参照してください。

ドメインが設定されると、管理ユーザーはドメインを確認して編集できます。詳細については、「ドメインを表示する」および「ドメイン設定を編集する」を参照してください。

オンボーディング後にドメインにアクセスする

ユーザーは、以下を使用して SageMaker にアクセスできます。