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

使用 Amazon KMS 加密 SageMaker Canvas 数据

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

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

在 SageMaker Canvas 中加密数据

通过 SageMaker Canvas,您可以使用两个不同的 Amazon KMS 加密密钥来加密 SageMaker Canvas 中的数据,您可以在设置域时指定这两个密钥。这两个密钥可以相同,也可以不同。SageMaker Canvas 将一个密钥用于临时应用程序存储、可视化或计算目的(如构建模型)。您可以使用默认的 Amazon 托管密钥,也可以指定自己的密钥。您还可以指定 SageMaker Canvas 用于长期存储模型对象和数据集的可选密钥,这些对象和数据集将存储在您账户的区域默认 SageMaker S3 存储桶中。

先决条件

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

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

  1. 打开 Amazon KMS 控制台

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

  3. 修改密钥的策略,向 IAM 角色授予 kms:GenerateDataKeykms:Decrypt 操作权限。您可以添加类似于以下内容的声明:

    { "Sid": "ExampleStmt", "Action": [ "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 Forecast 使用 AmazonSageMakerCanvasForecastRole 在 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. 选择保存更改

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

注意

只有在使用 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": "*" }

在 SageMaker Canvas 应用程序中加密数据

您可以在 SageMaker Canvas 中使用的第一个 KMS 密钥用于加密存储在 Amazon Elastic Block Store (Amazon EBS) 卷和 SageMaker 在域中创建的 Amazon Elastic File System 中的应用程序数据。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

加密保存在 Amazon S3 中的 SageMaker Canvas 数据

您可以指定的第二个 KMS 密钥用于 SageMaker Canvas 存储到 Amazon S3 的数据。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 笔记本。

  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 导入已使用 Amazon KMS 加密的数据,则必须授予用户的 IAM 角色额外权限。

要授予用户将加密数据集从 Amazon S3 导入 SageMaker Canvas 的权限,请在用户配置文件使用的 IAM 执行角色中添加以下权限。

"kms:Decrypt", "kms:GenerateDataKey"

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

常见问题解答

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

答:否。SageMaker Canvas 可能会暂时缓存您的密钥或将其传递给其他 Amazon 服务(如 Autopilot),但 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 密钥更多权限,才能执行加密时间序列预测。有关如何修改密钥策略以授予时间序列预测权限的更多信息,请参阅 时间序列预测的先决条件