SQS для нескольких учетных записей — установка Lambda выдает ошибку. Роль выполнения не имеет разрешений на вызов receiveMessage в SQS.

Я пытаюсь настроить связь между учетными записями из очереди SQS в функцию Lambda. Оба эти ресурса включеныeu-central-1регион, но в 2 разных учетных записях AWS.

Моя установка ниже

  1. AccountAимеет лямбда-функцию
  2. AccountBимеет очередь SQS

Я создал роль IAM для учетной записи A, и она привязана к функции Lambda (AccountA_LAMBDA_EXECUTION_ROLE). Роль IAM имеет следующие разрешения

      {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "sqs:DeleteMessage",
                "sqs:GetQueueUrl",
                "sqs:ListDeadLetterSourceQueues",
                "sqs:ChangeMessageVisibility",
                "sqs:PurgeQueue",
                "sqs:ReceiveMessage",
                "sqs:DeleteQueue",
                "sqs:SendMessage",
                "sqs:GetQueueAttributes",
                "sqs:ListQueueTags",
                "sqs:CreateQueue",
                "sqs:SetQueueAttributes"
            ],
            "Resource": "<AccountB_SQS_QUEUE_ARN>"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "sqs:ListQueues",
            "Resource": "*"
        }
    ]
}

Очередь SQS имеет следующую политику доступа

      {
  "Version": "2012-10-17",
  "Id": "Queue1_Policy_UUID",
  "Statement": [
    {
      "Sid": "Queue1_AllActions",
      "Effect": "Allow",
      "Principal": {
        "AWS": "<AccountA_LAMBDA_EXECUTION_ROLE>"
      },
      "Action": "sqs:*",
      "Resource": "<AccountB_SQS_QUEUE_ARN>"
    }
  ]
}

Я использую AWS CLI для добавления триггера Lambda, так чтоAccountB_SQS_QUEUEможно добавить в качестве триггераAccountA_LAMBDA_FUNCTION. Ниже приведена команда AWS CLI.

      aws lambda create-event-source-mapping --function-name AccountA_LAMBDA_FUNCTION_NAME --event-source-arn AccountB_SQS_QUEUE_ARN --profile AccountA_PROFILE --region eu-central-1

Но эта команда не удалась с ошибкой

      An error occurred (InvalidParameterValueException) when calling the CreateEventSourceMapping operation: The provided execution role does not have permissions to call ReceiveMessage on SQS

Я следую этому руководству от AWS, но это не успех. Что здесь пошло не так

0 ответов

Другие вопросы по тегам