Apache NiFi пишет в зашифрованную очередь SQS - PullRequest
0 голосов
/ 06 октября 2018

Мы сталкиваемся с очень странным состоянием с Apache NiFi и SQS.Мы используем сервис AWSCredentialsProviderControllerService для управления нашей аутентификацией.Если мы используем незашифрованную очередь, она работает нормально, однако, если используется зашифрованная очередь, она не выходит из строя, но ничего не записывается.Похоже, что он ничего не генерирует ни в журналах NiFi, ни в облачных следах.Просто подумал, есть ли что-то особенное, что нужно сделать, чтобы поддержать это условие.Если это не удается, мы не можем выяснить, где это происходит.Любые предложения или идеи будут с благодарностью.

1 Ответ

0 голосов
/ 08 октября 2018

Мне удалось воспроизвести ошибку без вывода сообщений с PutSQS при следующих условиях:

  • Очередь SQS, настроенная для шифрования на стороне сервера с использованием пользовательского главного ключа клиента KMS, а не ключа AWS по умолчанию
  • Учетные данные AWS, используемые NiFi, имели разрешение на отправку сообщения, но не позволяли использовать пользовательский ключ KMS

Решение заключалось в том, чтобы предоставить учетным данным AWS от NiFi разрешения на использование как SQS, так иKMS.Ниже приведен пример политики, задокументированный в Какие разрешения AWS KMS мне нужны для использования SSE для Amazon SQS? :

{
   "Version": "2012-10-17",
      "Statement": [{
         "Effect": "Allow",
         "Action": [
            "kms:GenerateDataKey",
            "kms:Decrypt"
         ],
         "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
         }, {
         "Effect": "Allow",
         "Action": [
            "sqs:SendMessage",
            "sqs:SendMessageBatch"
         ],
         "Resource": "arn:aws:sqs:*:123456789012:MyQueue"
      }]
}
...