### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When I try creating a new SNS topic subscription, where the filter policy scope is being set to MessageBody, resp. when I try specifying the FilterPolicyScope:

`aws --endpoint-url "http://localhost:4566" sns subscribe \
    --topic-arn arn:aws:sns:eu-central-1:000000000000:order-commands \
    --protocol sqs \
    --notification-endpoint arn:aws:sqs:eu-central-1:000000000000:order-commands-add-product \
    --attributes '{"RawMessageDelivery":"true","FilterPolicyScope":"MessageBody","FilterPolicy":"{\"messageType\":[\"add-product\"]}"}'`

The following error is being returned:

`An error occurred (InvalidParameter) when calling the Subscribe operation: AttributeName`

And the localstack logs show:

`2022-12-29T04:01:26.567  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS sns.Subscribe => 400 (InvalidParameter)`

If I try without the mentioned parameter, the subscription is being created successfully - but in this case, the filter does not apply when sending messages to the topic, as expected because the filter then only looks for message attributes:

`2022-12-29T04:08:00.375  INFO --- [   asgi_gw_3] localstack.request.aws     : AWS sns.Publish => 200
2022-12-29T04:08:00.377  INFO --- [ncthread1819] l.services.sns.provider    : SNS filter policy {'messageType': ['add-product']} does not match attributes {}
`

### Expected Behavior

Although I have not tried right now against the real AWS API, I can see in the AWS documentation, it is supported resp. one of the newer features they added.

Having double checked my local dependency versions, I would also expect that the latest version of localstack, supports message body based filter policy as well 😄 

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker-compose -f ${COMPOSE_FILE_INFRA} up -d

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

Using terraform locally, just for reference:

    resource "aws_sns_topic" "order-commands" {
        name = "order-commands"
    }

    resource "aws_sqs_queue" "order-commands-add-product" {
        name = "order-commands-add-product"
    }

    resource "aws_sns_topic_subscription" "order-commands-subscription1" {
        topic_arn = aws_sns_topic.order-commands.arn
        protocol  = "sqs"
        endpoint  = aws_sqs_queue.order-commands-add-product.arn
        raw_message_delivery = true
        filter_policy = jsonencode(
           {
              "messageType" = [
                  "add-product"
              ]
           }
        )
        filter_policy_scope = "MessageBody"
    }

### Environment

```markdown
- OS: MacOS Monterey (M1 Pro)
- LocalStack: 1.3.1
```


### Anything else?

_No response_
self,
        sns_client,
        sns_create_topic,
        sqs_create_queue,
        sqs_client,
        sns_create_s,
        snapshot,
    ):
        topic_arn = sns_create_topic()["TopicArn"]
        queue_url = sqs_create_queue()
        sns_create_s(topic_arn=topic_arn, queue_url=queue_url)
        
        message = 'ö§a1"_!?,. £$-'
        sns_client.publish(TopicArn=topic_arn, Message=message)
        response = sqs_client.receive_message(
            QueueUrl=queue_url, VisibilityTimeout=0, WaitTimeSeconds=4
        )
        snapshot.match("received-message", response)
    @pytest.mark.aws_validated
    def test_subscribe_with_invalid_protocol(