

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Studio Classic から Studio に UI を移行する
<a name="studio-updated-migrate-ui"></a>

ドメインを移行する最初のフェーズで、UI を Amazon SageMaker Studio Classic から Amazon SageMaker Studio に移行します。このフェーズでは、データの移行は行いません。ユーザーは、移行前と同じ方法でデータを引き続き使用できます。データ移行に関する詳細については、「[(オプション) Studio Classic から Studio にデータを移行する](studio-updated-migrate-data.md)」を参照してください。

フェーズ 1 では以下の手順を行います。

1. Studio で新しく使用するアプリケーションに対し、アプリケーションを作成するためのアクセス許可を更新します。

1. ドメインの VPC 設定を更新します。

1. Studio UI を使用するようにドメインをアップグレードします。

## 前提条件
<a name="studio-updated-migrate-ui-prereq"></a>

以降の手順を実行する前に、「[Studio エクスペリエンスを移行するための前提条件を満たす](studio-updated-migrate-prereq.md)」の前提条件を満たしてください。

## 手順 1: アプリケーションを作成するためのアクセス許可を更新する
<a name="studio-updated-migrate-limit-apps"></a>

ドメインを移行する前に、アプリケーションを作成するためのアクセス許可をユーザーに付与するようにドメインの実行ロールを更新します。

1. 「IAM AWS Identity and Access Management ポリシーの作成」の手順に従って、次のいずれかのコンテンツを含む ポリシーを作成します。 [https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html) 
   + 次のポリシーを使用して、すべてのアプリケーションタイプとスペースに対するアクセス許可を付与します。
**注記**  
ドメインに `SageMakerFullAccess` ポリシーが使用されている場合は、この操作を行う必要はありません。`SageMakerFullAccess` により、すべてのアプリケーションを作成するためのアクセス許可が付与されます。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "SMStudioUserProfileAppPermissionsCreateAndDelete",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:OwnerUserProfileArn": "true"
                     }
                 }
             },
             {
                 "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreatePresignedDomainUrl"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
             },
             {
                 "Sid": "SMStudioAppPermissionsListAndDescribe",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:ListApps",
                     "sagemaker:ListDomains",
                     "sagemaker:ListUserProfiles",
                     "sagemaker:ListSpaces",
                     "sagemaker:DescribeApp",
                     "sagemaker:DescribeDomain",
                     "sagemaker:DescribeUserProfile",
                     "sagemaker:DescribeSpace"
                 ],
                 "Resource": "*"
             },
             {
                 "Sid": "SMStudioAppPermissionsTagOnCreate",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:AddTags"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:TaggingAction": "false"
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateSpace",
                     "sagemaker:UpdateSpace",
                     "sagemaker:DeleteSpace"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/${sagemaker:DomainId}/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:OwnerUserProfileArn": "true"
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateSpace",
                     "sagemaker:UpdateSpace",
                     "sagemaker:DeleteSpace"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/${sagemaker:DomainId}/*",
                 "Condition": {
                     "ArnLike": {
                         "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                     },
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Private",
                             "Shared"
                         ]
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/${sagemaker:DomainId}/*",
                 "Condition": {
                     "ArnLike": {
                         "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                     },
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Private"
                         ]
                     }
                 }
             },
             {
                 "Sid": "AllowAppActionsForSharedSpaces",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:*:*:app/${sagemaker:DomainId}/*/*/*",
                 "Condition": {
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Shared"
                         ]
                     }
                 }
             }
         ]
     }
     ```

------
   + Studio では表示されるアプリケーションのセットが拡張されるため、以前には表示されなかったアプリケーションへのアクセスもユーザーに許可されます。管理者は 、一部のアプリケーションのアクセス許可を特定のユーザーに拒否する AWS Identity and Access Management (IAM) ポリシーを作成することで、これらのデフォルトアプリケーションへのアクセスを制限できます。
**注記**  
アプリケーションタイプは、`jupyterlab` または `codeeditor` のいずれかです。

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "DenySageMakerCreateAppForSpecificAppTypes",
                 "Effect": "Deny",
                 "Action": "sagemaker:CreateApp",
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*/app-type/*"
             }
         ]
     }
     ```

------

1. ポリシーをドメインの実行ロールにアタッチします。手順については、[「Adding IAM identity permissions (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)」の手順に従ってください。

## 手順 2: VPC 設定を更新する
<a name="studio-updated-migrate-vpc"></a>

ドメインを `VPC-Only` モードで使用する場合は、VPC 設定が `VPC-Only` モードで Studio を使用するための要件を満たしていることを確認してください。詳細については、「[VPC 内の Amazon SageMaker Studio ノートブックを外部リソースに接続する](studio-updated-and-internet-access.md)」を参照してください。

## 手順 3: Studio UI へのアップグレード
<a name="studio-updated-migrate-set-studio-updated"></a>

ドメインを Studio Classic から Studio に移行する前に、そのドメインと同じ設定で Studio を使用してテスト用にドメインを作成することをお勧めします。

### (オプション) テスト用のドメインを作成する
<a name="studio-updated-migrate-ui-create-test"></a>

このテスト用のドメインを使用して Studio を操作し、ネットワーク設定をテストして、アプリケーションを起動してから、ドメインを移行してください。

1. ドメインのドメイン ID を取得します。

   1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

   1. 左側のナビゲーションペインから **[管理設定‭]** を展開し、**[ドメイン]** を選択します。

   1. 既存のドメインを選択します。

   1. **[ドメインの詳細]** ページで、**[ドメインの設定]** タブを選択します。

   1. **ドメイン ID** をコピーします。

1. ドメインの ID を追加します。

   ```
   export REF_DOMAIN_ID="domain-id"
   export SM_REGION="region"
   ```

1. `describe-domain` を使用して、ドメインに関する重要な情報を取得します。

   ```
   export REF_EXECROLE=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.DefaultUserSettings.ExecutionRole')
   export REF_VPC=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.VpcId')
   export REF_SIDS=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.SubnetIds | join(",")')
   export REF_SGS=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.DefaultUserSettings.SecurityGroups | join(",")')
   export AUTHMODE=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.AuthMode')
   ```

1. パラメータを検証します。

   ```
   echo "Execution Role: $REF_EXECROLE || VPCID: $REF_VPC || SubnetIDs: $REF_SIDS || Security GroupIDs: $REF_SGS || AuthMode: $AUTHMODE"
   ```

1. 既存のドメインの設定を使用してテスト用のドメインを作成します。

   ```
   IFS=',' read -r -a subnet_ids <<< "$REF_SIDS"
   IFS=',' read -r -a security_groups <<< "$REF_SGS"
   security_groups_json=$(printf '%s\n' "${security_groups[@]}" | jq -R . | jq -s .)
   
   aws sagemaker create-domain \
   --domain-name "TestV2Config" \
   --vpc-id $REF_VPC \
   --auth-mode $AUTHMODE \
   --subnet-ids "${subnet_ids[@]}" \
   --app-network-access-type VpcOnly \
   --default-user-settings "
   {
       \"ExecutionRole\": \"$REF_EXECROLE\",
       \"StudioWebPortal\": \"ENABLED\",
       \"DefaultLandingUri\": \"studio::\",
       \"SecurityGroups\": $security_groups_json
   }
   "
   ```

1. テスト用のドメインが `In Service` になったら、テスト用ドメインの ID を使用してユーザープロファイルを作成します。このユーザープロファイルを、アプリケーションの起動とテストに使用します。

   ```
   aws sagemaker create-user-profile \
   --region="$SM_REGION" --domain-id=test-domain-id \
   --user-profile-name test-network-user
   ```

#### Studio の機能をテストする
<a name="studio-updated-migrate-ui-testing"></a>

`test-network-user` ユーザープロファイルを使用して、テスト用のドメインを起動します。Studio の UI を徹底的にテストし、Studio の機能を `VPCOnly` モードでテストするためのアプリケーションを作成することをお勧めします。次のワークフローをテストしてください:
+ 新しい JupyterLab のスペース、テスト環境、接続を作成します。
+ Code-OSS (Visual Studio Code - Open Source) に基づく新しい Code Editor のスペース、テスト環境、接続を作成します。
+ 新しい Studio Classic アプリを起動し、環境と接続をテストします。
+ Amazon Simple Storage Service の接続をテストし、読み取りと書き込みのアクションを調べます。

これらのテストに成功した場合は、既存のドメインをアップグレードします。障害が発生した場合は、環境と接続の問題を修正してから既存のドメインを更新することをお勧めします。

#### テスト用のドメインリソースをクリーンアップする
<a name="studio-updated-migrate-ui-clean"></a>

既存のドメインを移行したら、テスト用のドメインリソースをクリーンアップします。

1. テスト用のドメインの ID を追加します。

   ```
   export TEST_DOMAIN="test-domain-id"
   export SM_REGION="region"
   ```

1. ドメインで実行中の状態にあるすべてのアプリケーションを一覧表示します。

   ```
   active_apps_json=$(aws sagemaker list-apps --region=$SM_REGION --domain-id=$TEST_DOMAIN)
   echo $active_apps_json
   ```

1. 実行中のアプリケーションの JSON リストを解析して削除します。ユーザーがアクセス許可なしでアプリケーションの作成を試みている場合は、次のスクリプトでキャプチャされないスペースが見つかる可能性があります。これらのスペースは手動で削除する必要があります。

   ```
   echo "$active_apps_json" | jq -c '.Apps[]' | while read -r app;
   do
       if echo "$app" | jq -e '. | has("SpaceName")' > /dev/null;
       then
           app_type=$(echo "$app" | jq -r '.AppType')
           app_name=$(echo "$app" | jq -r '.AppName')
           domain_id=$(echo "$app" | jq -r '.DomainId')
           space_name=$(echo "$app" | jq -r '.SpaceName')
   
           echo "Deleting App - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || SpaceName: $space_name"
           aws sagemaker delete-app --region=$SM_REGION --domain-id=$domain_id \
           --app-type $app_type --app-name $app_name --space-name $space_name
   
           echo "Deleting Space - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || SpaceName: $space_name"
           aws sagemaker delete-space --region=$SM_REGION --domain-id=$domain_id \
           --space-name $space_name
       else
   
           app_type=$(echo "$app" | jq -r '.AppType')
           app_name=$(echo "$app" | jq -r '.AppName')
           domain_id=$(echo "$app" | jq -r '.DomainId')
           user_profile_name=$(echo "$app" | jq -r '.UserProfileName')
   
           echo "Deleting Studio Classic - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || UserProfileName: $user_profile_name"
           aws sagemaker delete-app --region=$SM_REGION --domain-id=$domain_id \
           --app-type $app_type --app-name $app_name --user-profile-name $user_profile_name
   
       fi
   
   done
   ```

1. テストユーザープロファイルを削除します。

   ```
   aws sagemaker delete-user-profile \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN \
   --user-profile-name "test-network-user"
   ```

1. テスト用のドメインを削除します。

   ```
   aws sagemaker delete-domain \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN
   ```

テスト用のドメインの設定を使用して Studio の機能をテストした後、既存のドメインを移行します。Studio がドメインのデフォルトのエクスペリエンスである場合、Studio はドメイン内のすべてのユーザーのデフォルトのエクスペリエンスになります。ただし、ユーザー設定がドメイン設定よりも優先されます。したがって、ユーザー設定でデフォルトのエクスペリエンスが Studio Classic に設定されている場合、そのユーザーは Studio Classic をデフォルトのエクスペリエンスとして使用します。

既存のドメインは、SageMaker AI コンソール、、 AWS CLIまたは から更新することで移行できます AWS CloudFormation。次のいずれかのタブを選択して、手順を表示してください。

### SageMaker AI コンソールを使用して、Studio を既存のドメインのデフォルトエクスペリエンスとして設定する
<a name="studio-updated-migrate-set-studio-updated-console"></a>

SageMaker AI コンソールを使用して、Studio を既存のドメインのデフォルトエクスペリエンスとして設定できます。

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. 左側のナビゲーションペインから **[管理設定]** を展開し、**[ドメイン]** を選択します。

1. Studio をデフォルトのエクスペリエンスに設定する既存のドメインを選択します。

1. **[ドメインの詳細]** ページで、**[新しい Studio を有効にする]** を展開します。

1. (オプション) **[詳細の表示]** を選択すると、Studio をデフォルトのエクスペリエンスとして設定する手順の詳細を表示できます。そのページに以下が表示されます。
   + **[SageMaker Studio の概要]** セクションに、Studio のウェブベースのインターフェイスに表示される、または使用できるアプリケーションが表示されます。
   + **[有効化プロセス]** セクションに、Studio を有効にするワークフロータスクの説明が表示されます。
**注記**  
データは手動で移行する必要があります。データの移行手順については、「[(オプション) Studio Classic から Studio にデータを移行する](studio-updated-migrate-data.md)」を参照してください。
   + **[Studio Classic エクスペリエンスに戻す]** セクションに、Studio をデフォルトのエクスペリエンスに設定した後で Studio Classic に戻す方法が表示されます。

1. Studio をデフォルトのエクスペリエンスに設定するプロセスを開始するには、**[新しい Studio を有効にする]** を選択します。

1. **[ロールを指定して設定する]**セクションに、Studio に自動的に含まれるデフォルトのアプリケーションが表示されます。

   ユーザーがこれらのアプリケーションを実行できないようにするには、アクセスを拒否するための IAM ポリシーが含まれる AWS Identity and Access Management (IAM) ロールを選択します。ポリシーを作成してアクセスを制限する方法については、「[手順 1: アプリケーションを作成するためのアクセス許可を更新する](#studio-updated-migrate-limit-apps)」を参照してください。

1. **[デフォルトの S3 バケットを選択して CORS ポリシーをアタッチする]** セクションで、Studio に Amazon S3 バケットへのアクセスを許可できます。このデフォルトの Amazon S3 バケットは、Studio Classic のデフォルトの Amazon S3 バケットです。この手順では、次の作業を行います:
   + ドメインのデフォルトの Amazon S3 バケットを確認して、CORS ポリシーをアタッチします。ドメインにデフォルトの Amazon S3 バケットがない場合は、SageMaker AI が Amazon S3 バケットを作成し、適切な CORS ポリシーをアタッチします。
   + Amazon S3 バケットを 10 件追加して、CORS ポリシーをアタッチできます。

     10 よりも多くのバケットを含める場合は、手動で追加します。Amazon S3 バケットに CORS ポリシーを手動でアタッチする手順については、「[(オプション) CORS ポリシーを更新して Amazon S3 バケットにアクセスする](#studio-updated-migrate-cors)」を参照してください。

   続いて、**選択した Amazon S3 バケットの既存の CORS ポリシーを上書きすることに同意しますか？** の隣に表示されたチェックボックスをオンにします。

1. **[データの移行]** セクションには、Studio Classic と Studio のさまざまなデータストレージボリュームに関する情報が表示されています。ここまでの手順でデータが自動的に移行されるわけではありません。データ、ライフサイクル設定、JupyterLab 拡張機能の移行手順については、「[(オプション) Studio Classic から Studio にデータを移行する](studio-updated-migrate-data.md)」を参照してください。

1. このページの作業を完了し、設定を確認したら、**[新しい Studio を有効にする]** を選択します。

### を使用して Studio を既存のドメインのデフォルトエクスペリエンスとして設定する AWS CLI
<a name="studio-updated-migrate-set-studio-updated-cli"></a>

 AWS CLIを使用して Studio を既存のドメインのデフォルトエクスペリエンスとして設定するには、[update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) を呼び出します。`default-user-settings` パラメータで `StudioWebPortal` の値に `ENABLED` を設定し、`DefaultLandingUri` の値に `studio::` を設定する必要があります。 

`StudioWebPortal` には、Studio エクスペリエンスがデフォルトのエクスペリエンスかどうかを指定し、`DefaultLandingUri` にはドメインへのアクセス時にユーザーに表示されるデフォルトのエクスペリエンスを指定します。下の例では、これらの値をドメインレベルで (`default-user-settings` に) 設定し、Studio をドメイン内のユーザーのデフォルトのエクスペリエンスに指定しています。

仮に、ドメイン内でユーザーの `StudioWebPortal` が `DISABLED` に、`DefaultLandingUri` が `app:JupyterServer:` に、ユーザーレベルで (`UserSettings` で) 設定されていれば、それがドメイン設定よりも優先されます。つまり、ドメイン設定に関係なく、ユーザーのデフォルトのエクスペリエンスが Studio Classic に設定されます。

次のコード例は、Studio をドメイン内のユーザーのデフォルトのエクスペリエンスに設定する方法を示しています。

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region AWS リージョン \
--default-user-settings '
{
    "StudioWebPortal": "ENABLED",
    "DefaultLandingUri": "studio::"
}
'
```
+ `existing-domain-id` を取得するには、次の手順を実行します。

**`existing-domain-id` を取得するには**

  1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

  1. 左側のナビゲーションペインから **[管理設定‭]** を展開し、**[ドメイン]** を選択します。

  1. 既存のドメインを選択します。

  1. **[ドメインの詳細]** ページで、**[ドメインの設定]** タブを選択します。

  1. **ドメイン ID** をコピーします。
+ ドメイン AWS リージョン に正しい を使用していることを確認するには、以下の手順に従います。

**`AWS リージョン` を取得するには**

  1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

  1. 左側のナビゲーションペインから **[管理設定‭]** を展開し、**[ドメイン]** を選択します。

  1. 既存のドメインを選択します。

  1. **[ドメインの詳細]** ページで、これが既存のドメインであることを確認します。

  1. SageMaker AI コンソールの右上から AWS リージョン ドロップダウンリストを展開し、 AWS リージョン 名前の右側にある対応する AWS リージョン ID を使用します。例えば、`us-west-1`。

デフォルトのエクスペリエンスを Studio に移行した後、Amazon S3 バケットへのアクセスを Studio に許可します。例えば、Studio Classic のデフォルトの Amazon S3 バケットと、追加の Amazon S3 バケットへのアクセスを許可します。それには、[Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) 設定を Amazon S3 バケットに手動でアタッチする必要があります。CORS ポリシーを Amazon S3 バケットに手動でアタッチする方法については、「[(オプション) CORS ポリシーを更新して Amazon S3 バケットにアクセスする](#studio-updated-migrate-cors)」を参照してください。

同様に、 [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html) 呼び出し AWS CLI を使用して からドメインを作成するときに、Studio をデフォルトのエクスペリエンスとして設定できます。 

### を使用して Studio を既存のドメインのデフォルトエクスペリエンスとして設定する AWS CloudFormation
<a name="studio-updated-migrate-set-studio-updated-cloud-formation"></a>

 AWS CloudFormationを使用してドメインを作成するときに、デフォルトのエクスペリエンスを設定できます。 CloudFormation 移行テンプレートについては、[SageMaker Studio 管理者 IaC テンプレート](https://github.com/aws-samples/sagemaker-studio-admin-iac-templates/tree/main?tab=readme-ov-file#phase-1-migration)」を参照してください。を使用してドメインを作成する方法の詳細については CloudFormation、「 [を使用して Amazon SageMaker AI ドメインを作成する CloudFormation](https://github.com/aws-samples/cloudformation-studio-domain?tab=readme-ov-file#creating-sagemaker-studio-domains-using-cloudformation)」を参照してください。

でサポートされているドメインリソースの詳細については AWS CloudFormation、[AWS「::SageMaker AI::Domain](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html#cfn-sagemaker-domain-defaultusersettings)」を参照してください。

デフォルトのエクスペリエンスを Studio に移行した後、Amazon S3 バケットへのアクセスを Studio に許可します。例えば、Studio Classic のデフォルトの Amazon S3 バケットと、追加の Amazon S3 バケットへのアクセスを許可します。それには、[Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) 設定を Amazon S3 バケットに手動でアタッチする必要があります。CORS ポリシーを Amazon S3 バケットに手動でアタッチする方法については、「[(オプション) CORS ポリシーを更新して Amazon S3 バケットにアクセスする](#studio-updated-migrate-cors)」を参照してください。

### (オプション) CORS ポリシーを更新して Amazon S3 バケットにアクセスする
<a name="studio-updated-migrate-cors"></a>

Studio Classic では、ファイルを Amazon Simple Storage Service (Amazon S3) バケットに作成、一覧表示、アップロードできます。Studio でも同じ操作を可能にするために、管理者は Amazon S3 バケットに [Cross-Origin Resource Sharing](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) 設定をアタッチする必要があります。これが必要になるのは、Studio がインターネットブラウザから Amazon S3 を呼び出すためです。ブラウザは自動的に CORS を呼び出します。そのため、CORS ポリシーが Amazon S3 バケットにアタッチされていなければ、Amazon S3 バケットへのリクエストはすべて失敗します。

以下の場合に、CORS ポリシーを Amazon S3 バケットに手動でアタッチすることが必要になります。
+ 既存のドメインのデフォルトエクスペリエンスを Studio に移行するときに、適切な CORS ポリシーがアタッチされていない Amazon S3 デフォルトバケットが存在する場合。
+ を使用して既存のドメインのデフォルトエクスペリエンスを Studio AWS CLI に移行する場合。を使用して移行 AWS CLI する方法については、「」を参照してください[を使用して Studio を既存のドメインのデフォルトエクスペリエンスとして設定する AWS CLI](#studio-updated-migrate-set-studio-updated-cli)。
+ CORS ポリシーを追加の Amazon S3 バケットにアタッチする場合。

**注記**  
これから SageMaker AI コンソールを使用して Studio をデフォルトのエクスペリエンスに設定するのであれば、移行中に Amazon S3 バケットにアタッチする CORS ポリシーによって既存の CORS ポリシーが上書きされるため、以下の手動による手順を行う必要はありません。  
SageMaker AI コンソールを使用して既に移行を済ませており、追加の Amazon S3 バケットに CORS ポリシーをアタッチする場合は、次の手動での手順に進んでください。

次の手順は、CORS 設定を Amazon S3 バケットに手動で追加する方法を示しています。

**CORS 設定を Amazon S3 バケットに追加するには**

1. 既存のドメイン AWS リージョン と同じ に次の名前の Amazon S3 バケットがあることを確認します。手順については、[「Viewing the properties for an Amazon S3 bucket」](https://docs.aws.amazon.com//AmazonS3/latest/userguide/view-bucket-properties.html)を参照してください。

   ```
   sagemaker-region-account-id
   ```

1. CORS 設定を次の内容で、デフォルトの Amazon S3 バケットに追加します。手順については、[「Configuring cross-origin resource sharing (CORS)」](https://docs.aws.amazon.com//AmazonS3/latest/userguide/enabling-cors-examples.html)を参照してください。

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST",
               "PUT",
               "GET",
               "HEAD",
               "DELETE"
           ],
           "AllowedOrigins": [
               "https://*.sagemaker.aws"
           ],
           "ExposeHeaders": [
               "ETag",
               "x-amz-delete-marker",
               "x-amz-id-2",
               "x-amz-request-id",
               "x-amz-server-side-encryption",
               "x-amz-version-id"
           ]
       }
   ]
   ```

### (オプション) Studio Classic の Data Wrangler から SageMaker Canvas に移行する
<a name="studio-updated-migrate-dw"></a>

Amazon SageMaker Data Wrangler は、Studio Classic エクスペリエンスの独自の機能として存在します。Studio をデフォルトのエクスペリエンスとして設定すれば、[Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) アプリケーションを使用することで Data Wrangler 機能にアクセスできます。SageMaker Canvas は、コードを記述することなく機械学習モデルをトレーニングおよびデプロイできるアプリケーションであり、Data Wrangler を活用したデータ準備機能が Canvas に用意されています。

新しい Studio エクスペリエンスは、Classic の Data Wrangler UI をサポートしないため、Data Wrangler を引き続き使用する場合は、Canvas アプリケーションを作成する必要があります。ただし、Canvas アプリケーションを作成して使用するために必要なアクセス許可が必要です。

次の手順を実行して、必要なアクセス許可ポリシーを SageMaker AI ドメインの またはユーザーの IAM AWS ロールにアタッチします。

**Canvas 内の Data Wrangler 機能へのアクセス許可を付与するには**

1.  AWS 管理ポリシー [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonSageMakerFullAccess) をユーザーの IAM ロールにアタッチします。IAM ポリシーをロールにアタッチする手順については、*AWS IAM ユーザーガイド*の[「Adding IAM identity permissions (console)」](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)を参照してください。

   このアクセス許可ポリシーの許容度が高すぎる場合は、少なくとも次のアクセス許可を含むポリシーを作成してください。

   ```
   {
       "Sid": "AllowStudioActions",
       "Effect": "Allow",
       "Action": [
           "sagemaker:CreatePresignedDomainUrl",
           "sagemaker:DescribeDomain",
           "sagemaker:ListDomains",
           "sagemaker:DescribeUserProfile",
           "sagemaker:ListUserProfiles",
           "sagemaker:DescribeSpace",
           "sagemaker:ListSpaces",
           "sagemaker:DescribeApp",
           "sagemaker:ListApps"
       ],
       "Resource": "*"
   },
   {
       "Sid": "AllowAppActionsForUserProfile",
       "Effect": "Allow",
       "Action": [
           "sagemaker:CreateApp",
           "sagemaker:DeleteApp"
       ],
       "Resource": "arn:aws:sagemaker:region:account-id:app/domain-id/user-profile-name/canvas/*",
       "Condition": {
           "Null": {
               "sagemaker:OwnerUserProfileArn": "true"
           }
       }
   }
   ```

1.  AWS 管理ポリシー [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html) をユーザーの IAM ロールにアタッチします。

必要なアクセス許可をアタッチした後、Canvas アプリケーションを作成してログインします。詳細については、「[Amazon SageMaker Canvas の開始方法](canvas-getting-started.md)」を参照してください。

Canvas にログインし、Data Wrangler に直接アクセスして、データフローの作成を開始できます。詳細については、Canvas ドキュメントの「[データ準備](canvas-data-prep.md)」を参照してください。

### (オプション) Studio Classic の Autopilot から SageMaker Canvas に移行する
<a name="studio-updated-migrate-autopilot"></a>

[Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/AWSIronmanApiDoc/integ/npepin-studio-migration-autopilot-to-canvas/latest/dg/autopilot-automate-model-development.html) は、Studio Classic エクスペリエンスの独自の機能として存在します。更新されたStudio エクスペリエンスに移行して使用する場合、[Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) アプリケーションを使用すると、ユーザーインターフェイス (UI) を介して同じ自動機械学習 (AutoML) 機能を引き続き使用できます。SageMaker Canvas は、コードを記述することなく機械学習モデルをトレーニングおよびデプロイできるアプリケーションであり、AutoML タスクを実行できる UI が Canvas に用意されています。

新しい Studio エクスペリエンスは、Classic の Autopilot UI をサポートしていません。Autopilot の AutoML 機能を UI 経由で引き続き使用する場合は、Canvas アプリケーションを作成する必要があります。

ただし、Canvas アプリケーションを作成して使用するために必要なアクセス許可が必要です。
+ Studio から SageMaker Canvas にアクセスする場合は、それらのアクセス許可を SageMaker AI ドメインまたはユーザープロファイルの実行ロールに追加します。
+ コンソールから SageMaker Canvas にアクセスする場合は、それらのアクセス許可をユーザーの IAM AWS ロールに追加します。
+ [署名済み URL](https://docs.aws.amazon.com/sagemaker/latest/dg/setting-up-canvas-sso.html#canvas-optional-access) 経由で SageMaker Canvas にアクセスする場合は、それらのアクセス許可を Okta SSO のアクセスに使用する IAM ロールに追加します。

Canvas で AutoML 機能を有効にするには、次のポリシーを実行ロールまたは IAM ユーザーロールに追加します。
+ AWS マネージドポリシー: [`CanvasFullAccess`。](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)
+ インラインポリシー:

  ```
  {
      "Sid": "AllowAppActionsForUserProfile",
      "Effect": "Allow",
      "Action": [
          "sagemaker:CreateApp",
          "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:region:account-id:app/domain-id/user-profile-name/canvas/*",
      "Condition": {
          "Null": {
              "sagemaker:OwnerUserProfileArn": "true"
          }
      }
  }
  ```

**実行ロールに IAM ポリシーを添付するには**

1. 

**SageMaker AI ユーザープロファイルにアタッチされている実行ロールを探します**

   1. SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) で **[ドメイン]** に移動し、SageMaker AI ドメインを選択します。

   1. 実行ロール ARN は、ユーザープロファイルの**ユーザー詳細**ページの *[実行ロール]* の下に表示されます。ARN の実行ロールの名前をメモしておきます。

   1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) で [**ロール**] を選択します。

   1. 検索フィールドで、名前を指定してロールを検索します。

   1. ロールを選択します。

1. ロールにポリシーを追加します

   1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) で [**ロール**] を選択します。

   1. 検索フィールドで、名前を指定してロールを検索します。

   1. ロールを選択します。

   1. **[アクセス許可]** タブで、ドロップダウンメニューから **[アクセス許可の追加]** に移動します。

   1. 
      + マネージドポリシーの場合: **[ポリシーのアタッチ]** を選択し、アタッチするポリシーの名前を検索します。

        ポリシーを選択し、**[アクセス許可の追加]** を選択します。
      + インラインポリシーの場合: **[インラインポリシーの作成]** を選択し、JSON タブでポリシーを貼り付けて、次へを選択し、ポリシーに名前を付けて、**[作成]** を選択します。

IAM ポリシーをロールにアタッチする手順については、*AWS IAM ユーザーガイド*の[「Adding IAM identity permissions (console)」](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)を参照してください。

必要なアクセス許可をアタッチした後、Canvas アプリケーションを作成してログインします。詳細については、「[Amazon SageMaker Canvas の開始方法](canvas-getting-started.md)」を参照してください。

## Studio Classic をデフォルトのエクスペリエンスとして設定する
<a name="studio-updated-migrate-revert"></a>

管理者は、既存のドメインのデフォルトエクスペリエンスを Studio Classic に戻せます。これは、 AWS CLIを介して実行できます。

**注記**  
Studio Classic をドメインのデフォルトのエクスペリエンスとして設定すると、Studio Classic がドメイン内のすべてのユーザーのデフォルトのエクスペリエンスになります。ただし、ユーザーレベルの設定は、ドメインレベルの設定より優先されます。したがって、Studio がユーザーのデフォルトエクスペリエンスに設定されている場合、そのユーザーのデフォルトエクスペリエンスは Studio になります。

を使用して、既存のドメインのデフォルトエクスペリエンスとして Studio Classic に戻すには AWS CLI、 [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) 呼び出しを使用します。`default-user-settings` フィールドの一部として、以下を設定する必要があります。
+ `StudioWebPortal` 値を `DISABLED` に設定します。
+ `DefaultLandingUri` 値を `app:JupyterServer:` に設定します。

`StudioWebPortal` には、Studio エクスペリエンスがデフォルトのエクスペリエンスかどうかを指定し、`DefaultLandingUri` にはドメインへのアクセス時にユーザーに表示されるデフォルトのエクスペリエンスを指定します。下の例では、これらの値をドメインレベルで (`default-user-settings` に) 設定し、Studio Classic をドメイン内のユーザーのデフォルトのエクスペリエンスに指定しています。

仮に、ドメイン内でユーザーの `StudioWebPortal` が `ENABLED` に、`DefaultLandingUri` が `studio::` に、ユーザーレベルで (`UserSettings` で) 設定されていれば、それがドメインレベルの設定よりも優先されます。つまり、ドメインレベルの設定に関係なく、ユーザーのデフォルトのエクスペリエンスが Studio に設定されます。

次のコード例は、Studio Classic をドメイン内のユーザーのデフォルトのエクスペリエンスに設定する方法を示しています。

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region AWS リージョン \
--default-user-settings '
{
    "StudioWebPortal": "DISABLED",
    "DefaultLandingUri": "app:JupyterServer:"
}
'
```

`existing-domain-id` を取得するには、以下の手順を実行します。

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. 左側のナビゲーションペインから **[管理設定‭]** を展開し、**[ドメイン]** を選択します。

1. 既存のドメインを選択します。

1. **[ドメインの詳細]** ページで、**[ドメインの設定]** タブを選択します。

1. **ドメイン ID** をコピーします。

を取得するには`AWS リージョン`、以下の手順に従って、ドメイン AWS リージョン に正しい を使用していることを確認します。

1. Amazon SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開きます。

1. 左側のナビゲーションペインから **[管理設定‭]** を展開し、**[ドメイン]** を選択します。

1. 既存のドメインを選択します。

1. **[ドメインの詳細]** ページで、これが既存のドメインであることを確認します。

1. SageMaker AI コンソールの右上から AWS リージョン ドロップダウンリストを展開し、名前の AWS リージョン 右側にある対応する AWS リージョン ID を使用します。例えば、`us-west-1`。