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

在 Amazon Glue 中设置加密

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

  1. 如果 Amazon Glue 控制台的用户不使用允许所有 Amazon 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>" }

    有关 密钥策略的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的使用 Amazon 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. 在 Amazon Glue 控制台的导航窗格上选择 Settings (设置)

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

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

    重要

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

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

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

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

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

      重要

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

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

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

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

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

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

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

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

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