Невозможно поместить данные / объект в корзину S3 с помощью Glue Job, когда включено шифрование KMS

У меня есть задание Glue, которое извлекает данные из одного ведра s3 и передает / помещает их в другое. Моя работа работает правильно, если я отключу шифрование KMS, но не работаю с включенным шифрованием KMS.

Ошибка: произошла ошибка при вызове o79.pyWriteDynamicFrame. Отказано в доступе (услуга: Amazon S3; код состояния: 403; код ошибки: доступ запрещен)

Я также добавил эту политику

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

Предложите, как я могу передавать данные между ведрами s3 с помощью Glue с включенным шифрованием KMS.


person Yatendra Yadav    schedule 22.08.2018    source источник


Ответы (2)


Во-первых, вы должны проверить, действительно ли Политика ключей KMS разрешает доступ к роли IAM, используемой Glue, поскольку только разрешения IAM недостаточно. Вы также можете включить роль IAM в ключевую политику, и это будет один из подходов.

Если вы хотите предоставить разрешение KMS через политику IAM, добавьте следующие действия API:

1> Чтобы PutObject и зашифровать его, добавьте "kms:GenerateDataKey" с идентификатором ключа в качестве ресурса.

2> Чтобы GetObject (и расшифровать его), "kms:Decrypt" (который у вас есть)

person sudo    schedule 23.08.2018

Включение шифрования в задании Glue означает, что вы хотите записывать объекты с помощью ключа KMS, поэтому вы должны разрешить действие «kms: Encrypt».

Действие «kms: Decrypt» необходимо, если только ваш входные данные зашифрованы SSE с помощью KMS:

Если вы планируете получить доступ к источникам и целям Amazon S3, зашифрованным с помощью SSE-KMS, прикрепите политику, которая позволяет сканерам, заданиям и конечным точкам разработки AWS Glue расшифровывать данные.

person Yuriy Bondaruk    schedule 23.08.2018