授予用户上传本地文件的权限 - Amazon SageMaker

授予用户上传本地文件的权限

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

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

SageMaker 域设置方法

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

注意

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

下面的步骤说明了如何通过编辑 SageMaker 管理控制台中的域设置来打开此选项。

  1. 转到位于 https://console.aws.amazon.com/sagemaker/ 的 SageMaker 管理控制台。

  2. 在左侧导航窗格中,选择

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

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

  5. 前往 Canvas 部分并选择编辑

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

  7. 选择提交

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

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

Amazon S3 存储桶方法

如果您希望手动将 CORS 配置附加到 SageMaker Amazon S3 存储桶,请使用以下过程。

  1. https://console.aws.amazon.com/s3/ 上登录。

  2. 选择存储桶。如果您的域使用 SageMaker 创建的默认存储桶,则存储桶的名称将使用以下规律:s3://sagemaker-{Region}-{your-account-id}

  3. 选择权限

  4. 导航到跨源资源共享 (CORS)

  5. 选择编辑

  6. 添加以下 CORS 策略:

    [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "POST" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
  7. 选择保存更改

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

完成该过程之后,您应该具有:

  • 分配给每个用户的 IAM 角色。

  • 每个用户的 Amazon SageMaker Studio Classic 运行时权限。SageMaker Canvas 使用 Studio Classic 来运行用户的命令。

  • 如果用户正在从本地计算机上传文件,则其 Amazon S3 存储桶会附加 CORS 策略。

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