在 AWS Glue 中设置加密 - AWS Glue

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

在 AWS Glue 中设置加密

以下示例工作流程重点介绍在对 AWS Glue 使用加密时要配置的选项。该示例演示如何使用特定的 AWS Key Management Service (AWS KMS) 密钥,但您可以根据您的特定需求选择其他设置。此工作流程只重点介绍在设置 AWS Glue 时与加密有关的选项。

  1. 如果 AWS Glue 控制台的用户不使用允许所有 AWS Glue API 操作(例如,"glue:*")的权限策略,请确认允许以下操作:

    • "glue:GetDataCatalogEncryptionSettings"

    • "glue:PutDataCatalogEncryptionSettings"

    • "glue:CreateSecurityConfiguration"

    • "glue:GetSecurityConfiguration"

    • "glue:GetSecurityConfigurations"

    • "glue:DeleteSecurityConfiguration"

  2. 访问加密目录的任何客户端,即任何控制台用户、爬网程序、任务或开发终端节点都需要以下权限:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" ], "Resource": "<key-arns-used-for-data-catalog>" } }
  3. 访问加密连接密码的任何用户或角色都需要以下权限。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<key-arns-used-for-password-encryption>" } }
  4. 将加密数据写入 Amazon S3 的任何提取、转换和加载(ETL)任务的角色都需要以下权限。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "<key-arns-used-for-s3>" } }
  5. 任何写入加密 Amazon CloudWatch Logs 的 ETL 作业或爬网程序在密钥政策和 IAM policy 中都需要以下权限。

    在密钥政策(而不是在 IAM policy)中:

    { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "<arn of key used for ETL/crawler cloudwatch encryption>" }

    有关 密钥策略的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的使用 AWS KMS 中的密钥策略

    在 IAM policy 中,请附加 logs:AssociateKmsKey 权限:

    { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "logs:AssociateKmsKey" ], "Resource": "<arn of key used for ETL/crawler cloudwatch encryption>" }
  6. 任何使用加密作业书签的 ETL 作业都需要以下权限。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "<key-arns-used-for-job-bookmark-encryption>" } }
  7. 在 AWS Glue 控制台的导航窗格上选择 Settings (设置)

    1. 在存储库的 Data catalog settings (数据目录设置) 页面上,选择 Metadata encryption (元数据加密),加密您的数据目录。此选项将使用您选择的 AWS KMS 密钥加密数据目录中的所有对象。

    2. 对于 AWS KMS 密钥 (Amazon KMS 密钥),请选择 aws/glue。您也可以选择您创建的 AWS KMS 键。

    重要

    AWS Glue 只支持对称客户主密钥(CMK)。AWS KMS key (Amazon KMS 密钥) 列表仅显示对称密钥。但是,如果选择 Choose a AWS KMS key ARN (选择 Amazon KMS 密钥 ARN),控制台允许您为任何密钥类型输入 ARN。确保仅为对称密钥输入 ARN。

    启用了加密时,正在访问数据目录的客户端必须具有 AWS KMS 权限。

  8. 在导航窗格中,选择 Security configurations (安全配置)。安全配置是可用于配置 AWS Glue 过程的一组安全属性。然后选择 Add security configuration (添加安全配置)。在配置中,选择以下任何选项:

    1. 选择 S3 加密。对于 Encryption mode (加密模式),选择 SSE-KMS。对于 AWS KMS key (Amazon KMS 密钥),选择 aws/s3(确保用户有权限使用此密钥)。这支持任务写入 Amazon S3 的数据可以使用 AWS 托管的 AWS Glue AWS KMS 密钥。

    2. 选择 CloudWatch 日志加密,然后选择 CMK。(确保用户有权使用此密钥)。有关更多信息,请参阅《AWS Key Management Service 用户指南》中的使用 AWS KMS 加密 CloudWatch Logs 中的日志数据

      重要

      AWS Glue 只支持对称客户主密钥(CMK)。AWS KMS key (Amazon KMS 密钥) 列表仅显示对称密钥。但是,如果选择 Choose a AWS KMS key ARN (选择 Amazon KMS 密钥 ARN),控制台允许您为任何密钥类型输入 ARN。确保仅为对称密钥输入 ARN。

    3. 选择高级属性,然后选择任务书签加密。对于 AWS KMS key (Amazon KMS 密钥),选择 aws/glue(确保用户有权限使用此密钥)。这样,就可以使用 AWS Glue AWS KMS 密钥对写入 Amazon S3 的任务书签进行加密。

  9. 在导航窗格中,选择 Connections (站点到站点 VPN 连接)

    1. 选择 Add connection (添加连接) 以创建到作为 ETL 作业目标的 Java 数据库连接 (JDBC) 数据存储的连接。

    2. 要强制使用安全套接字层 (SSL) 加密,请选择 Require SSL connection (需要 SSL 连接),并测试您的连接。

  10. 在导航窗格中,选择作业

    1. 选择 Add job (添加作业) 以创建转换数据的作业。

    2. 在作业定义中,选择您创建的安全配置。

  11. 在 AWS Glue 控制台中,按需运行作业。验证任务写入的任何 Amazon S3 数据、任务写入的 CloudWatch Logs 以及任务书签都已全部加密。