### 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_
if service not in self._provider_config:
            self._provider_config[service] = provider
    def set_provider(self, service: str, provider: str):
        self._provider_config[service] = provider
    def bulk_set_provider_if_not_exists(self, services: List[str], provider: str):
        for service in services:
            self.set_provider_if_not_exists(service, provider)
    def __getitem__(self, item):
        return self.get_provider(item)
    def __setitem__(self, key, value):
        self.set_provider(key, value)
    def __len__(self):
        return len(self._provider_config)
    def __iter__(self):
        return self._provider_config.__iter__()
SERVICE_PROVIDER_CONFIG = ServiceProviderConfig("default")
SERVICE_PROVIDER_CONFIG.load_from_environment()
if is_in_docker:
    dirs = Directories.for_container()
else:
    dirs = Directories.from_config()
dirs.mkdirs()
for path in [dirs.config, os.path.join(dirs.tmp, ".localstack")]:
    if path and os.path.isfile(path):
        print(
            f"warning: the config file .localstack is deprecated and no longer used, "
            f"please remove it by running rm {path}"
        )