### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

hi guys,

I'm stuggling to test our S3 logic locally. The service that calls localstack s3 is getting the following error:
`2023-11-13 15:45:57 com.amazonaws.services.s3.model.AmazonS3Exception: There were headers present in the request which were not signed (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: ea7d6d50-1e86-452c-a1c6-00fca1a237a5; S3 Extended Request ID: 9Gjjt1m+cjU4OPvX9O9/8RuvnG41MRb/18Oux2o5H5MY7ISNTlXN+Dz9IG62/ILVxhAGI0qyPfg=; Proxy: null)`

The localstack logs are the following:

> LocalStack version: 3.0.0
LocalStack build date: 2023-11-16
LocalStack build git hash: 3cd32364
2023-11-17T08:46:39.471  INFO --- [-functhread6] hypercorn.error            : Running on https://0.0.0.0:4566 (CTRL + C to quit)
2023-11-17T08:46:39.471  INFO --- [-functhread6] hypercorn.error            : Running on https://0.0.0.0:4566 (CTRL + C to quit)
2023-11-17T08:46:39.723  INFO --- [  MainThread] localstack.utils.bootstrap : Execution of "start_runtime_components" took 903.21ms
Ready.
2023-11-17T08:47:33.276  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.GetBucketAcl => 404 (NoSuchBucket)
2023-11-17T08:47:33.381  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.CreateBucket => 200
2023-11-17T08:47:33.406  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.GetBucketAcl => 404 (NoSuchBucket)
2023-11-17T08:47:33.413  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.CreateBucket => 200
2023-11-17T08:47:33.425  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.GetBucketAcl => 404 (NoSuchBucket)
2023-11-17T08:47:33.432  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.CreateBucket => 200
2023-11-17T08:47:40.277  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.HeadObject => 404 (NoSuchKey)
2023-11-17T08:47:40.278  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.HeadObject => 404 (NoSuchKey)
2023-11-17T08:47:40.281  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.HeadObject => 404 (NoSuchKey)
2023-11-17T08:47:40.330  WARN --- [   asgi_gw_1] l.s.s3.presigned_url       : Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2023-11-17T08:47:40.332  WARN --- [   asgi_gw_0] l.s.s3.presigned_url       : Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2023-11-17T08:47:40.334  WARN --- [   asgi_gw_2] l.s.s3.presigned_url       : Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2023-11-17T08:47:40.344  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.PutObject => 200
2023-11-17T08:47:40.344  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.PutObject => 200
2023-11-17T08:47:40.345  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.PutObject => 200
2023-11-17T08:47:40.372  WARN --- [   asgi_gw_0] l.s.s3.presigned_url       : Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2023-11-17T08:47:40.374  WARN --- [   asgi_gw_1] l.s.s3.presigned_url       : Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2023-11-17T08:47:40.376  WARN --- [   asgi_gw_2] l.s.s3.presigned_url       : Signatures do not match, but not raising an error, as S3_SKIP_SIGNATURE_VALIDATION=1
2023-11-17T08:47:40.378  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.PutObject => 200
2023-11-17T08:47:40.379  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.PutObject => 200
2023-11-17T08:47:40.380  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.PutObject => 200
2023-11-17T08:47:40.403  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:40.409  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:40.411  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:41.430  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:41.470  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:41.471  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:44.439  INFO --- [   asgi_gw_0] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:44.483  INFO --- [   asgi_gw_1] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:44.485  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.PutObject => 403 (AccessDenied)
2023-11-17T08:47:48.788  INFO --- [  MainThread] l.runtime.shutdown         : [shutdown] Stopping all services

Localstack docker-compose:

>   localstack-s3-bucket:
    image: localstack/localstack:3.0.0
    environment:
      SERVICES: s3
    ports:
      - 4566:4566

I added the following env vars to the service that calls localstack s3:

>  - "AWS_ACCESS_KEY_ID=test"
      - "AWS_SECRET_ACCESS_KEY=test"

Also I make sure that the AmazonS3 client creation gets the same as login and password.

I read few issues here and I found similar, but these was mostly for previous versions for localstack S3. Also tried the PROVIDER_OVERRIDE_S3 = asf, but as I know its for localstack 2.x, and not for 3, since in localstack 3 this is the default provider.

The code that calls S3 putobject is the following:

> @S3Retryable
    public void putObject(String fileName, InputStream inputStream, ObjectMetadata metadata) {
        final var url = s3storage.generatePresignedUrl(new GeneratePresignedUrlRequest(s3bucketName, fileName, HttpMethod.PUT));
        s3storage.upload(new PresignedUrlUploadRequest(url)
              .withInputStream(inputStream)
              .withMetadata(metadata));
    }

Can you please guys help me?

In case of any information needed, just reply and I'll try to tell them.





### Expected Behavior

There should not be 403 AccessDenied errors.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

To be honest, I was trying to create small code snippets, but I was not really able to reproduce the error with small codes, just with our framework that using Flink. Getting records from kafka, putting and deleting from S3.

### Environment

```markdown
- OS: Windows 10
- LocalStack: 3.0.0
- Java: 11
```


### Anything else?

_No response_
bucket_name = f"my-bucket-{short_uid()}"
        s3_create_bucket(
            Bucket=bucket_name,
            ACL="public-read",
            CreateBucketConfiguration={"LocationConstraint": "us-west-2"},
        )
        s3_vhost_client.list_s(Bucket=bucket_name)
        bucket_vhost_url = _bucket_url_vhost(bucket_name, region="us-west-2")
        response = .get(bucket_vhost_url)
        assert response.status_code == 200
        bucket_url = _bucket_url(bucket_name, region="us-west-2")
        response = .get(bucket_url)
        assert response.status_code == 200
        bucket_vhost_url = _bucket_url_vhost(bucket_name, region="us-east-2")
        response = .get(bucket_vhost_url)
        assert response.status_code == 301
        bucket_vhost_url = _bucket_url_vhost(bucket_name, region="us-east-1")
        response = .get(bucket_vhost_url)
        assert response.status_code == 200
        assert response.history[0].status_code == 307
    @markers.aws.validated
    def test_bucket_does_not_exist(self, s3_vhost_client, snapshot, aws_client):