### 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_
try:
                shape = operation_model.service_model.shape_for(error_shape_name)
                if not shape.metadata.get("exception", False):
                    raise ProtocolSerializerError(
                        f"The given error ({error_shape_name}) corresponds to a non-exception"
                        f"shape."
                    )
            except NoShapeFoundError as e:
                raise ProtocolSerializerError(
                    f"Error to serialize ({error_shape_name}) neither is a CommonServiceException, nor is its error "
                    f"shape contained in the service's specification ({operation_model.service_model.service_name})."
                ) from e
            error_spec = shape.metadata.get("error", {})
            status_code = error_spec.get("httpStatusCode")
            # If the code is not explicitly set, it's typically the shape's name
            code = error_spec.get("code", shape.name)
            # The senderFault is only set if the "senderFault" is true
            # (there are no examples which show otherwise)
            sender_fault = error_spec.get("senderFault")
        # Some specifications do not contain the httpStatusCode field.
        # These errors typically have the http status code 400.
        serialized_response.status_code = status_code or 400
        self._serialize_error(
            error, code, sender_fault, serialized_response, shape, operation_model
        )
        serialized_response = self._pional_traits_in_response(
            serialized_response, operation_model
        )
        return serialized_response
    def _serialize_response(