使用加密您的 SageMaker 画布数据 Amazon KMS - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用加密您的 SageMaker 画布数据 Amazon KMS

在使用 Amazon SageMaker Canvas 时,您可能有想要加密的数据,例如您的私人公司信息或客户数据。 SageMaker Canvas Amazon Key Management Service 用于保护您的数据。 Amazon KMS 是一项服务,您可以使用它来创建和管理用于加密数据的加密密钥。有关的更多信息 Amazon KMS,请参阅Amazon Key Management ServiceAmazon KMS 开发人员指南》

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

在 C SageMaker anvas 中加密你的数据

使用 SageMaker Canvas,您可以使用两个不同的 Amazon KMS 加密密钥在 SageMaker Canvas 中加密数据,您可以在设置域名时指定这些密钥。

  • KmsKeyID— SageMaker Canvas 使用一个密钥来加密为您的 Canvas 应用程序创建的 Amazon SageMaker Studio 私有空间,其中包括临时应用程序存储、可视化和计算任务(例如构建模型)。您可以使用默认的 Amazon 托管密钥,也可以指定自己的托管密钥。要了解有关 Studio 空间和 Canvas 应用程序存储空间的更多信息,请参阅将 SageMaker Canvas 应用程序数据存储在您自己的 SageMaker空间中

  • S3KMSKeyId— 您还可以指定 SageMaker Canvas 用于长期存储模型对象和数据集的可选密钥,这些对象和数据集存储在您账户的区域默认 SageMaker S3 存储桶中。

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

先决条件

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

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

  1. 打开Amazon KMS 控制台

  2. 密钥策略部分中,选择切换到策略视图

  3. 修改密钥的策略,向 IAM 角色授予 kms:GenerateDataKeykms: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": { "Amazon": "<arn:aws:iam::111122223333:role/Jane>" }, "Resource": "*" }
  4. 选择保存更改

比较不可取的方法是修改用户的 IAM 角色,以授予用户使用或管理 KMS 密钥的权限。如果使用这种方法,KMS 密钥策略还必须允许通过 IAM 进行访问管理。要了解如何通过用户的 IAM 角色授予 KMS 密钥权限,请参阅《Amazon KMS 开发人员指南》中的在 IAM 策略声明中指定 KMS 密钥

时间序列预测的先决条件

要在 SageMaker Canvas 中使用您的 Amazon KMS 密钥加密时间序列预测模型,您必须修改用于将对象存储到 Amazon S3 的 KMS 密钥的密钥策略。您的密钥策略必须向授予权限AmazonSageMakerCanvasForecastRole,这 SageMaker 将在您向用户授予时间序列预测权限时创建。Amazon Forecas AmazonSageMakerCanvasForecastRole t 使用在 SageMaker Canvas 中执行时间序列预测操作。您的 KMS 密钥必须向该角色授予权限,以确保对数据进行加密以进行时间序列预测。

要修改 KMS 密钥策略的权限以允许加密时间序列预测,请执行以下操作。

  1. 打开Amazon KMS 控制台

  2. 密钥策略部分中,选择切换到策略视图

  3. 修改密钥的策略,使其具有以下示例中指定的权限:

    { "Sid": "Enable IAM Permissions for Amazon Forecast KMS access", "Effect": "Allow", "Principal": { "Amazon": "<arn:aws:iam::111122223333:role/service-role/AmazonSagemakerCanvasForecastRole-111122223333>" }, "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlainText", "kms:Decrypt" ], "Resource": "*" }
  4. 选择保存更改

现在,您可以使用 KMS 密钥在 C SageMaker anvas 中加密时间序列预测操作。

注意

只有在使用 IAM 角色设置方法配置时间序列预测时,才需要以下权限。在用户的 IAM 角色中添加以下权限策略。您还必须使用 Amazon Forecast 所需的更新策略来更新密钥策略。有关时间序列预测所需权限的更多信息,请参阅 授予用户执行时间序列预测的权限

{ "Sid": "Enable IAM Permissions for Amazon Forecast KMS access", "Effect": "Allow", "Principal": { "AWS": "<arn:aws:iam::111122223333:role/AmazonSageMaker-111122223333>" }, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey" "kms:GenerateDataKeyWithoutPlainText", ], "Resource": "*" }

在 C SageMaker anvas 应用程序中加密您的数据

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

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

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

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

  2. 对于加密密钥,请选择输入 KMS 密钥 ARN

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

加密保存在亚马逊 S3 中的 SageMaker 画布数据

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

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

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

  3. 对于加密密钥,请选择输入 KMS 密钥 ARN

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

从 Amazon S3 导入加密数据集

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

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

"kms:Decrypt", "kms:GenerateDataKey"

要了解如何编辑角色的 IAM 权限,请参阅《IAM 用户指南》中的添加和删除 IAM 身份权限。有关 KMS 密钥的更多信息,请参阅《Amazon KMS 开发人员指南》中的 Amazon Key Management Service中的密钥策略

常见问题解答

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

答:不是。 SageMaker Canvas 可能会暂时缓存您的密钥或将其传递给其他 Amazon 服务(例如自动驾驶),但是 SageMaker Canvas 不会保留您的 KMS 密钥。

答:用户的 IAM 角色可能没有使用该 KMS 密钥的权限。要授予用户权限,请参阅 先决条件 。另一个可能的错误是,您的 Amazon S3 存储桶策略要求使用与您在域中指定的 KMS 密钥不匹配的特定 KMS 密钥。请务必为 Amazon S3 存储桶和域名指定相同的 KMS 密钥。

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

答:不是, SageMaker 为你创建这个存储桶。

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

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

答:能。您必须授予 KMS 密钥更多权限,才能执行加密时间序列预测。有关如何修改密钥策略以授予时间序列预测权限的更多信息,请参阅 时间序列预测的先决条件