在 AWS Glue 中设置加密 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

在 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 策略)中都需要以下权限。

    { "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 Developer Guide 中的在 AWS KMS 中使用密钥策略

  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加密。此选项将使用您选择的 AWS KMS 密钥加密Data Catalog中的所有对象。

    2. 对于 AWS KMS key (AWS KMS 密钥),选择 aws/glue。您还可以选择您创建的客户主密钥 (CMK)。

    重要

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

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

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

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

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

      重要

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

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

  9. 在导航窗格中,选择 Connections

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

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

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

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

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

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