在 AWS Glue 中设置加密
以下示例工作流程重点介绍在对 AWS Glue 使用加密时要配置的选项。该示例演示如何使用特定的 AWS Key Management Service (AWS KMS) 密钥,但您可以根据您的特定需求选择其他设置。此工作流程只重点介绍在设置 AWS Glue 时与加密有关的选项。
-
如果 AWS Glue 控制台的用户不使用允许所有 AWS Glue API 操作(例如,
"glue:*"
)的权限策略,请确认允许以下操作:"glue:GetDataCatalogEncryptionSettings"
"glue:PutDataCatalogEncryptionSettings"
"glue:CreateSecurityConfiguration"
"glue:GetSecurityConfiguration"
"glue:GetSecurityConfigurations"
"glue:DeleteSecurityConfiguration"
-
访问加密目录的任何客户端,即任何控制台用户、爬网程序、任务或开发终端节点都需要以下权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" ], "Resource": "
<key-arns-used-for-data-catalog>
" } } -
访问加密连接密码的任何用户或角色都需要以下权限。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "
<key-arns-used-for-password-encryption>
" } } -
将加密数据写入 Amazon S3 的任何提取、转换和加载(ETL)任务的角色都需要以下权限。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "
<key-arns-used-for-s3>
" } } -
任何写入加密 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>
" } -
任何使用加密作业书签的 ETL 作业都需要以下权限。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "
<key-arns-used-for-job-bookmark-encryption>
" } } -
在 AWS Glue 控制台的导航窗格上选择 Settings (设置)。
-
在存储库的 Data catalog settings (数据目录设置) 页面上,选择 Metadata encryption (元数据加密),加密您的数据目录。此选项将使用您选择的 AWS KMS 密钥加密数据目录中的所有对象。
-
对于 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 权限。
-
-
在导航窗格中,选择 Security configurations (安全配置)。安全配置是可用于配置 AWS Glue 过程的一组安全属性。然后选择 Add security configuration (添加安全配置)。在配置中,选择以下任何选项:
-
选择 S3 加密。对于 Encryption mode (加密模式),选择 SSE-KMS。对于 AWS KMS key (Amazon KMS 密钥),选择 aws/s3(确保用户有权限使用此密钥)。这支持任务写入 Amazon S3 的数据可以使用 AWS 托管的 AWS Glue AWS KMS 密钥。
-
选择 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。
-
选择高级属性,然后选择任务书签加密。对于 AWS KMS key (Amazon KMS 密钥),选择 aws/glue(确保用户有权限使用此密钥)。这样,就可以使用 AWS Glue AWS KMS 密钥对写入 Amazon S3 的任务书签进行加密。
-
-
在导航窗格中,选择 Connections (站点到站点 VPN 连接)。
-
选择 Add connection (添加连接) 以创建到作为 ETL 作业目标的 Java 数据库连接 (JDBC) 数据存储的连接。
-
要强制使用安全套接字层 (SSL) 加密,请选择 Require SSL connection (需要 SSL 连接),并测试您的连接。
-
-
在导航窗格中,选择作业。
-
选择 Add job (添加作业) 以创建转换数据的作业。
-
在作业定义中,选择您创建的安全配置。
-
-
在 AWS Glue 控制台中,按需运行作业。验证任务写入的任何 Amazon S3 数据、任务写入的 CloudWatch Logs 以及任务书签都已全部加密。