【问题标题】:Not able to Put data/object into S3 bucket using Glue Job when KMS Encryption is enabled启用 KMS 加密后,无法使用 Glue 作业将数据/对象放入 S3 存储桶
【发布时间】:2018-09-01 06:52:32
【问题描述】:

我有一个 Glue 作业,它从一个 s3 存储桶中获取数据并将其传输/放入另一个存储桶。如果我禁用 KMS 加密但未启用 KMS 加密,我的工作正常。

错误:调用 o79.pyWriteDynamicFrame 时出错。拒绝访问(服务:Amazon S3;状态代码:403;错误代码:AccessDenied)

我也添加了这个政策

    {
          "Effect": "Allow",
          "Action": [
            "kms:Decrypt"
          ],
          "Resource": [
            "arn:aws:kms:region:account-name:key/kms-encryptionkey"
          ]
    }

建议我如何使用启用了 KMS 加密的 Glue 在 s3 存储桶之间传输数据。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-iam aws-glue aws-kms


    【解决方案1】:

    首先,您必须检查KMS key policy 是否允许访问 Glue 使用的 IAM 角色,因为仅 IAM 权限是不够的。您还可以在密钥策略中包含 IAM 角色,这将是一种方法。

    如果您想通过 IAM 策略授予 KMS 权限,请添加以下 API 操作:

    1> 要 PutObject 并对其进行加密,请将带有密钥 ID 的 "kms:GenerateDataKey" 添加为资源。

    2> 获取对象(并解密),"kms:Decrypt"(你有)

    【讨论】:

      【解决方案2】:

      在 Glue 作业中启用加密意味着您要使用 KMS 密钥写入对象,因此您必须允许“kms:Encrypt”操作。

      如果只有您的input data is SSE encrypted with KMS,则需要操作“kms:Decrypt”:

      如果您计划访问使用 SSE-KMS 加密的 Amazon S3 源和目标,请附加允许 AWS Glue 爬网程序、作业和开发终端节点解密数据的策略。

      【讨论】:

        猜你喜欢
        • 2019-11-10
        • 2017-06-10
        • 2018-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 2023-03-14
        相关资源
        最近更新 更多