

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為您的使用者設定 SageMaker Canvas
<a name="setting-up-canvas-sso"></a>

若要設定 Amazon SageMaker Canvas ，請執行下列動作：
+ 建立一個 Amazon SageMaker AI 網域。
+ 建立網域的使用者設定檔
+ 為您的使用者設定 Okta 單一登入 (Okta SSO)。
+ 啟用模型的連結共用。

使用 Okta 單一登入 (Okta SSO) 授予您的使用者存取 Amazon SageMaker Canvas 。SageMaker Canvas 支援 SAML 2.0 SSO 方法。以下各節將引導您完成設定 Okta SSO 的程序。

若要設定網域，請參閱[使用 Amazon SageMaker AI 的自訂設定](onboard-custom.md)並遵循使用 IAM 驗證設定您網域的指示。您可使用下列資訊來協助您完成本節中的程序：
+ 您可以忽略有關建立專案的步驟。
+ 您不需要提供其它 Amazon S3 儲存貯體的存取。您的使用者可以使用我們在建立角色時提供的預設儲存貯體。
+ 若要授予使用者與資料科學家共用筆記本的存取權，請開啟**筆記本共用組態**。
+ 使用 Amazon SageMaker Studio Classic 版本 3.19.0 或更新的版本。如需更新 Amazon SageMaker Studio Classic 的相關資訊，請參閱[關閉並更新 Amazon SageMaker Studio Classic](studio-tasks-update-studio.md)。

使用下列程序來設定 Okta。對於下列所有程序，您可以為 `{{IAM-role}}` 指定相同的 IAM 角色。

## 將 SageMaker Canvas 應用程式新增至 Okta
<a name="canvas-set-up-okta"></a>

設定 Okta 的登入方法。

1. 登入您的 Okta 管理員儀表板。

1. 選擇**新增應用程式**。搜尋**AWS 帳戶聯合**。

1. 選擇**新增**。

1. 選用：將名稱變更為 **Amazon SageMaker Canvas**。

1. 選擇**下一步**。

1. 針對**登入方法**，選擇 **SAML 2.0**。

1. 選擇**身分提供者中繼資料**以開啟中繼資料 XML 檔案。在本機儲存檔案。

1. 選擇**完成**。

## 在 IAM 中設定 ID 聯合身分
<a name="set-up-id-federation-IAM"></a>

AWS Identity and Access Management (IAM) 是您用來存取您 AWS 帳戶的 AWS 服務。您可以透過 IAM AWS 帳戶存取 。

1. 登入 AWS 主控台。

1. 選擇 **AWS Identity and Access Management (IAM)**。

1. 選擇**身分提供者**。

1. 選擇**建立提供者**。

1. 對於**設定提供者**，指定下列項目：
   + **提供者類型** — 從下拉式清單中選擇 **SAML**。
   + **提供者名稱** — 指定 **Okta**。
   + **中繼資料文件** — 從步驟 7 上傳您在本機儲存的 XML 文件[將 SageMaker Canvas 應用程式新增至 Okta](#canvas-set-up-okta)。

1. 在**身分提供者**下找到您的身分。複製其**提供者 ARN** 值。

1. 對於**角色**，請選擇您用於 Okta SSO 存取的 IAM 角色。

1. 在 IAM 角色**信任關係**標籤下，選擇**編輯信任關係**。

1. 指定您複製的**提供者 ARN** 值，以修改 IAM 信任關係政策，並新增下列政策：

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

****  

   ```
     {
     "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:{{saml-provider}}/Okta"
           },
           "Action": [
             "sts:AssumeRoleWithSAML",
             "sts:TagSession"
           ],
           "Condition": {
             "StringEquals": {
               "SAML:aud": "https://signin.aws.amazon.com/saml"
             }
           }
         },
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:{{saml-provider}}/Okta"
           },
           "Action": [
             "sts:SetSourceIdentity"
           ]
         }
       ]
     }
   ```

------

1. 要獲得**許可**，請新增下列政策：

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AmazonSageMakerPresignedUrlPolicy",
              "Effect": "Allow",
              "Action": [
                   "sagemaker:CreatePresignedDomainUrl"
              ],
              "Resource": "*"
         }
     ]
   }
   ```

------

## 在 Okta 中設定 SageMaker Canvas
<a name="canvas-configure-okta"></a>

使用下列程序在 Okta 中設定 Amazon SageMaker Canvas。

若要將 Amazon SageMaker Canvas 設定為使用 Okta，請遵循本節中的步驟。您必須為每個 **SageMakerStudioProfileName** 欄位指定唯一的使用者名稱。例如，您可以使用 `user.login` 作為值。如果使用者名稱與 SageMaker Canvas 設定檔名稱不同，請選擇不同的唯一識別屬性。例如，您可以使用員工的 ID 號碼作為設定檔名稱。

有關值的範例，您可以為**屬性**，請參閱過程後面的代碼。

1. 在**目錄**下選擇**群組**。

1. 新增下列模式的群組：`sagemaker#canvas#{{IAM-role}}#{{AWS-account-id}}`。

1. 在 Okta 中，開啟 **AWS 帳戶聯合**應用程式整合組態。

1. 為 AWS 帳戶聯合應用程式選取**登入**。

1. 選擇**編輯**並指定下列項目：
   + SAML 2.0
   + **預設轉送狀態** – https://{{Region}}.console.aws.amazon.com/sagemaker/home?region={{Region}}\#/studio/canvas/open/{{StudioId}}。您可以在主控台中找到 Studio Classic ID：[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. 選擇**屬性**。

1. 在 **SageMakerStudioProfileName** 欄位中，為每個使用者名稱指定唯一值。使用者名稱必須與您在 AWS 主控台中建立的使用者名稱相符。

   ```
   Attribute 1:
   Name: https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerStudioUserProfileName 
   Value: ${user.login}
   
   Attribute 2:
   Name: https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
   Value: {"SageMakerStudioUserProfileName"}
   ```

1. 選取**環境類型**。選擇**一般 AWS**。
   + 如果未列出您的環境類型，您可以在 ACS URL 欄位中設定 **ACS URL**。如果列出您的環境類型，您便無需輸入 ACS URL

1. 針對**身分提供者 ARN**，指定您在前述程序的步驟 6 中使用的 ARN。

1. 指定**工作階段持續時間**。

1. 選擇**加入所有角色**。

1. 指定下列欄位以開啟**使用群組對應**：
   + **應用程式篩選器** — `okta`
   + **群組篩選器** — `^aws\#\S+\#(?{{IAM-role}}[\w\-]+)\#(?{{accountid}}\d+)$`
   + **角色值模式** — `arn:aws:iam::${{accountid}}:saml-provider/Okta,arn:aws:iam::${{accountid}}:role/{{IAM-role}}`

1. 選擇**儲存/下一步**。

1. 在**指派**底下，將應用程式指派給您建立的群組。

## 在 IAM 中新增存取控制的選擇性政策
<a name="canvas-optional-access"></a>

在 IAM 中，您可以將下列政策套用至建立使用者設定檔的管理員使用者。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateSageMakerStudioUserProfilePolicy",
            "Effect": "Allow",
            "Action": "sagemaker:CreateUserProfile",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "studiouserid"
                    ]
                }
            }
        }
    ]
}
```

------

如果您選擇將上述政策新增至管理員使用者，則必須使用透過[在 IAM 中設定 ID 聯合身分](#set-up-id-federation-IAM)取得的下列許可。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "AmazonSageMakerPresignedUrlPolicy",
           "Effect": "Allow",
           "Action": [
               "sagemaker:CreatePresignedDomainUrl"
           ],
           "Resource": "*",
           "Condition": {
                  "StringEquals": {
                      "sagemaker:ResourceTag/studiouserid": "${aws:PrincipalTag/SageMakerStudioUserProfileName}"
                 }
            }
      }
  ]
}
```

------