

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon SageMaker Canvas 设置和权限管理（适用于 IT 管理员）
<a name="canvas-setting-up"></a>

以下页面介绍了 IT 管理员如何配置 Amazon SageMaker Canvas 并向其组织内的用户授予权限。您将学习如何设置存储配置、管理数据加密 VPCs、控制对特定功能（例如生成式 AI 基础模型）的访问权限、如何与 Amazon Redshift 等其他 AWS 服务集成等。通过执行这些步骤，您可以根据组织的特定要求为用户量身定制 C SageMaker anvas。

您也可以使用为用户设置 SageMaker Canvas AWS CloudFormation。有关更多信息，请参阅AWS《*AWS CloudFormation 用户指南》*中的[:: SageMaker AI:: App](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html)。

**Topics**
+ [授予用户上传本地文件的权限](canvas-set-up-local-upload.md)
+ [为用户设置 SageMaker 画布](setting-up-canvas-sso.md)
+ [配置 Amazon S3 存储](canvas-storage-configuration.md)
+ [授予跨账户 Amazon S3 存储的权限](canvas-permissions-cross-account.md)
+ [向用户授予在整个 ML 生命周期中使用大数据的权限](canvas-large-data-permissions.md)
+ [使用以下方式加密您的 SageMaker 画布数据 AWS KMS](canvas-kms.md)
+ [将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中](canvas-spaces-setup.md)
+ [授予用户构建自定义图像和文本预测模型的权限](canvas-set-up-cv-nlp.md)
+ [授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限](canvas-fine-tuning-permissions.md)
+ [为用户更新 SageMaker 画布](canvas-update.md)
+ [请求提高限额](canvas-requesting-quota-increases.md)
+ [授予用户导入 Amazon Redshift 数据的权限](canvas-redshift-permissions.md)
+ [向您的用户授予向 Quick 发送预测的权限](canvas-quicksight-permissions.md)
+ [应用程序管理](canvas-manage-apps.md)
+ [在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas](canvas-vpc.md)
+ [使用设置与数据源的连接 OAuth](canvas-setting-up-oauth.md)

# 授予用户上传本地文件的权限
<a name="canvas-set-up-local-upload"></a>

如果您的用户要将文件从本地计算机上传到 C SageMaker anvas，则必须将 CORS（跨源资源共享）配置附加到他们正在使用的 Amazon S3 存储桶。设置或编辑 SageMaker AI 域或用户个人资料时，您可以指定自定义 Amazon S3 位置或默认位置，默认位置是 SageMaker AI 创建的 Amazon S3 存储桶，其名称使用以下模式：`s3://sagemaker-{Region}-{your-account-id}`。 SageMaker 每当用户上传文件时，Canvas 都会将他们的数据添加到存储桶中。

要授予用户将本地文件上传到存储桶的权限，您可以使用以下任一过程将 CORS 配置附加到该存储桶。在编辑域的设置时，您可以使用第一种方法，即选择允许 SageMaker AI 为您将 CORS 配置附加到存储桶。您也可以使用第一种方法编辑域内的用户配置文件。第二种方法是手动方法，您可以自己将 CORS 配置附加到存储桶。

## SageMaker AI 域名设置方法
<a name="canvas-set-up-local-upload-domain"></a>

要授予用户上传本地文件的权限，您可以编辑域设置中的 Canvas 应用程序配置。这会将跨源资源共享 (CORS) 配置附加到 Canvas 存储配置的 Amazon S3 存储桶，并向该域中的所有用户授予将 SageMaker 本地文件上传到 Canvas 的权限。默认情况下，设置新域时会打开权限选项，但您也可以根据需要打开或关闭此选项。

**注意**  
如果您在存储配置 Amazon S3 存储桶上已有 CORS 配置，打开本地文件上传选项后，新配置会覆盖现有配置。

以下过程说明如何通过在 SageMaker AI 控制台中编辑域设置来启用此选项。

1. 前往 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择 **域**。

1. 从域列表中选择您的域。

1. 在域详细信息页面上，选择**应用程序配置**选项卡。

1. 前往 **Canvas** 部分并选择**编辑**。

1. 打开**启用本地文件上传**开关。这将附加 CORS 配置并授予本地文件上传权限。

1. 选择**提交**。

指定域中的用户现在应该拥有本地文件上传权限。

您也可以按照前面的步骤，进入用户配置文件设置而不是整个域设置，为域中的特定用户配置文件授予权限。

## Amazon S3 存储桶方法
<a name="canvas-set-up-local-upload-s3"></a>

如果您想手动将 CORS 配置附加到 SageMaker AI Amazon S3 存储桶，请使用以下步骤。

1. 登录到 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择存储桶。如果您的域使用由 SageMaker 人工智能创建的默认存储桶，则存储桶的名称将使用以下模式：`s3://sagemaker-{Region}-{your-account-id}`。

1. 选择**权限**。

1. 导航到**跨源资源共享 (CORS)**。

1. 选择**编辑**。

1. 添加以下 CORS 策略：

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST"
           ],
           "AllowedOrigins": [
               "*"
           ],
           "ExposeHeaders": []
       }
   ]
   ```

1. 选择**保存更改**。

在上述过程中，CORS 策略必须在 `AllowedMethods` 下列出 `"POST"`。

完成该过程之后，您应该具有：
+ 分配给每个用户的 IAM 角色。
+ 您的每个用户都有亚马逊 SageMaker Studio Classic 运行时权限。 SageMaker Canvas 使用 Studio Classic 来运行用户的命令。
+ 如果用户正在从本地计算机上传文件，则其 Amazon S3 存储桶会附加 CORS 策略。

如果在更新 CORS 策略后，用户仍然无法上传本地文件，则浏览器可能缓存了上次上传尝试的 CORS 设置。如果用户遇到问题，请指示用户清除浏览器缓存，然后重试。

# 为用户设置 SageMaker 画布
<a name="setting-up-canvas-sso"></a>

要设置 Amazon SageMaker Canvas，请执行以下操作：
+ 创建亚马逊 A SageMaker I 域名。
+ 为域创建用户配置文件
+ 为用户设置 Okta 单点登录 (Okta SSO)。
+ 激活模型的链接共享。

使用 Okta 单点登录 (Okta SSO) 授予您的用户访问亚马逊 Canvas 的权限。 SageMaker SageMaker Canvas 支持 SAML 2.0 单点登录方法。以下各节将指导您完成设置 Okta SSO 的过程。

要设置域，请参阅 [使用 Amazon A SageMaker I 的自定义设置](onboard-custom.md) 并按照说明使用 IAM 身份验证设置域。您可以使用以下信息来帮助您完成本节中的过程：
+ 您可以忽略创建项目的步骤。
+ 您无需提供对其他 Amazon S3 存储桶的访问权限。您的用户可以使用我们在创建角色时提供的默认存储桶。
+ 要授予用户与数据科学家共享笔记本的权限，请打开**笔记本共享配置**。
+ 使用 Amazon SageMaker Studio 经典版 3.19.0 或更高版本。有关更新 Amazon SageMaker Studio Classic 的信息，请参阅[关闭并更新 Amazon SageMaker Studio 经典版](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 服务。您可以 AWS 通过 IAM 账户获得访问权限。

1. 登录 AWS 控制台。

1. 选择 **AWS Identity and Access Management (IAM)**。

1. 选择**身份提供商**。

1. 选择**创建提供商**。

1. 在**配置提供商**中，指定以下内容：
   + **提供商类型** – 从下拉列表中选择 **SAML**。
   + **提供商名称** – 指定 **Okta**。
   + **元数据文档** – 上传在[将 SageMaker Canvas 应用程序添加到 Okta](#canvas-set-up-okta)的步骤 7 中保存在本地的 XML 文档。

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": "*"
         }
     ]
   }
   ```

------

## 在 Okt SageMaker a 中配置画布
<a name="canvas-configure-okta"></a>

使用以下步骤在 Okta 中配置 Amazon C SageMaker anvas。

要将 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* \$1/ 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}"
                 }
            }
      }
  ]
}
```

------

# 配置 Amazon S3 存储
<a name="canvas-storage-configuration"></a>

设置 SageMaker Canvas 应用程序时，模型项目、数据集和其他应用程序数据的默认存储位置是 Canvas 创建的 Amazon S3 存储桶。这个默认的 Amazon S3 存储桶遵循命名模式 `s3://sagemaker-{Region}-{your-account-id}`，并且与 Canvas 应用程序存在于同一个区域中。不过，您可以自定义存储位置，指定自己的 Amazon S3 存储桶来存储 Canvas 应用程序数据。出于以下任何原因，您可能希望使用自己的 Amazon S3 存储桶来存储应用程序数据：
+ 您的组织有 Amazon S3 存储桶的内部命名约定。
+ 您希望启用对模型构件或其他 Canvas 数据的跨账户存取。
+ 您希望遵守内部安全准则，例如限制用户使用特定的 Amazon S3 存储桶或模型构件。
+ 您希望独立于 AWS 控制台或 SageMaker Studio Classic，增强对 Canvas 生成的日志的可见性和访问权限。

通过指定您自己的 Amazon S3 存储桶，您可以加强对自己存储的控制并遵守组织的要求。

首先，您可以创建新的 SageMaker AI 域或用户配置文件，也可以更新现有的域或用户配置文件。请注意，用户配置文件设置优先于域级设置。例如，您可以使用域级别的默认存储桶配置，但也可以为单个用户指定自定义 Amazon S3 存储桶。为域或用户配置文件指定您自己的 Amazon S3 存储桶后，Canvas 会在输入的 Amazon S3 URI 下创建一个名为 `Canvas/<UserProfileName>` 的子文件夹，并将 Canvas 应用程序中生成的所有构件保存在该子文件夹下。

**重要**  
如果您更新了现有的域或用户配置文件，您将无法再访问以前位置的 Canvas 构件。您的文件仍位于原来的 Amazon S3 位置，但您无法再从 Canvas 中查看它们。新配置将在您下次登录应用程序时生效。

有关授予对 Amazon S3 存储桶的跨账户存取权限的更多信息，请参阅《Amazon S3 用户指南》**中的[授予跨账户对象权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example4.html#access-policies-walkthrough-example4-overview)。

以下几节将介绍如何为 Canvas 存储配置指定自定义 Amazon S3 存储桶。如果您要设置新的 SageMaker AI 域（或网域中的新用户），请使用[新的域设置方法](#canvas-storage-configuration-new-domain)或[新的用户配置文件设置方法](#canvas-storage-configuration-new-user)。如果您有一个现有的 Canvas 用户配置文件，并希望更新该配置文件的存储配置，请使用 [现有用户方法](#canvas-storage-configuration-existing-user)。

## 开始之前
<a name="canvas-storage-configuration-prereqs"></a>

如果您要指定来自其他 AWS 账户的 Amazon S3 URI，或者您使用的是使用加密的存储桶 AWS KMS，则必须先配置权限，然后才能继续操作。您必须授予 AWS IAM 权限，以确保 Canvas 可以从您的存储桶下载和上传对象。有关如何授予所需权限的详细信息，请参阅 [授予跨账户 Amazon S3 存储的权限](canvas-permissions-cross-account.md)。

此外，Canvas 存储位置中训练文件夹的最终 Amazon S3 URI 不得超过 128 个字符。最终的 Amazon S3 URI 由存储桶路径 `s3://<your-bucket-name>/<folder-name>/` 和 Canvas 添加到存储桶的路径组成：`Canvas/<user-profile-name>/Training`。例如，少于 128 个字符的可接受路径是 `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`。

## 新的域设置方法
<a name="canvas-storage-configuration-new-domain"></a>

如果要设置新的域和 Canvas 应用程序，请使用本节配置域级别的存储位置。此配置适用于您在域中创建的所有新用户，除非您为单个用户配置文件指定不同的存储位置。

为您的域进行**标准设置**时，请在**步骤 3：配置应用程序 - 可选**页面的 **Canvas** 部分按照以下步骤操作：

1. 对于 **Canvas 存储配置**，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的默认 SageMaker AI 存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成域的设置并选择**提交**。

现在，您的域已配置为使用您为 C SageMaker anvas 应用程序存储指定的 Amazon S3 位置。

## 新的用户配置文件设置方法
<a name="canvas-storage-configuration-new-user"></a>

如果要在域中设置新的用户配置文件，请使用本节配置用户的存储位置。此配置优先于域级配置。

在域中添加用户配置文件时，在**步骤 2：配置应用程序**中，在 **Canvas** 部分按照以下步骤操作：

1. 对于 **Canvas 存储配置**，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的 AI 创建的默认 SageMaker AI 创建的存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成用户配置文件的设置并选择**提交**。

现在，您的用户配置文件已配置为使用您为 C SageMaker anvas 应用程序存储指定的 Amazon S3 位置。

## 现有用户方法
<a name="canvas-storage-configuration-existing-user"></a>

如果您已有 Canvas 用户个人资料并且想要更新 Amazon S3 的存储位置，则可以编辑 SageMaker AI 域或用户配置文件设置。所做更改将在您下次登录 Canvas 应用程序时生效。

**注意**  
当您更改现有 Canvas 应用程序的存储位置时，您将无法从以前的存储位置访问 Canvas 构件。这些构件仍存储在原来的 Amazon S3 位置，但您无法再从 Canvas 中查看它们。

请记住，用户配置文件设置优先于常规域设置，因此您可以更新特定用户配置文件的 Amazon S3 存储位置，而无需更改所有用户的设置。您可以使用以下过程更新现有域或用户的存储配置。

------
#### [ Update an existing domain ]

使用以下过程更新域的存储配置。

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从域列表中选择您的域。

1. 在**域详细信息**页面上，选择**应用程序配置**选项卡。

1. 向下滚动到 **Canvas** 部分，然后选择 **编辑**。

1. 此时将打开**编辑 Canvas 设置**页面。在 **Canvas 存储配置**部分中，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的 AI 创建的默认 SageMaker AI 创建的存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成要对域进行的任何其他修改，然后选择**提交**以保存更改。

------
#### [ Update an existing user profile ]

使用以下过程更新用户配置文件的存储配置。

1. 打开 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 从**域**列表中选择您的域。

1. 从域中的用户列表中，选择要编辑其配置的用户。

1. 在**用户详细信息**页面上，选择**编辑**。

1. 在导航窗格中，选择 **Canvas 设置**。

1. 对于 **Canvas 存储配置**，执行以下操作：

   1. 如果您要将位置设置为遵循该模式的默认 SageMaker AI 存储桶，请选择 “**系统管理**” `s3://sagemaker-{Region}-{your-account-id}`。

   1. 选择**自定义 S3**，将您自己的 Amazon S3 存储桶指定为存储位置。然后，输入 Amazon S3 URI。

   1. （可选）对于**加密密钥**，指定用于加密存储在指定位置的 Canvas 构件的 KMS 密钥。

1. 完成要对用户配置文件进行的任何其他修改，然后选择**提交**以保存更改。

------

Canvas 用户配置文件的存储位置现在应该已经更新。您下次登录 Canvas 应用程序时，就会收到存储位置已更新的通知。您将无法访问之前在 Canvas 中创建的任何构件。您仍然可以访问 Amazon S3 中的文件，但不能再在 Canvas 中查看它们。

# 授予跨账户 Amazon S3 存储的权限
<a name="canvas-permissions-cross-account"></a>

在设置 SageMaker AI 域或用户配置文件以供用户访问 SageMaker Canvas 时，您需要为 Canvas 项目指定 Amazon S3 存储位置。这些构件包括输入数据集、模型构件、预测和其他应用程序数据的保存副本。您可以使用 SageMaker AI 创建的默认 Amazon S3 存储桶，也可以自定义存储位置并指定自己的存储桶来存储 Canvas 应用程序数据。

您可以在另一个 AWS 账户中指定 Amazon S3 存储桶来存储您的 Canvas 数据，但首先必须授予跨账户权限，这样 Canvas 才能访问该存储桶。

以下几节介绍如何向 Canvas 授予通过另一个账户中 Amazon S3 存储桶上传和下载对象的权限。当您的存储桶使用加密时，还有其他权限 AWS KMS。

## 要求
<a name="canvas-permissions-cross-account-prereqs"></a>

在开始之前，请查看以下要求：
+ 跨账户 Amazon S3 存储桶（以及任何关联的 AWS KMS 密钥）必须与 Canvas 用户域或用户个人资料位于同一个 AWS 区域。
+ Canvas 存储位置中训练文件夹的最终 Amazon S3 URI 不得超过 128 个字符。最终的 S3 URI 由存储桶路径 `s3://<your-bucket-name>/<folder-name>/` 和 Canvas 添加到存储桶的路径组成：`Canvas/<user-profile-name>/Training`。例如，少于 128 个字符的可接受路径是 `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`。

## 跨账户 Amazon S3 存储桶的权限
<a name="canvas-permissions-cross-account-s3"></a>

下一节将概述授予必要权限以便 Canvas 可以在其他账户中访问您的 Amazon S3 存储桶的基本步骤。有关更详细的说明，请参阅《Amazon S3 用户指南》**中的[示例 2：存储桶拥有者授予跨账户存储桶权限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html)。

1. 在账户 A 中创建 Amazon S3 存储桶 `bucketA`。

1. Canvas 用户存在于另一个名为账户 B 的账户中。在以下步骤中，我们将 Canvas 用户的 IAM 角色称为账户 B 中的 `roleB`。

   通过附加 IAM 策略，授予账户 B 中的 IAM 角色 `roleB` 通过账户 A 中的 `bucketA` 下载 (`GetObject`) 和上传 (`PutObject`) 对象的权限。

   要限制对特定存储桶文件夹的访问权限，请在资源元素中定义文件夹名称，例如 `arn:aws:s3:::<bucketA>/FolderName/*`。有关更多信息，请参阅[如何使用 IAM 策略授予特定用户对特定文件夹的访问权限？](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**注意**  
存储桶级别的操作（例如 `GetBucketCors` 和 `GetBucketLocation`）应添加在存储桶级别的资源上，而不是文件夹上。

   以下示例 IAM 策略授予 `roleB` 访问 `bucketA` 中对象所需的权限：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           }
       ]
   }
   ```

------

1. 在账户 A 中配置 `bucketA` 的存储桶策略，以向账户 B 中的 IAM 角色 `roleB` 授予权限。
**注意**  
管理员还必须关闭存储桶**权限**部分下的**阻止所有公开访问**。

   下面是 `bucketA` 的存储桶策略示例，用于向 `roleB` 授予必要的权限：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

配置上述权限后，账户 B 中的 Canvas 用户配置文件现在可以使用账户 A 中的 Amazon S3 存储桶作为 Canvas 构件的存储位置。

## 使用加密的跨账户 Amazon S3 存储桶的权限 AWS KMS
<a name="canvas-permissions-cross-account-s3-kms"></a>

以下过程向您展示如何授予必要的权限，以便 Canvas 可以在另一个使用加密的账户中访问您的 Amazon S3 存储桶 AWS KMS。相关步骤与上面的过程类似，但需要额外的权限。有关授予跨账户 KMS 密钥访问权限的更多信息，请参阅《AWS KMS 开发人员指南》**中的[允许其他账户中的用户使用 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)。

1. 在账户 A 中创建 Amazon S3 存储桶 `bucketA` 和 Amazon S3 KMS 密钥 `s3KmsInAccountA`。

1. Canvas 用户存在于另一个名为账户 B 的账户中。在以下步骤中，我们将 Canvas 用户的 IAM 角色称为账户 B 中的 `roleB`。

   授予账户 B 中的 IAM 角色 `roleB` 执行以下操作的权限：
   + 通过账户 A 中的 `bucketA` 下载 (`GetObject`) 和上传 (`PutObject`) 对象。
   + 访问账户 A `s3KmsInAccountA` 中的 AWS KMS 密钥

   以下 IAM 策略示例授予 `roleB` 访问 `bucketA` 中对象和使用 KMS 密钥 `s3KmsInAccountA` 所需的权限：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           },
           {
               "Action": [
                   "kms:DescribeKey",
                   "kms:CreateGrant",
                   "kms:RetireGrant",
                   "kms:GenerateDataKey",
                   "kms:GenerateDataKeyWithoutPlainText",
                   "kms:Decrypt"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/s3KmsInAccountA"
           }
       ]
   }
   ```

------

1. 在账户 A 中配置 `bucketA` 的存储桶策略和 `s3KmsInAccountA` 的密钥策略，以向账户 B 中的 IAM 角色 `roleB` 授予权限。

   下面是 `bucketA` 的存储桶策略示例，用于向 `roleB` 授予必要的权限：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

   以下示例是您附加到账户 A 中的 KMS 密钥 `s3KmsInAccountA` 以授予 `roleB` 访问权限的密钥策略。有关如何创建和附加密钥策略声明的更多信息，请参阅《AWS KMS 开发人员指南》**中的[创建密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)。

   ```
   {
     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
       "AWS": [
         "arn:aws:iam::accountB:role/roleB"
       ]
     },
     "Action": [
           "kms:DescribeKey",
           "kms:CreateGrant",
           "kms:RetireGrant",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlainText",
           "kms:Decrypt"
     ],
     "Resource": "*"
   }
   ```

配置上述权限后，账户 B 中的 Canvas 用户配置文件现在可以使用账户 A 中加密的 Amazon S3 存储桶作为 Canvas 构件的存储位置。

# 向用户授予在整个 ML 生命周期中使用大数据的权限
<a name="canvas-large-data-permissions"></a>

Amazon SageMaker Canvas 用户使用大于 10 GB 的 CSV 格式的数据集或大于 2.5 GB 的 Parquet 格式的数据集需要特定的权限才能处理大型数据。这些权限对于在整个机器学习生命周期内管理大规模数据至关重要。当数据集超过规定的阈值或应用程序的本地内存容量时， SageMaker Canvas 会使用 Amazon EMR Serverless 进行高效处理。这适用于：
+ 数据导入：导入随机或分层采样的大型数据集。
+ 数据准备：将处理过的数据从 Canvas 中的 Data Wrangler 导出到 Amazon S3、新的 Canvas 数据集或 Canvas 模型。
+ 模型构建：在大型数据集上训练模型。
+ 推理：在大型数据集上进行预测。

默认情况下， SageMaker Canvas 使用 EMR Serverless 通过以下应用程序设置运行这些远程作业：
+ 预初始化容量：未配置
+ 应用程序限制：最大容量为 400 vCPUs，CPUs 每个账户最大并发容量 16 v，3000 GB 内存，20000 GB 磁盘
+ 元数据仓配置： AWS Glue Data Catalog
+ 应用程序日志： AWS 托管存储（已启用），使用 AWS 自有加密密钥
+ 应用程序行为：提交作业时自动启动，应用程序闲置 15 分钟后自动停止

要启用这些大型数据处理功能，用户需要必要的权限，这些权限可通过 Amazon A SageMaker I 域设置授予。授予这些权限的方法取决于您的 Amazon SageMaker AI 域最初的设置方式。我们将介绍三种主要场景：
+ 快速域设置
+ 自定义域名设置（使用公共互联网 access/without VPC）
+ 自定义域设置（含 VPC，不可访问公共互联网）

每种场景都需要特定的步骤，以确保用户拥有在 Canvas 的整个机器学习生命周期中利用 EMR Serverless 进行大型数据处理所需的权限。 SageMaker 

## 场景 1：快速域设置
<a name="canvas-large-data-quick-setup"></a>

如果您在创建 SageMaker AI 域时使用了**快速设置**选项，请按照以下步骤操作：

1. 导航至 Amazon SageMaker AI 域名设置：

   1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

   1. 在左侧导航窗格中，选择 **域**。

   1. 选择您的域。

   1. 选择**应用程序配置**选项卡。

   1. 滚动到 **Canvas** 部分，然后选择 **编辑**。

1. 启用大数据处理：

   1. 在**大数据处理配置**部分，打开**启用 EMR Serverless 以进行大数据处理**。

   1. 创建或选择 EMR Serverless 角色：

      1. 选择**创建并使用新的执行角色**来创建与 EMR Serverless 和附加的 [AWS 托管策略： AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) 策略具有信任关系的新 IAM 角色。此 IAM 角色由 Canvas 担任，用于创建 EMR Serverless 作业。

      1. 或者，如果您已经拥有一个与 EMR Serverless 具有信任关系的执行角色，请选择**使用现有执行角色**，然后从下拉列表中选择您的角色。
         + 现有角色的名称必须以 `AmazonSageMakerCanvasEMRSExecutionAccess-` 开头。
         + 您选择的角色还应至少拥有 [AWS 托管策略： AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) 策略中描述的权限。
         + 此角色应具有 EMR Serverless 信任策略，如下所示：

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

****  

           ```
           {
               "Version":"2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Sid": "EMRServerlessTrustPolicy",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "emr-serverless.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole",
                       "Condition": {
                           "StringEquals": {
                               "aws:SourceAccount": "111122223333"
                           }
                       }
                   }
               ]
           }
           ```

------

1. （可选）为自定义 Amazon S3 存储桶添加 Amazon S3 权限：

   1. Canvas 托管式策略会自动授予对名称中包含 `sagemaker` 或 `SageMaker AI` 的 Amazon S3 存储桶的读写权限。它还会为带有 `"SageMaker": "true"` 标签的自定义 Amazon S3 存储桶中的对象授予读取权限。

   1. 对于没有所需标签的自定义 Amazon S3 存储桶，请将以下策略添加到您的 EMR Serverless 角色中：

   1. 

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              }
          ]
      }
      ```

------

   1. 我们建议您将权限范围缩小到您希望 Canvas 访问的特定 Amazon S3 存储桶范围。

1. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

## 场景 2：自定义域名设置（使用公共互联网 access/without VPC）
<a name="canvas-large-data-custom-no-vpc"></a>

如果您创建或使用自定义域，请按照场景 1 中的步骤 1-3 操作，然后执行以下其他步骤：

1. 为你的 Amazon A SageMaker I 执行角色添加亚马逊 ECR `DescribeImages` 操作权限，因为 Canvas 利用公共 Amazon ECR Docker 镜像进行数据准备和模型训练：

   1. 登录 AWS 控制台并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

   1. 选择**角色**。

   1. 在搜索框中，按名称搜索您的 SageMaker AI 执行角色并将其选中。

   1. 将以下策略添加到您的 SageMaker AI 执行角色。这可以通过将其添加为新的内联策略或将策略声明附加到现有策略中来实现。请注意，一个 IAM 角色最多可以附加 10 个策略。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
              "Sid": "ECRDescribeImagesOperation",
              "Effect": "Allow",
              "Action": "ecr:DescribeImages",
              "Resource": [
                  "arn:aws:ecr:*:*:repository/sagemaker-data-wrangler-emr-container",
                  "arn:aws:ecr:*:*:repository/ap-dataprep-emr"
              ]
          }]
      }
      ```

------

1. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

## 场景 3：自定义域设置（有 VPC，不可访问公共互联网）
<a name="canvas-large-data-custom-vpc"></a>

如果您创建或使用自定义域，请按照场景 2 的所有步骤操作，然后执行以下其他步骤：

1. 确保 VPC 子网是私有的：

   1. 确认子网的路由表中没有将 `0.0.0.0/0` 映射到互联网网关的条目。

1. 添加创建网络界面的权限：

   1. 当使用 SageMaker Canvas 和 EMR Serverless 进行大规模数据处理时，EMR Serverless 需要能够创建 Amazon EC2，以 ENIs 启用 EMR 无服务器应用程序与您的 VPC 资源之间的网络通信。

   1. 将以下策略添加到您的 Amazon SageMaker AI 执行角色中。这可以通过将其添加为新的内联策略或将策略声明附加到现有策略中来实现。请注意，一个 IAM 角色最多可以附加 10 个策略。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowEC2ENICreation",
                  "Effect": "Allow",
                  "Action": [
                      "ec2:CreateNetworkInterface"
                  ],
                  "Resource": [
                      "arn:aws:ec2:*:*:network-interface/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com"
                      }
                  }
              }
          ]
      }
      ```

------

1. （可选）将 ENI 的创建限制在特定子网内：

   1. 为了通过限制在您的 VPC 内创建某些子网 ENIs 来进一步保护您的设置，您可以根据特定条件标记每个子网。

   1. 使用以下 IAM 策略确保 EMR 无服务器应用程序只能在允许的子网和安全组 ENIs 内创建 Amazon EC2：

      ```
      {
          "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
          "Effect": "Allow", 
          "Action": [
              "ec2:CreateNetworkInterface"
          ],
          "Resource": [
              "arn:aws:ec2:*:*:subnet/*",
              "arn:aws:ec2:*:*:security-group/*"
          ],
          "Condition": {
              "StringEquals": {
                  "aws:ResourceTag/KEY": "VALUE"
              }
          }
      }
      ```

1. 按照页面[在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas](canvas-vpc.md)上的步骤为 Amazon S3 设置 VPC 终端节点，EMR Serverless 和 Canvas 使用的其他 AWS 服务都需要使用该终端节点。 SageMaker 

1. 保存您的更改并重新启动 SageMaker Canvas 应用程序。

按照这些步骤操作，您可以在 SageMaker Canvas 中为各种域设置（包括具有自定义 VPC 配置的域设置）启用大数据处理。请记住在进行这些更改后重新启动 SageMaker Canvas 应用程序以应用新权限。

# 使用以下方式加密您的 SageMaker 画布数据 AWS KMS
<a name="canvas-kms"></a>

在使用 Amazon SageMaker Canvas 时，您可能有想要加密的数据，例如您的私人公司信息或客户数据。 SageMaker Canvas AWS Key Management Service 用于保护您的数据。 AWS KMS 是一项服务，您可以使用它来创建和管理用于加密数据的加密密钥。有关的更多信息 AWS KMS，请参阅[AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)《*AWS KMS 开发人员指南》*。

Amazon SageMaker Canvas 为您提供了多种加密数据的选项。 SageMaker Canvas 在应用程序中为诸如构建模型和生成见解之类的任务提供默认加密。您还可以选择对存储在 Amazon S3 中的数据进行加密，以保护静态数据。 SageMaker Canvas 支持导入加密数据集，因此您可以建立加密的工作流程。以下各节介绍如何在使用 C SageMaker anvas 构建模型时使用 AWS KMS 加密来保护数据。

## 在 C SageMaker anvas 中加密你的数据
<a name="canvas-kms-app-data"></a>

使用 SageMaker Canvas，您可以使用两个不同的 AWS KMS 加密密钥在 SageMaker Canvas 中加密数据，您可以在使用标准域[设置设置域名](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html)时指定这些密钥。这些密钥是在以下域设置步骤中指定的：
+ **步骤 3：配置应用程序 -（可选）**- 在配置 **Canvas 存储配置**部分时，您可以指定**加密密钥**。这是 SageMaker Canvas 用于长期存储模型对象和数据集的 KMS 密钥，这些对象和数据集存储在为您的域提供的 Amazon S3 存储桶中。如果使用 [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API 创建 Canvas 应用程序，请使用`S3KMSKeyId`字段指定此密钥。
+ **第 6 步：配置存储** — SageMaker Canvas 使用一个密钥来加密为您的 Canvas 应用程序创建的 Amazon SageMaker Studio 私有空间，其中包括临时应用程序存储、可视化和计算任务（例如构建模型）。您可以使用默认的 AWS 托管密钥，也可以指定自己的托管密钥。如果您指定 AWS KMS 密钥，则存储在`/home/sagemaker-user`目录中的数据将使用您的密钥进行加密。如果您未指定 AWS KMS 密钥，则使用 AWS 托管密钥对内部`/home/sagemaker-user`数据进行加密。无论您是否指定 AWS KMS 密钥，工作目录之外的所有数据都使用 AWS 托管密钥进行加密。要了解有关 Studio 空间和 Canvas 应用程序存储空间的更多信息，请参阅 [将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中](canvas-spaces-setup.md)。如果使用 [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API 创建 Canvas 应用程序，请使用`KmsKeyID`字段指定此密钥。

前面的密钥可以是相同的 KMS 密钥，也可以是不同的 KMS 密钥。

### 先决条件
<a name="canvas-kms-app-data-prereqs"></a>

要将您自己的 KMS 密钥用于上述任何一种目的，必须首先授予用户的 IAM 角色使用该密钥的权限。然后，您可以在设置域时指定 KMS 密钥。

向您的角色授予使用密钥的权限的最简单方法是修改密钥策略。使用以下过程授予角色必要的权限。

1. 打开 [AWS KMS 管理控制台](https://console.aws.amazon.com/kms/)。

1. 在**密钥策略**部分中，选择**切换到策略视图**。

1. 修改密钥的策略，向 IAM 角色授予 `kms:GenerateDataKey` 和 `kms:Decrypt` 操作权限。此外，如果您要修改用于加密 Studio 空间中 Canvas 应用程序存储空间的密钥政策，请执行 `kms:CreateGrant` 操作。您可以添加类似于以下内容的声明：

   ```
   {
     "Sid": "ExampleStmt",
     "Action": [
       "kms:CreateGrant", #this permission is only required for the key that encrypts your SageMaker Canvas application storage
       "kms:Decrypt",
       "kms:GenerateDataKey"
     ],
     "Effect": "Allow",
     "Principal": {
       "AWS": "<arn:aws:iam::111122223333:role/Jane>"
     },
     "Resource": "*"
   }
   ```

1. 选择**保存更改**。

比较不可取的方法是修改用户的 IAM 角色，以授予用户使用或管理 KMS 密钥的权限。如果使用这种方法，KMS 密钥策略还必须允许通过 IAM 进行访问管理。要了解如何通过用户的 IAM 角色授予 KMS 密钥权限，请参阅《AWS KMS 开发人员指南》**中的[在 IAM 策略声明中指定 KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html)。

### 在 C SageMaker anvas 应用程序中加密您的数据
<a name="canvas-kms-app-data-app"></a>

您可以在 SageMaker Canvas 中使用的第一个 KMS 密钥用于加密存储在亚马逊弹性区块存储 (Amazon EBS) 卷和 SageMaker 人工智能在您的域中创建的亚马逊弹性文件系统中的应用程序数据。 SageMaker Canvas 在使用计算实例构建模型和生成见解时创建的底层应用程序和临时存储系统中使用此密钥对您的数据进行加密。 SageMaker 每当 Canvas 向其他 AWS 服务（例如 Autopilot）启动任务来处理您的数据时， SageMaker Canvas 就会将密钥传递给其他服务。

您可以通过在 `CreateDomain` API 调用中设置 `KmsKeyID` 或在管理控制台中进行标准域设置来指定此密钥。如果您未指定自己的 KMS 密钥， SageMaker AI 将使用默认 AWS 托管 KMS 密钥在 SageMaker Canvas 应用程序中加密您的数据。

要通过控制台指定您自己的 KMS 密钥以在 SageMaker Canvas 应用程序中使用，请先使用**标准**设置设置您的 SageMaker Amazon AI 域。使用以下过程完成域的**网络和存储部分**。

1. 填写所需的 Amazon VPC 设置。

1. 对于**加密密钥**，请选择**输入 KMS 密钥 ARN**。

1. 对于 **KMS ARN**，请输入 KMS 密钥的 ARN，其格式应类似于以下内容：`arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

### 加密保存在亚马逊 S3 中的 SageMaker 画布数据
<a name="canvas-kms-app-data-s3"></a>

您可以指定的第二个 KMS 密钥用于存储 SageMaker Canvas 存储到 Amazon S3 的数据。此 KMS 密钥是在 `CreateDomain` API 调用的`S3KMSKeyId`字段中指定的，或者在 SageMaker AI 控制台中进行标准域设置时指定的。 SageMaker Canvas 会将您的输入数据集、应用程序和模型数据以及输出数据的副本保存到您账户的该地区的默认 SageMaker AI S3 存储桶中。此存储桶的命名模式为`s3://sagemaker-{Region}-{your-account-id}`， SageMaker Canvas 将数据存储在该`Canvas/`文件夹中。





1. 打开**启用笔记本资源共享**。

1. 对于**可共享笔记本资源的 S3 位置**，请保留默认的 Amazon S3 路径。请注意， SageMaker Canvas 不使用此 Amazon S3 路径；此 Amazon S3 路径用于 Studio Classic 笔记本电脑。

1. 对于**加密密钥**，请选择**输入 KMS 密钥 ARN**。

1. 对于 **KMS ARN**，请输入 KMS 密钥的 ARN，其格式应类似于以下内容：`arn:aws:kms:us-east-1:111122223333:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

## 从 Amazon S3 导入加密数据集
<a name="canvas-kms-datasets"></a>

用户可能拥有使用 KMS 密钥加密的数据集。虽然上一节向您展示了如何加密 SageMaker Canvas 中的数据和存储到 Amazon S3 中的数据，但如果您想从 Amazon S3 中导入已使用加密的数据，则必须向用户的 IAM 角色授予额外权限 AWS KMS。

要向您的用户授予从 Amazon S3 将加密数据集导入 SageMaker Canvas 的权限，请将以下权限添加到您用于用户个人资料的 IAM 执行角色。

```
      "kms:Decrypt",
      "kms:GenerateDataKey"
```

要了解如何编辑角色的 IAM 权限，请参阅《IAM 用户指南》**中的[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。有关 KMS 密钥的更多信息，请参阅《AWS KMS 开发人员指南》**中的 [AWS Key Management Service中的密钥策略](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html)。

## FAQs
<a name="canvas-kms-faqs"></a>

有关C SageMaker anvas AWS KMS 支持的常见问题解答，请参阅以下常见问题解答。

### 问：C SageMaker anvas 会保留我的 KMS 密钥吗？
<a name="canvas-kms-faqs-1"></a>

答：不是。 SageMaker Canvas 可能会暂时缓存您的密钥或将其传递给其他 AWS 服务（例如自动驾驶），但是 SageMaker Canvas 不会保留您的 KMS 密钥。

### 问：我在设置域时指定了一个 KMS 密钥。为什么我的数据集无法在 SageMaker Canvas 中导入？
<a name="canvas-kms-faqs-2"></a>

答：用户的 IAM 角色可能没有使用该 KMS 密钥的权限。要授予用户权限，请参阅 [先决条件](#canvas-kms-app-data-prereqs)。另一个可能的错误是，您的 Amazon S3 存储桶上的存储桶策略要求使用特定的 KMS 密钥，而该密钥与您在域中指定的 KMS 密钥不匹配。确保为 Amazon S3 存储桶和域指定相同的 KMS 密钥。

### 问：如何为我的账户找到该地区的默认 SageMaker AI Amazon S3 存储桶？
<a name="canvas-kms-faqs-3"></a>

答：默认 Amazon S3 存储桶遵循命名模式 `s3://sagemaker-{Region}-{your-account-id}`。此存储桶中的`Canvas/`文件夹用于存储您的 SageMaker Canvas 应用程序数据。

### 问：我能否更改用于存储 C SageMaker anvas 数据的默认 A SageMaker I Amazon S3 存储桶？
<a name="canvas-kms-faqs-4"></a>

答：不是， SageMaker AI 会为你创建这个存储桶。

### 问：C SageMaker anvas 在默认 SageMaker AI Amazon S3 存储桶中存储了什么？
<a name="canvas-kms-faqs-5"></a>

答： SageMaker Canvas 使用默认的 SageMaker AI Amazon S3 存储桶来存储您的输入数据集、模型工件和模型输出的副本。

### 问：在 C SageMaker anvas 中使用 KMS 密钥支持哪些用例？
<a name="canvas-kms-faqs-6"></a>

答：使用 SageMaker Canvas，您可以使用自己的加密密钥来构建回归、二进制和多类分类以及时间序列预测模型，以及对模型进行批量推理。 AWS KMS 

# 将 SageMaker Canvas 应用程序数据存储在你自己的 SageMaker AI 空间中
<a name="canvas-spaces-setup"></a>

您的 Amazon SageMaker Canvas 应用程序数据，例如您导入的数据集和模型构件，存储在 *Amazon SageMaker Studio 的私有空间*中。此空间包括应用程序数据的存储卷（每个用户配置文件 100 GB 的存储空间）、空间类型（在本例中为 Canvas 应用程序）和应用程序容器的映像。当你设置 Canvas 并首次启动应用程序时， SageMaker AI 会创建一个默认的私有空间，分配给你的用户个人资料并存储你的 Canvas 数据。您无需进行任何其他配置即可设置空间，因为 SageMaker AI 会自动代表您创建空间。但是，如果您不想使用默认空间，则可以选择指定自己创建的空间。如果您想隔离数据，这将非常有用。下一页将向您介绍如何创建和配置自己的 Studio 空间，用于存储 Canvas 应用程序数据。

**注意**  
您只能为新的 Canvas 应用程序配置自定义 Studio 空间。您不能修改现有 Canvas 应用程序的空间配置。

## 开始前的准备工作
<a name="canvas-spaces-setup-prereqs"></a>

要创建和使用 C SageMaker anvas 应用程序，您的 SageMaker Amazon AI 域或用户个人资料必须至少有 100 GB 的存储空间。

如果您通过 SageMaker AI 控制台创建了域，则默认情况下会配置足够的存储空间，您无需采取任何其他操作。如果您使用或创建了域名或用户个人资料 [ CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) APIs，请确保将该`MaximumEbsVolumeSizeInGb`值设置为 100 GB 或更大。[CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)要设置更大的存储值，您可以创建新的域名或用户配置文件，也可以使用或更新现有的域名或用户配置文件[ UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html) APIs。[UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)

## 创建新空间
<a name="canvas-spaces-setup-new-space"></a>

首先，创建配置为存储 Canvas 应用程序数据的新的 Studio 空间。这是您在下一步中创建新的 Canvas 应用程序时指定的空间。

要创建空间，您可以使用 适用于 Python (Boto3) 的 AWS SDK 或 AWS CLI。

------
#### [ SDK for Python (Boto3) ]

以下示例向您展示如何使用该 适用于 Python (Boto3) 的 AWS SDK `create_space`方法创建可用于 Canvas 应用程序的空间。确保指定以下参数：
+ `DomainId`：为您的 SageMaker AI 域指定 ID。要查找您的 ID，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域名” 部分找到您的**域名**。
+ `SpaceName`：指定新空间的名称。
+ `EbsVolumeSizeinGb`：指定空间的存储卷大小（单位：GB）。最小值为 `5`，最大值为 `16384`。
+ `SharingType`：将此字段指定为 `Private`。有关更多信息，请参阅 [亚马逊 SageMaker Studio 空间](studio-updated-spaces.md)。
+ `OwnerUserProfileName`：指定用户配置文件名称。要查找与域名关联的用户个人资料名称，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域**名” 部分找到您的域名**。在域的设置中，您可以查看用户配置文件。
+ `AppType`：将此字段指定为 `Canvas`。

```
response = client.create_space(
    DomainId='<your-domain-id>', 
    SpaceName='<your-new-space-name>',
    SpaceSettings={
        'AppType': 'Canvas',
        'SpaceStorageSettings': {
            'EbsStorageSettings': {
                'EbsVolumeSizeInGb': <storage-volume-size>
            }
        },
    },
    OwnershipSettings={
        'OwnerUserProfileName': '<your-user-profile>'
    },
    SpaceSharingSettings={
        'SharingType': 'Private'
    }  
)
```

------
#### [ AWS CLI ]

以下示例向您展示如何使用该 AWS CLI `create-space`方法创建可用于 Canvas 应用程序的空间。确保指定以下参数：
+ `domain-id`：指定域的 ID。要查找您的 ID，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域名” 部分找到您的**域名**。
+ `space-name`：指定新空间的名称。
+ `EbsVolumeSizeinGb`：指定空间的存储卷大小（单位：GB）。最小值为 `5`，最大值为 `16384`。
+ `SharingType`：将此字段指定为 `Private`。有关更多信息，请参阅 [亚马逊 SageMaker Studio 空间](studio-updated-spaces.md)。
+ `OwnerUserProfileName`：指定用户配置文件名称。要查找与域名关联的用户个人资料名称，您可以前往 SageMaker AI 控制台，[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)然后在 “域**名” 部分找到您的域名**。在域的设置中，您可以查看用户配置文件。
+ `AppType`：将此字段指定为 `Canvas`。

```
  
create-space
--domain-id <your-domain-id>
--space-name <your-new-space-name>  
--space-settings '{
        "AppType": "Canvas", 
        "SpaceStorageSettings": {
            "EbsStorageSettings": {"EbsVolumeSizeInGb": <storage-volume-size>}
        },
     }'
--ownership-settings '{"OwnerUserProfileName": "<your-user-profile>"}'
--space-sharing-settings '{"SharingType": "Private"}'
```

------

现在，您应该拥有一个空间。跟踪空间名称，以备下一步使用。

## 创建新的 Canvas 应用程序。
<a name="canvas-spaces-setup-new-app"></a>

创建空间后，创建一个新的 Canvas 应用程序，指定此空间为其存储位置。

要创建新的 Canvas 应用程序，您可以使用 适用于 Python (Boto3) 的 AWS SDK 或 AWS CLI。

**重要**  
必须使用 适用于 Python (Boto3) 的 AWS SDK 或 AWS CLI 来创建 Canvas 应用程序。不支持在通过 SageMaker AI 控制台创建 Canvas 应用程序时指定自定义空间。

------
#### [ SDK for Python (Boto3) ]

以下示例向您展示如何使用该 适用于 Python (Boto3) 的 AWS SDK `create_app`方法创建新的 Canvas 应用程序。确保指定以下参数：
+ `DomainId`：为您的 SageMaker AI 域指定 ID。
+ `SpaceName`：指定上一步中创建的空间名称。
+ `AppType`：将此字段指定为 `Canvas`。
+ `AppName`：指定 `default` 为应用程序名称。

```
response = client.create_app(  
    DomainId='<your-domain-id>',
    SpaceName='<your-space-name>',
    AppType='Canvas', 
    AppName='default'  
)
```

------
#### [ AWS CLI ]

以下示例向您展示如何使用该 AWS CLI `create-app`方法创建新的 Canvas 应用程序。确保指定以下参数：
+ `DomainId`：为您的 SageMaker AI 域指定 ID。
+ `SpaceName`：指定上一步中创建的空间名称。
+ `AppType`：将此字段指定为 `Canvas`。
+ `AppName`：指定 `default` 为应用程序名称。

```
create-app
--domain-id <your-domain-id>
--space-name <your-space-name>
--app-type Canvas
--app-name default
```

------

现在您应该拥有了一个新的 Canvas 应用程序，它使用自定义 Studio 空间作为应用程序数据的存储位置。

**重要**  
当您删除 Canvas 应用程序（或注销）并重新创建应用程序时，必须在 `SpaceName` 字段中填写您的空间，以确保 Canvas 使用您的空间。

此空间将附加到您在空间配置中指定的用户配置文件。您可以在不删除空间的情况下删除 Canvas 应用程序，存储在空间中的数据仍会保留。只有当您删除用户配置文件或直接删除空间时，存储在空间中的数据才会删除。

# 授予用户构建自定义图像和文本预测模型的权限
<a name="canvas-set-up-cv-nlp"></a>

**重要**  
允许 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 创建亚马逊 SageMaker资源的自定义 IAM 策略还必须授予向这些资源添加标签的权限。之所以需要为资源添加标签的权限，是因为 Studio 和 Studio Classic 会自动为创建的任何资源添加标签。如果 IAM 策略允许 Studio 和 Studio Classic 创建资源但不允许标记，则在尝试创建资源时可能会出现 AccessDenied “” 错误。有关更多信息，请参阅 [提供标记 A SageMaker I 资源的权限](security_iam_id-based-policy-examples.md#grant-tagging-permissions)。  
[AWS 亚马逊 A SageMaker I 的托管策略](security-iam-awsmanpol.md)授予创建 SageMaker 资源的权限已经包括在创建这些资源时添加标签的权限。

在 Amazon SageMaker Canvas 中，您可以构建[自定义模型](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)以满足您的特定业务需求。其中两种自定义模型类型是单标签图像预测和多元文本预测。构建这些模型类型的权限包含在名为的 AWS Identity and Access Management (IAM) 策略中 [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)，如果您[启用 Canvas 基本权限](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites)，A SageMaker I 会默认将该策略附加到您的用户的 IAM 执行角色。如果您使用的是自定义 IAM 配置，则必须为用户的 IAM 执行角色明确添加权限，以便他们可以构建自定义映像和文本预测模型类型。要授予构建图像和文本预测模型所需的权限，请阅读以下部分，了解如何为您的角色附加最低权限策略。

要在用户的 IAM 角色中添加权限，请执行以下操作：

1. 转到 [IAM 控制台](https://console.aws.amazon.com/iamv2)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 选择**创建内联策略**。

1. 选择 JSON 选项卡，然后将以下最低权限策略粘贴到编辑器中。

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

****  

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

------

1. 选择**查看策略**。

1. 输入策略的**名称**。

1. 选择**创建策略**。

有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

# 授予用户在 Canvas 中使用 Amazon Bedrock 和生成式人工智能功能的权限
<a name="canvas-fine-tuning-permissions"></a>

Amazon C SageMaker anvas 中的生成式人工智能功能由 Amazon Bedrock 基础模型提供支持，这些模型是大型语言模型 (LLMs)，能够理解和生成类似人类的文本。本页介绍如何授予 C SageMaker anvas 中以下功能所需的权限：
+ [与亚马逊 Bedrock 模型聊天和比较：通过 C](canvas-fm-chat.md) anvas 访问亚马逊 Bedrock 模特并开始对话聊天。 SageMaker 
+ [使用 Data Wrangler 中的聊天功能进行数据准备](canvas-chat-for-data-prep.md)：使用自然语言浏览、可视化和转换数据。此功能由 Anthropic Claude 2 提供支持。
+ [微调 Amazon Bedrock 基础模型](canvas-fm-chat-fine-tune.md)：根据您自己的数据微调 Amazon Bedrock 基础模型，以接收自定义的响应。

要使用这些功能，您必须先申请访问您要使用的特定 Amazon Bedrock 模型。然后，将必要的 AWS IAM 权限以及与 Amazon Bedrock 的信任关系添加到用户的执行角色中。要授予角色权限，您可以选择以下方法之一：
+ 创建新的 Amazon SageMaker AI 域名或用户个人资料并开启亚马逊 Bedrock 权限。有关更多信息，请参阅 [开始使用 Amazon C SageMaker anvas](canvas-getting-started.md)。
+ 编辑现有 Amazon A SageMaker I 域名或用户个人资料的设置。
+ 手动向域或用户的 IAM 角色添加权限和信任关系。

## 步骤 1：添加 Amazon Bedrock 模型访问权限
<a name="canvas-bedrock-access"></a>

默认情况下，不会授予访问亚马逊 Bedrock 模型的权限，因此您必须前往 Amazon Bedrock 控制台为您的 AWS 账户申请访问模型。

要了解如何请求访问特定的 Amazon Bedrock 模型，请按照**《Amazon Bedrock 用户指南》**中[管理对 Amazon Bedrock 基础模型的访问权限](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)页面上的*添加模型访问权限*的步骤进行操作。

## 步骤 2：向用户的 IAM 角色授予权限
<a name="canvas-bedrock-iam-permissions"></a>

在设置您的 Amazon A SageMaker I 域或用户个人资料时，用户的 IAM 执行角色必须附加[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)策略以及与 Amazon Bedrock 的信任关系，以便您的用户可以从 SageMaker Canvas 访问亚马逊 Bedrock 模型。

您可以修改域设置，然后创建新的执行角色（ SageMaker AI 会为您附加所需的权限），也可以指定现有角色。

或者，您也可以通过 IAM 控制台手动修改现有的 IAM 角色的权限。

以下部分中将介绍这两种方法。

### 通过域设置授予权限
<a name="canvas-fine-tuning-permissions-console"></a>

您可以编辑您的域名或用户个人资料设置以打开 C **anvas Ready-to-use 模型配置**设置并指定 Amazon Bedrock 角色。

要编辑域设置并向域中的 Canvas 用户授予对 Amazon Bedrock 模型的访问权限，请执行以下操作：

1. 前往 SageMaker AI 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择 **域**。

1. 从域列表中选择您的域。

1. 选择**应用程序配置**选项卡。

1. 在 **Canvas** 部分中，选择**编辑**。

1. 此时将打开**编辑 Canvas 设置**页面。对于 **Canvas Ready-to-use 模型配置**部分，请执行以下操作：

   1. 打开 “**启用画布 Ready-to-use模型” 选项**。

   1. 对于 **Amazon Bedrock 角色**，选择**创建并使用新的执行角色**来创建新的 IAM 执行角色，该角色附有[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)策略并与 Amazon Bedrock 建立信任关系。当您访问 Amazon Bedrock 模型、使用数据准备聊天功能或在 Canvas 中微调 Amazon Bedrock 模型时，此 IAM 角色将由 Amazon Bedrock 担任。如果您已经有一个具有信任关系的执行角色，请选择**使用现有的执行角色**，然后从下拉列表中选择您的角色。

1. 选择 **Submit (提交)** 可保存您的更改。

现在，您的用户应该拥有访问 Amazon Bedrock 模型、使用数据准备聊天功能以及在 Canvas 中微调 Amazon Bedrock 模型所需的权限。

您可以使用上述编辑单个用户设置的相同步骤，但要从域页面进入单个用户的配置文件，然后编辑用户设置。授予单个用户的权限不适用于域中的其他用户，而通过域设置授予的权限则适用于域中的所有用户配置文件。

有关编辑域设置的更多信息，请参阅[查看和编辑域](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view-edit.html)。

### 通过 IAM 手动授予权限
<a name="canvas-fine-tuning-permissions-manual"></a>

您可以通过为域或用户配置文件指定的 IAM 角色添加权限，手动授予用户在 Canvas 中访问和微调 Amazon Bedrock 模型的权限。IAM 角色必须附加[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)政策并与 Amazon Bedrock 建立信任关系。

下一节将向您介绍如何将策略附加到 IAM 角色以及如何与 Amazon Bedrock 建立信任关系。

首先，请注意您的域或用户配置文件的 IAM 角色。请注意，授予单个用户的权限不适用于域中的其他用户，而通过域授予的权限则适用于域中的所有用户配置文件。

要配置 IAM 角色并授予在 Canvas 中微调基础模型的权限，请执行以下操作：

1. 前往 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧导航窗格中，选择 **角色**。

1. 从角色列表中按名称搜索用户的 IAM 角色并将其选中。

1. 在**权限**选项卡中，请选择**添加权限**。从下拉菜单中选择**附加策略**。

1. 搜索 `AmazonSageMakerCanvasBedrockAccess` 策略并将其选中。

1. 选择**添加权限**。

1. 回到 IAM 角色页面，选择**信任关系**选项卡。

1. 选择**编辑信任策略**。

1. 在策略编辑器中，找到右侧面板中的**添加主体选项**，然后选择**添加**。

1. 在对话框中的**主体类型**中，选择 **AWS 服务**。

1. 在 **ARN** 中，输入 **bedrock.amazonaws.com**。

1. 选择**添加主体**。

1. 选择**更新策略**。

现在，您应该拥有一个附有[ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)策略的 IAM 角色并与 Amazon Bedrock 建立信任关系。有关 AWS 托管策略的信息，请参阅 *IAM 用户指南*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

# 为用户更新 SageMaker 画布
<a name="canvas-update"></a>

您可以以用户或 IT 管理员的身份更新到最新版本的 Amazon SageMaker Canvas。您可以一次为单个用户更新 Amazon SageMaker Canvas。

要更新 Amazon SageMaker Canvas 应用程序，您必须删除之前的版本。

**重要**  
删除先前版本的 Amazon SageMaker Canvas 不会删除用户创建的数据或模型。

使用以下步骤登录 AWS、打开亚马逊 A SageMaker I 域并更新 Amazon SageMaker Canvas。用户重新登录后即可开始使用 SageMaker Canvas 应用程序。

1. 在亚马逊 [ SageMaker Runtime 上登录亚马逊 A SageMaker ](https://console.aws.amazon.com/sagemaker/) I 控制台。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 在**域**页面上，选择您的域。

1. 从**用户配置文件**列表中，选择一个用户配置文件。

1. 在**应用程序**列表中，找到 Canvas 应用程序（**应用程序类型**显示为 **Canvas**），然后选择**删除应用程序**。

1. 完成对话框并选择**确认操作**。

下图显示了用户配置文件页面，并突出显示了前面步骤中的**删除应用程序**操作。

![\[突出显示了“删除应用程序”操作的用户配置文件页面的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/canvas/canvas-update-app-1.png)


# 请求提高限额
<a name="canvas-requesting-quota-increases"></a>

您的用户使用的 AWS 资源量可能会超过其配额中指定的数量。如果您的用户资源有限，并且在 SageMaker Canvas 中遇到错误，您可以申请增加他们的配额。

有关 SageMaker AI 配额以及如何申请增加配额的更多详细信息，请参阅[配额](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html#regions-quotas-quotas)。

Amazon SageMaker Canvas 使用以下服务来处理您的用户的请求：
+ Amazon SageMaker 自动驾驶仪
+ 亚马逊 SageMaker Studio 经典版域名

有关 C SageMaker anvas 操作的可用配额列表，请参阅 [Amazon A SageMaker I 终端节点和配额](https://docs.aws.amazon.com//general/latest/gr/sagemaker.html)。

## 请求增加用于构建自定义模型的实例
<a name="canvas-requesting-quota-increases-instances"></a>

在构建自定义模型时，如果您在构建后分析过程中遇到错误，提示您增加 `ml.m5.2xlarge` 实例限额，请使用以下信息来解决问题。

您必须将 AWS 账户中该`ml.m5.2xlarge`实例类型的 SageMaker AI Hosting 终端节点配额提高到非零值。构建模型后， SageMaker Canvas 将模型托管在 A SageMaker I Hosting 端点上，并使用该端点生成构建后分析。如果您不将`ml.m5.2xlarge`实例的默认账户配额增加到 0， SageMaker Canvas 将无法完成此步骤，并在构建后分析期间生成错误。

有关增加配额的步骤，请参阅*《服务配额用户指南》*中的[请求增加配额](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

# 授予用户导入 Amazon Redshift 数据的权限
<a name="canvas-redshift-permissions"></a>

您的用户可能有存储在 Amazon Redshift 中的数据集。在用户可以将数据从 Amazon Redshift 导入 SageMaker Canvas 之前，您必须将`AmazonRedshiftFullAccess`托管策略添加到用于用户个人资料的 IAM 执行角色中，并将 Amazon Redshift 作为服务委托人添加到该角色的信任策略中。您还必须将 IAM 执行角色与 Amazon Redshift 集群关联。完成以下几节中的步骤，向您的用户授予导入 Amazon Redshift 数据所需的权限。

## 在 IAM 角色中添加 Amazon Redshift 权限
<a name="canvas-redshift-permissions-iam-role"></a>

您必须向用户配置文件中指定的 IAM 角色授予 Amazon Redshift 权限。

要将 `AmazonRedshiftFullAccess` 策略添加到用户的 IAM 角色，请执行以下操作。

1. 登录 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 选择**附加策略**。

1. 搜索 `AmazonRedshiftFullAccess` 托管策略并将其选中。

1. 选择**附加策略**将策略附加到该角色。

附加策略后，该角色的**权限**部分现在应包括 `AmazonRedshiftFullAccess`。

要将 Amazon Redshift 作为服务主体添加到 IAM 角色，请执行以下操作。

1. 在 IAM 角色的同一页面上，在**信任关系**下，选择**编辑信任策略**。

1. 在**编辑信任策略**编辑器中，更新信任策略以将 Amazon Redshift 添加为服务主体。允许 Amazon Redshift 代表您访问其他 AWS 服务的 IAM 角色具有如下信任关系：

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 编辑信任策略后，选择**更新策略**。

现在，你应该拥有一个`AmazonRedshiftFullAccess`附有策略的 IAM 角色，并与亚马逊 Redshift 建立了信任关系，允许用户将亚马逊 Redshift 数据导入 Canvas。 SageMaker 有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

## 将 IAM 角色与 Amazon Redshift 集群关联
<a name="canvas-redshift-permissions-cluster"></a>

在 Amazon Redshift 集群的设置中，您必须关联在上一节中授予权限的 IAM 角色。

要将 IAM 角色与集群关联，请执行以下操作。

1. 登录亚马逊 Redshift 控制台，网址为。[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. 在导航菜单上，选择**集群**，然后选择要更新的集群的名称。

1. 在**操作**下拉菜单中，选择**管理 IAM 角色**。此时将出现**集群权限**页面。

1. 对于**可用的 IAM 角色**，输入 ARN 或 IAM 角色的名称，或从列表中选择 IAM 角色。

1. 选择**关联 IAM 角色**以将该角色添加到**关联的 IAM 角色**列表中。

1. 选择**保存更改**将 IAM 角色与集群关联。

Amazon Redshift 会修改集群以完成更改，您之前授予 Amazon Redshift 权限的 IAM 角色现在与您的 Amazon Redshift 集群相关联。您的用户现在拥有将亚马逊 Redshift 数据导入 Canvas 所需的权限。 SageMaker 

# 向您的用户授予向 Quick 发送预测的权限
<a name="canvas-quicksight-permissions"></a>

您必须向 SageMaker Canvas 用户授予向 Quick 发送批量预测的权限。在 Quick 中，用户可以使用数据集创建分析和报告，并准备仪表板以共享结果。有关将预测发送到进行分析 QuickSight 的更多信息，请参阅[将预测发送到 Quick](canvas-send-predictions.md)。

要授予与用户共享批量预测所需的权限 QuickSight，您必须向用于用户个人资料的 AWS Identity and Access Management (IAM) 执行角色添加权限策略。下一节将介绍如何为角色附加最低权限策略。

**在 IAM 角色中添加权限策略**

**要添加权限策略，请执行以下步骤：**

1. 登录 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 选择**角色**。

1. 在搜索框中，按名称搜索用户的 IAM 角色并将其选中。

1. 在用户角色页面的**权限**下，选择**添加权限**。

1. 选择**创建内联策略**。

1. 选择 JSON 选项卡，然后将以下最低权限策略粘贴到编辑器中。将占位符 `<your-account-number>` 替换为您自己的 AWS 账号。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "quicksight:CreateDataSet",
                   "quicksight:ListUsers",
                   "quicksight:ListNamespaces",
                   "quicksight:CreateDataSource",
                   "quicksight:PassDataSet",
                   "quicksight:PassDataSource"
               ],
               "Resource": [
                   "arn:aws:quicksight:*:111122223333:datasource/*",
                   "arn:aws:quicksight:*:111122223333:user/*",
                   "arn:aws:quicksight:*:111122223333:namespace/*",
                   "arn:aws:quicksight:*:111122223333:dataset/*"
               ]
           }
       ]
   }
   ```

------

1. 选择**查看策略**。

1. 输入策略的**名称**。

1. 选择**创建策略**。

现在，您的执行角色应该有一个客户托管的 IAM 策略，该策略授予您的 Canvas 用户向中的 QuickSight用户发送批量预测所需的权限。

# 应用程序管理
<a name="canvas-manage-apps"></a>

以下各节介绍如何管理 SageMaker Canvas 应用程序。您可以从 SageMaker AI 控制台的 “**域**” 部分查看、删除或重新启动应用程序。

**Topics**
+ [检查处于活动状态的应用程序](canvas-manage-apps-active.md)
+ [删除应用程序](canvas-manage-apps-delete.md)
+ [重新启动应用程序](canvas-manage-apps-relaunch.md)

# 检查处于活动状态的应用程序
<a name="canvas-manage-apps-active"></a>

要检查您是否有任何正在运行的 SageMaker Canvas 应用程序，请按以下步骤操作。

1. 打开 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**控制面板**。

1. 在 **LCNC** 部分中，有一行 Canvas 告诉你有多少活跃的应用程序正在运行。选择数字以查看应用程序列表。

**状态**列显示应用程序的状态，例如 **Ready**、**Pending** 或 **Deleted**。如果应用程序**已准备就绪**，则您的 SageMaker Canvas 工作空间实例处于活动状态。您可以从控制台中删除应用程序，也可以重新打开 Canvas 并注销。

# 删除应用程序
<a name="canvas-manage-apps-delete"></a>

如果要终止 SageMaker Canvas 工作空间实例，可以从 SageMaker Canvas 应用程序注销，也可以从 SageMaker AI 控制台中删除应用程序。从您开始使用 Canvas 到停止使用 SageMaker Canvas，*工作空间实例*专供您使用。删除应用程序只会终止工作区实例并停止工作区实例收费。模型和数据集不会受到影响，但重新启动应用程序时，快速构建任务会自动重新启动。

要通过 AWS 控制台删除 Canvas 应用程序，请先关闭打开 Canvas 应用程序的浏览器选项卡。然后，使用以下步骤删除您的 SageMaker Canvas 应用程序。

1. 打开 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 在**域**页面上，选择您的域。

1. 在**域名详细信息**页面上，选择**资源**。

1. 在 “**应用程序**” 下，在 “应用程序**类型” 列中找到显示 **Canvas** 的应用程序**。

1. 选中 “画布” 应用程序旁边的复选框，然后选择 “**停止**”。

现在，您已成功停止应用程序并终止了工作区实例。

您也可以通过从 C SageMaker anvas 应用程序中[注销来](canvas-log-out.md)终止工作区实例。

# 重新启动应用程序
<a name="canvas-manage-apps-relaunch"></a>

如果您删除或注销 SageMaker Canvas 应用程序并想要重新启动该应用程序，请按以下步骤操作。

1. 导航到 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在导航窗格中，选择 **Canvas**。

1. 在 SageMaker Canvas 登录页面的 “**入门**” 框中，从下拉列表中选择您的用户个人资料。

1. 选择**打开 Canvas** 以打开该应用程序。

SageMaker Canvas 开始启动应用程序。

如果您在前面的过程中遇到任何问题，也可以使用下面的辅助过程。

1. 打开 A [SageMaker I 控制台](https://console.aws.amazon.com/sagemaker/)。

1. 在左侧导航窗格中，选择**管理员配置**。

1. 在**管理员配置**下，选择**域**。

1. 在**域**页面上，选择您的域。

1. 在**域名详细信息**页面的**用户配置文件**下，选择要查看的 SageMaker Canvas 应用程序的用户配置文件名称。

1. 选择**启动**，然后从下拉列表中选择 **Canvas**。

SageMaker Canvas 开始启动应用程序。

# 在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas
<a name="canvas-vpc"></a>

Amazon SageMaker Canvas 应用程序在 AWS 托管的亚马逊虚拟私有云 (VPC) 的容器中运行。如果您想进一步控制对资源的访问或在没有公共互联网访问的情况下运行 SageMaker Canvas，则可以配置您的 Amazon A SageMaker I 域和 VPC 设置。在您自己的 VPC 中，您可以配置安全组（控制 Amazon EC2 实例入站和出站流量的虚拟防火墙）和子网（VPC 中的 IP 地址范围）等设置。要了解更多信息 VPCs，请参阅 [Amazon VPC 的工作原理](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)。

当 SageMaker Canvas 应用程序在 AWS 托管 VPC 中运行时，它可以使用互联网连接或通过在客户管理的 VPC 中创建的 VPC 终端节点（无需公共互联网访问）与其他 AWS 服务进行交互。 SageMaker Canvas 应用程序可以通过 Studio Classic 创建的网络接口访问这些 VPC 终端节点，该接口提供与客户管理的 VPC 的连接。 SageMaker Canvas 应用程序的默认行为是访问互联网。使用互联网连接时，前述作业的容器会通过互联网访问 AWS 资源，例如存储训练数据和模型构件的 Amazon S3 存储桶。

但是，如果您有安全要求来控制对数据和任务容器的访问，我们建议您配置 SageMaker Canvas 和您的 VPC，以便无法通过 Internet 访问您的数据和容器。 SageMaker AI 使用您在为 C SageMaker anvas 设置域时指定的 VPC 配置设置。

如果您想在不访问互联网的情况下配置 SageMaker Canvas 应用程序，则必须在加入 [Amazon A SageMaker I 域](gs-studio-onboard.md)时配置 VPC 设置，设置 VPC 终端节点并授予必要的 AWS Identity and Access Management 权限。有关在 Amazon A SageMaker I 中配置 VPC 的信息，请参阅[选择 Amazon VPC](onboard-vpc.md)。以下各节介绍如何在没有公共互联网访问权限的 VPC 中运行 SageMaker Canvas。

## 在没有互联网访问权限的 VPC 中配置 Amazon SageMaker Canvas
<a name="canvas-vpc-configure"></a>

您可以通过自己的 VPC 将流量从 SageMaker Canvas 发送到其他 AWS 服务。如果您自己的 VPC 没有公共互联网访问权限，并且您已将域设置为**仅限 VPC** 模式，那么 SageMaker Canvas 也无法访问公共互联网。这包括所有请求，如访问 Amazon S3 中的数据集或标准构建的训练作业，这些请求通过 VPC 中的 VPC 端点而不是公共互联网进行。当您加入域和 [选择 Amazon VPC](onboard-vpc.md) 时，可以指定自己的 VPC 作为域的默认 VPC，并指定所需的安全组和子网设置。然后， SageMaker AI 会在您的 VPC 中创建一个网络接口，Canva SageMaker s 使用该接口来访问您的 VPC 中的终端节点。

确保在您的 VPC 中设置一个或多个安全组，并设置允许[安全组内 TCP 流量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances)的入站和出站规则。这是 Jupyter Server 应用程序和 Kernel Gateway 应用程序之间的连接所需。必须至少允许访问范围 `8192-65535` 内的端口。此外，确保为每个用户配置文件创建不同的安全组，并添加来自同一安全组的入站访问权限。我们不建议对用户配置文件重复使用域级安全组。如果域级安全组允许对其自身进行入站访问，该域中的所有应用程序都有权访问域中的所有其他应用程序。请注意，安全组和子网设置是在您完成加入域后设置的。

在入网域时，如果您选择 “**仅限公共互联网**” 作为网络访问类型，则 VPC 将由 A SageMaker I 管理并允许访问互联网。

您可以通过**仅选择 VPC** 来更改此行为，以便 SageMaker AI 将所有流量发送到 A SageMaker I 在您指定 VPC 中创建的网络接口。选择此选项时，必须提供与 SageMaker API 和 SageMaker AI 运行时通信所需的子网、安全组和 VPC 终端节点，以及 C SageMaker anvas 使用的各种 AWS 服务，例如 Amazon S3 和 Amazon CloudWatch。请注意，您只能从与 VPC 位于同一区域的 Amazon S3 存储桶导入数据。

以下过程说明如何将这些设置配置为在没有互联网的情况下使用 SageMaker Canvas。

### 第 1 步：登录 Amazon A SageMaker I 域名
<a name="canvas-vpc-configure-onboard"></a>

要将 SageMaker Canvas 流量发送到您自己的 VPC 中的网络接口，而不是通过互联网发送，请指定您在加入 [Amazon A SageMaker I 域](gs-studio-onboard.md)时要使用的 VPC。您还必须在 VPC 中指定至少两个 SageMaker AI 可以使用的子网。在为域配置**网络和存储部分**时，选择**标准设置**并执行以下步骤。

1. 选择所需的 **VPC**。

1. 选择两个或更多**子网**。如果您未指定子网， SageMaker AI 将使用 VPC 中的所有子网。

1. 选择一个或多个**安全组**。

1. 选择 “**仅限 VPC**” 可在托管 C SageMaker anvas 的 AWS 托管 VPC 中关闭直接互联网访问。

禁用互联网访问后，完成信息载入过程以设置您的域。有关 Amazon A SageMaker I 域的 VPC 设置的更多信息，请参阅[选择 Amazon VPC](onboard-vpc.md)。

### 步骤 2：配置 VPC 端点和访问权限
<a name="canvas-vpc-configure-endpoints"></a>

**注意**  
要在您自己的 VPC 中配置 Canvas，必须为 VPC 端点启用私有 DNS 主机名。有关更多信息，请参阅[通过 VPC 接口终端节点连接到 SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/interface-vpc-endpoint.html)。

SageMaker Canvas 仅访问其他 AWS 服务来管理和存储数据以实现其功能。例如，如果用户访问 Amazon Redshift 数据库，它就会连接到 Amazon Redshift。它可以使用互联网连接或 VPC 终端节点连接到诸如 Amazon Redshift 之类的 AWS 服务。如果您想设置从 VPC 到不使用公共互联网的 AWS 服务的连接，请使用 VPC 终端节点。

VPC 终端节点使用与公共 Internet 隔离的网络路径创建与 AWS 服务的私有连接。例如，如果您使用自己的 VPC 终端节点设置对 Amazon S3 的访问权限，那么 SageMaker Canvas 应用程序可以通过您的 VPC 中的网络接口，然后通过连接到 Amazon S3 的 VPC 终端节点来访问 Amazon S3。 SageMaker Canvas 和 Amazon S3 之间的通信是私密的。

有关为 VPC 配置 VPC 端点的更多信息，请参阅 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)。如果您正在使用带有 VPC 的 Canvas 中的 Amazon Bedrock 模型，则有关控制数据访问权限的更多信息，请参阅《Amazon Bedrock 用户指南》**中的[使用 VPC 保护作业](https://docs.aws.amazon.com/bedrock/latest/userguide/usingVPC.html#configureVPC)。

以下是您可以在 C SageMaker anvas 中使用的每项服务的 VPC 终端节点：


| 服务 | 端点 | 端点类型 | 
| --- | --- | --- | 
|  AWS 应用程序 Auto Scaling  |  com.amazonaws。 *Region*. 应用程序自动缩放  | 接口 | 
|  Amazon Athena  |  com.amazonaws。 *Region*.athena  | 接口 | 
|  亚马逊 SageMaker AI  |  com.amazonaws。 *Region*.sagemaker.api com.amazonaws。 *Region*.sagemaker.runtime com.amazonaws。 *Region*. 笔记本  | 接口 | 
|  亚马逊 SageMaker AI 数据科学助手  |  com.amazonaws。 *Region*。 sagemaker-data-science-assistant  | 接口 | 
|  AWS Security Token Service  |  com.amazonaws。 *Region*.sts  | 接口 | 
|  Amazon Elastic Container Registry (Amazon ECR)  |  com.amazonaws。 *Region*.ecr.api com.amazonaws。 *Region*.ecr.dkr  | 接口 | 
|  Amazon Elastic Compute Cloud (Amazon EC2)  |  com.amazonaws。 *Region*.ec2  | 接口 | 
|  Amazon Simple Storage Service（Amazon S3）  |  com.amazonaws。 *Region*.s3  | 网关 | 
|  Amazon Redshift  |  com.amazonaws。 *Region*.redShift-data  | 接口 | 
|  AWS Secrets Manager  |  com.amazonaws。 *Region*.secretsManag  | 接口 | 
|  AWS Systems Manager  |  com.amazonaws。 *Region*.ssm  | 接口 | 
|  Amazon CloudWatch  |  com.amazonaws。 *Region*. 监控  | 接口 | 
|  Amazon CloudWatch 日志  |  com.amazonaws。 *Region*.logs  | 接口 | 
|  Amazon Forecast  |  com.amazonaws。 *Region*. 预测 com.amazonaws。 *Region*.forecastquer  | 接口 | 
|  Amazon Textract  |  com.amazonaws。 *Region*.extract  | 接口 | 
|  Amazon Comprehend  |  com.amazonaws。 *Region*.comprehend  | 接口 | 
|  Amazon Rekognition  |  com.amazonaws。 *Region*. rekognition  | 接口 | 
|  AWS Glue  |  com.amazonaws。 *Region*. glue  | 接口 | 
|  AWS App Auto Scaling  |  com.amazonaws。 *Region*. 应用程序自动缩放  | 接口 | 
|  Amazon Relational Database Service (Amazon RDS)  |  com.amazonaws。 *Region*.rds  | 接口 | 
|  Amazon Bedrock（见此表后的注释）  |  com.amazonaws。 *Region*.bedrock-rutime  | 接口 | 
|  Amazon Kendra  |  com.amazonaws。 *Region*.kendra  | 接口 | 
|  Amazon EMR Serverless  |  com.amazonaws。 *Region*.emr-serverless  | 接口 | 
|  Amazon Q 开发者版（见此表后的注释）  |  com.amazonaws。 *Region*.q  | 接口 | 

**注意**  
Amazon Q 开发者版 VPC 端点目前仅在美国东部（弗吉尼亚州北部）区域提供。要从其他区域连接到该端点，您可以根据安全和基础设施首选项选择下列选项之一：  
**设置 NAT 网关。**在您的 VPC 的私有子网中配置 NAT 网关，为 Q 开发者版端点启用互联网连接。有关更多信息，请参阅[在 VPC 私有子网中设置 NAT 网关](https://repost.aws/knowledge-center/nat-gateway-vpc-private-subnet)。
**启用跨区域 VPC 端点访问权限。**为 Q 开发者版设置跨区域 VPC 端点访问权限。使用此选项可安全连接，而无需互联网访问权限。有关更多信息，请参阅[配置跨区域 VPC 端点访问权限](https://repost.aws/knowledge-center/vpc-endpoints-cross-region-aws-services)。

**注意**  
对于 Amazon Bedrock，接口端点服务名称 `com.amazonaws.Region.bedrock` 已被弃用。使用上表中列出的服务名称创建新的 VPC 端点。  
此外，在没有互联网接入的情况下，你无法从 Canv VPCs as 微调基础模型。这是因为 Amazon Bedrock 不支持 VPC 终端节点进行模型自定义 APIs。要了解有关在 Canvas 中微调基础模型的更多信息，请参阅 [微调基础模型](canvas-fm-chat-fine-tune.md)。

您还必须为 Amazon S3 添加终端节点策略，以控制 AWS 委托人对您的 VPC 终端节点的访问权限。有关如何更新 VPC 端点策略的信息，请参阅[使用端点策略控制对 VPC 端点的访问](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

以下是您可以使用的两个 VPC 端点策略。如果您只想授予对 Canvas 基本功能（例如导入数据和创建模型）的访问权限，请使用第一种策略。如果您要授予对 Canvas 中其他的[生成式人工智能功能](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html)的访问权限，请使用第二种策略。

------
#### [ Basic VPC endpoint policy ]

以下策略授予 VPC 端点必要的访问权限，以便在 Canvas 中进行基本操作。

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------
#### [ Generative AI VPC endpoint policy ]

以下策略授予 VPC 端点必要的访问权限，以便在 Canvas 中进行基本操作以及使用生成式人工智能基础模型。

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*",
                "arn:aws:s3:::*fmeval/datasets*",
                "arn:aws:s3:::*jumpstart-cache-prod*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------

### 步骤 3：授予 IAM 权限
<a name="canvas-vpc-configure-permissions"></a>

 SageMaker Canvas 用户必须具有必要的 AWS Identity and Access Management 权限才能允许连接到 VPC 终端节点。您授予权限的 IAM 角色必须与您在加入 Amazon A SageMaker I 域时使用的角色相同。您可以将 SageMaker AI 托管`AmazonSageMakerFullAccess`策略附加到用户的 IAM 角色，以向用户授予所需的权限。如果您需要更严格的IAM权限并改用自定义策略，请向用户的角色`ec2:DescribeVpcEndpointServices`授予权限。 SageMaker Canvas 需要这些权限来验证是否存在标准构建任务所需的 VPC 终端节点。如果检测到这些 VPC 端点，那么标准构建作业就会默认在 VPC 中运行。否则，它们将在默认 AWS 托管 VPC 中运行。

有关如何将 `AmazonSageMakerFullAccess` IAM 策略附加到用户的 IAM 角色的说明，请参阅[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

要向用户的 IAM 角色授予精细的 `ec2:DescribeVpcEndpointServices` 权限，请按以下步骤操作。

1. 登录 AWS 管理控制台 并打开 [IAM 控制台](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**角色**。

1. 在列表中，选择要授予其权限的角色的名称。

1. 选择**权限**选项卡。

1. 选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡并输入以下授予 `ec2:DescribeVpcEndpointServices` 权限的策略：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:DescribeVpcEndpointServices",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 选择**查看策略**，然后输入策略的**名称**（例如 `VPCEndpointPermissions`）。

1. 选择**创建策略**。

用户的 IAM 角色现在应该有权访问在 VPC 中配置的 VPC 端点。

### （可选）步骤 4：覆盖特定用户的安全组设置
<a name="canvas-vpc-configure-override"></a>

如果您是管理员，则可能希望不同的用户拥有不同的 VPC 设置，或特定于用户的 VPC 设置。当您覆盖特定用户的默认 VPC 安全组设置时，这些设置将传递到该用户的 SageMaker Canvas 应用程序。

在 Studio Classic 中设置新用户配置文件时，可以覆盖特定用户在 VPC 中可以访问的安全组。你可以使用 [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) SageMaker API 调用（或者使用 [create\$1user\$1profil](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_user_profile) e [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)），然后在中`UserSettings`，你可以为用户指`SecurityGroups`定。

# 使用设置与数据源的连接 OAuth
<a name="canvas-setting-up-oauth"></a>

以下部分描述了从 C SageMaker anvas 建立与数据源的 OAuth 连接时必须采取的步骤。 [OAuth](https://oauth.net/2/)是一个常用的身份验证平台，用于在不共享密码的情况下授予对资源的访问权限。使用 OAuth，您可以从 Canvas 快速连接到您的数据并将其导入以构建模型。Canvas 目前支持 OAuth Snowflake 和 Salesforce 数据云。

**注意**  
只能为每个数据源建立一个 OAuth 连接。

## 为 Sales OAuth force 数据云做好准备
<a name="canvas-setting-up-oauth-salesforce"></a>

要设置 Sales OAuth force 数据云，请按照以下一般步骤操作：

1. 登录 Salesforce Data Cloud。

1. 在 Salesforce Data Cloud 中，创建一个新的应用程序连接并执行以下操作：

   1. 启用 OAuth 设置。

   1. 当系统提示输入回调 URL（或访问数据的资源的 URL）时，请指定 Canvas 应用程序的 URL。Canvas 应用程序 URL 采用以下格式：`https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

   1. 复制用户密钥。

   1. 复制授权 URL 和令牌 URL。

有关在 Salesforce Data Cloud 中执行上述任务的更详细说明，请参阅 Data Wrangler 文档中有关从 Salesforce Data Cloud 导入数据的[从 Salesforce Data Cloud 导入数据](data-wrangler-import.md#data-wrangler-import-salesforce-data-cloud)。

启用从 Salesforce Data Cloud 的访问权限并获取您的连接信息后，您必须创建一个[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)密钥来存储该信息，并将其添加到您的 Amazon A SageMaker I 域或用户个人资料中。请注意，您可以在域和用户配置文件中同时添加密钥，但 Canvas 会首先在用户配置文件中查找密钥。

要在域或用户配置文件中添加密钥，请执行以下操作：

1. 前往 [Amazon SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker)。

1. 在导航窗格中选择**域**。

1. 从**域**列表中选择您的域。

   1. 如果要在域中添加密钥，请执行以下操作：

      1. 选择域。

      1. 在**域设置**页面上，选择**域设置**选项卡。

      1. 选择**编辑**。

   1. 如果要在用户配置文件中添加密钥，请执行以下操作：

      1. 选择用户的域。

      1. 在**域设置**页面上，选择用户配置文件。

      1. 在**用户详细信息**页面上，选择**编辑**。

1. 在导航窗格中，选择 **Canvas 设置**。

1. 对于**OAuth 设置**，请选择**添加 OAuth 配置**。

1. 对于**数据来源**，选择 **Salesforce Data Cloud**。

1. 对于**密钥设置**，选择**创建新密钥**。或者，如果您已经使用凭据创建了 AWS Secrets Manager 密钥，请输入该密钥的 ARN。如果创建新密钥，请执行以下操作：

   1. 对于**身份提供商**，选择 **SALESFORCE**。

   1. 对于**客户端 ID**、**客户端密钥**、**授权 URL** 和**令牌 URL**，请输入您在上一个过程中从 Salesforce Data Cloud 收集的所有信息。

1. 保存域或用户配置文件设置。

现在，您应该可以从 Canvas 创建与 Salesforce Data Cloud 中数据的连接。

## 为 Snowfla OAuth ke 做好准备
<a name="canvas-setting-up-oauth-snowflake"></a>

要为 Snowflake 设置身份验证，Canvas 支持身份提供商，您可以使用它们来代替让用户直接在 Canvas 中输入凭证。

以下是 Canvas 支持的身份供应商的 Snowflake 文档链接：
+ [Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html)
+ [Okta](https://docs.snowflake.com/en/user-guide/oauth-okta.html)
+ [Ping Federate](https://docs.snowflake.com/en/user-guide/oauth-pingfed.html)

下面的过程描述了您必须采取的一般步骤。有关执行这些步骤的更详细说明，请参阅 Data Wrangler 文档中有关从 Snowflake 导入数据的[设置 Snowflake 访问权限 OAuth](data-wrangler-import.md#data-wrangler-snowflake-oauth-setup)部分。

要设置 Snow OAuth flake，请执行以下操作：

1. 在身份提供商处将 Canvas 注册为应用程序。这需要指定一个重定向到 Canvas 的 URL，该 URL 应遵循以下格式：`https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

1. 在身份提供商中，创建一个向 Canvas 发送 OAuth 令牌的服务器或 API，以便 Canvas 可以访问 Snowflake。设置服务器时，请使用授权码和刷新令牌授权类型，指定访问令牌的有效期，并设置刷新令牌策略。此外，在 Snowflake 的外部 OAuth 安全集成中，启用。`external_oauth_any_role_mode`

1. 从身份提供商处获取以下信息：令牌 URL、授权 URL、客户端 ID、客户端密钥。对于 Azure AD，还要检索 OAuth 范围凭据。

1. 将上一步中检索到的信息存储在 AWS Secrets Manager 密钥中。

   1. 对于 Okta 和 Ping Federate，密钥的格式如下：

      ```
      {"token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token",
      "client_id":"example-client-id", "client_secret":"example-client-secret", "identity_provider":"OKTA"|"PING_FEDERATE",
      "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize"}
      ```

   1. 对于 Azure AD，密钥还应包括 OAuth 范围凭据作为`datasource_oauth_scope`字段。

配置身份提供商和密钥后，您必须创建一个用于存储信息的[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)密钥并将其添加到您的 Amazon A SageMaker I 域或用户个人资料中。请注意，您可以在域和用户配置文件中同时添加密钥，但 Canvas 会首先在用户配置文件中查找密钥。

要在域或用户配置文件中添加密钥，请执行以下操作：

1. 前往 [Amazon SageMaker AI 控制台](https://console.aws.amazon.com/sagemaker)。

1. 在导航窗格中选择**域**。

1. 从**域**列表中选择您的域。

   1. 如果要在域中添加密钥，请执行以下操作：

      1. 选择域。

      1. 在**域设置**页面上，选择**域设置**选项卡。

      1. 选择**编辑**。

   1. 如果要在用户配置文件中添加密钥，请执行以下操作：

      1. 选择用户的域。

      1. 在**域设置**页面上，选择用户配置文件。

      1. 在**用户详细信息**页面上，选择**编辑**。

1. 在导航窗格中，选择 **Canvas 设置**。

1. 对于**OAuth 设置**，请选择**添加 OAuth 配置**。

1. 对于**数据来源**，选择 **Snowflake**。

1. 对于**密钥设置**，选择**创建新密钥**。或者，如果您已经使用凭据创建了 AWS Secrets Manager 密钥，请输入该密钥的 ARN。如果创建新密钥，请执行以下操作：

   1. 对于**身份提供商**，选择 **SNOWFLAKE**。

   1. 对于**客户端 ID**、**客户端密钥**、**授权 URL** 和**令牌 URL**，请输入您在上一个过程中从身份供应商处收集的所有信息。

1. 保存域或用户配置文件设置。

现在，您应该能够从 Canvas 创建到 Snowflake 中的数据的连接。