«Неподдерживаемый тип шифрования» в пакетных операциях S3 - PullRequest
0 голосов
/ 15 мая 2019

Я настраиваю пакетные операции на моем хранилище и сталкиваюсь с проблемой (я полагаю, на основе разрешений), когда операция пытается получить доступ к зашифрованному файлу манифеста.

Я настроил файл manifest.csv, в котором точно перечислены файлы, с которыми нужно работать.Я пытаюсь вызвать лямбда-функцию для этих файлов.Однако при каждом запуске операции возвращается «Используемый неподдерживаемый тип шифрования: SSE_KMS».Я считаю, что это какой-то доступ, который нужно определить, поэтому я попытался ослабить ограничения на мои политики и роль IAM, чтобы посмотреть, поможет ли это, но не помогло.Я пытался найти документацию по ключам KMS с помощью пакетных операций, но не нашел ни одной.

Роль, которую я использую, S3-связанную политику:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Роль доверительных отношений:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "batchoperations.s3.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Политика доступа к ключу KMS:

{
            "Sid": "Allow use of the key.",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<Account #>:role/<Role Name>"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }

Мне кажется, что я что-то упустил.Кто-нибудь может поймать что-то, что я пропустил?Пакетные операции должны иметь доступ к зашифрованному файлу manifest.csv.


Добавление:

Выбор манифеста

ВыборЛямбда

Выбор роли, упомянутой выше

Сбой до того, как я смогу его запустить.

1 Ответ

0 голосов
/ 15 мая 2019

Это не проблема политики, но на самом деле просто проблема со значением, которое вы отправляете как SSE_KMS, недопустима. Как упомянуто в документации :

x-amz-server-side--encryption Указывает алгоритм шифрования на стороне сервера, используемый при создании объекта Amazon S3.

Тип: String

Допустимое значение: aws: kms, AES256

Для шифрования KMS вы должны использовать aws:kms в качестве значения, которое вы отправляете через (отправить в виде строки).Я не знаю, на каком языке ваша Lambda, но вы можете взглянуть на соответствующий SDK для него ( вот тот, для node.js , который вы можете увидеть в свойствах putObject ServerSideEncryption: AES256 | aws:kms)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...