### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When attempting to sign some document using Localstack KMS inside a lambda container (also running on localstack), the localstack KMS listener returns some unknown error.

The KMS key and lambda containers have been created from the same CDK app deploy, and I can see all the resources in the localstack web console.

The test application I'm using to prove this behaviour is available here:
https://github.com/LukaHedt/localstack_kms_test

Instructions to run are in the main Readme, and the `/localstack/Readme.md` file.

`aws-sdk` returns an unknown error, and the localstack docker logs that I receive are available here:
https://pastebin.com/58Z3fXi3

Have done an amount of testing and can confidently claim the following:
- Have tested on multiple machines with the same outcome
- Doesn’t make a difference if I specify an ARN or a KeyID in the signing request
- Downgrading localstack versions either didn’t make a difference, or I couldn’t actually deploy a localstack container with version 0.12.20 or lower.

### Expected Behavior

KMS Sign should return a signature for the given payload.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

Test application demonstrating the current behaviour is available here:

https://github.com/LukaHedt/localstack_kms_test

Full instructions to run are in the `/localstack/Readme.md` file.


### Environment

```markdown
- OS: MacOS Monteray 12.3
- LocalStack: 0.14.0
```


### Anything else?

_No response_
"""Generates the string representation of the given XML element."""
        if root is not None:
            return ETree.tostring(
                element=root, encoding=self.DEFAULT_ENCODING, xml_declaration=True
            )
class BaseRestResponseSerializer(ResponseSerializer, ABC):
    """
    The BaseRestResponseSerializer performs the basic logic for the ReST response serialization.
    In our case it basically only adds the request metadata to the HTTP header.
    """
    HEADER_TIMESTAMP_FORMAT = "rfc822"
    def _serialize_response(
        self,
        parameters: dict,
        response: HttpResponse,
        shape: Optional[Shape],
        shape_members: dict,
        operation_model: OperationModel,
    ) -> None:
        header_params, payload_params = self._partition_members(parameters, shape)
        self._process_header_members(header_params, response, shape)
        # "HEAD" responeses are basically "GET" responses without the actual body.
        # Do not process the body payload in this case (setting a body could also manipulate the headers)
        if operation_model.http.get("method") != "HEAD":
            self._serialize_payload(payload_params, response, shape, shape_members, operation_model)
        self._serialize_content_type(response, shape, shape_members)
        self._pional_traits_in_response(response, operation_model)
    def _serialize_payload(