### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

We are currently using Localstack 0.12.19.1 within our testsuite. After changing to latest v0.12.20 testsuite fails. Apparently _s3.putObject_ does not work anymore.

Within the testsuite we are trying to upload a CSV file to a S3 bucket. This has worked fine when using localstack 0.12.19.1


This is the Stacktrace from our testsuite:
```
 (Service: Amazon S3; Status Code: 500; Error Code: 500 ; Request ID: null; S3 Extended Request ID: null; Proxy: null)
com.amazonaws.services.s3.model.AmazonS3Exception:  (Service: Amazon S3; Status Code: 500; Error Code: 500 ; Request ID: null; S3 Extended Request ID: null; Proxy: null), S3 Extended Request ID: null
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1862)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1415)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1384)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1154)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:811)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:779)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:753)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:713)
	at app//com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:695)
	at app//com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:559)
	at app//com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:539)
	at app//com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5445)
	at app//com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5392)
	at app//com.amazonaws.services.s3.AmazonS3Client.access$300(AmazonS3Client.java:421)
	at app//com.amazonaws.services.s3.AmazonS3Client$PutObjectStrategy.invokeServiceCall(AmazonS3Client.java:6520)
	at app//com.amazonaws.services.s3.AmazonS3Client.uploadObject(AmazonS3Client.java:1857)
	at app//com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1817)
	at app//com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:3983)
	at app//org.zalando.app.supplierupload.AwsTestSetup.givenSupplierUploadsMappingsToFolder(AwsTestSetup.kt:53)
```

This is the output of the docker container:
```
localstack_1  | 2021-11-10T14:40:08:WARNING:localstack.utils.server.http2_server: Error in proxy handler for request PUT http://localhost:4566/upload-bucket-65fed672-1efa-4e56-8067-90017323b213/uploads/my-file-b64fe4b9-ee41-45cc-9ba6-7542c1f4c485: list index out of range Traceback (most recent call last):
localstack_1  |   File "/opt/code/localstack/localstack/utils/server/http2_server.py", line 159, in index
localstack_1  |     result = await run_sync(handler, request, data)
localstack_1  |   File "/opt/code/localstack/localstack/utils/async_utils.py", line 86, in run_sync
localstack_1  |     return await loop.run_in_executor(thread_pool, copy_context().run, func_wrapped)
localstack_1  |   File "/opt/code/localstack/localstack/utils/run.py", line 150, in run
localstack_1  |     result = self.func(self.params, **kwargs)
localstack_1  |   File "/opt/code/localstack/localstack/utils/async_utils.py", line 31, in _run
localstack_1  |     return fn(*args, **kwargs)
localstack_1  |   File "/opt/code/localstack/localstack/services/generic_proxy.py", line 544, in handler
localstack_1  |     server_address=parsed_url.netloc,
localstack_1  |   File "/opt/code/localstack/localstack/utils/aws/request_context.py", line 206, in modify_and_forward
localstack_1  |     method, path, data_bytes=data_bytes, headers=headers, *args, **kwargs
localstack_1  |   File "/opt/code/localstack/localstack/services/generic_proxy.py", line 329, in modify_and_forward
localstack_1  |     method=method, path=path, data=data, headers=headers
localstack_1  |   File "/opt/code/localstack/localstack/services/edge.py", line 182, in forward_request
localstack_1  |     result = do_forward_request(api, method, path, data, headers, port=port)
localstack_1  |   File "/opt/code/localstack/localstack/services/edge.py", line 237, in do_forward_request
localstack_1  |     result = do_forward_request_inmem(api, method, path, data, headers, port=port)
localstack_1  |   File "/opt/code/localstack/localstack/services/edge.py", line 269, in do_forward_request_inmem
localstack_1  |     server_address=server_address,
localstack_1  |   File "/opt/code/localstack/localstack/services/generic_proxy.py", line 404, in modify_and_forward
localstack_1  |     updated_response = update_listener.return_response(**kwargs)
localstack_1  |   File "/opt/code/localstack/localstack/services/s3/s3_listener.py", line 1434, in return_response
localstack_1  |     send_notifications(method, bucket_name, object_path, version_id, headers)
localstack_1  |   File "/opt/code/localstack/localstack/services/s3/s3_listener.py", line 247, in send_notifications
localstack_1  |     headers,
localstack_1  |   File "/opt/code/localstack/localstack/services/s3/s3_listener.py", line 283, in send_notification_for_subscriber
localstack_1  |     region = aws_stack.extract_region_from_arn(notif["Queue"])
localstack_1  |   File "/opt/code/localstack/localstack/utils/aws/aws_stack.py", line 492, in extract_region_from_arn
localstack_1  |     return parts[3] if len(parts) > 1 else None
localstack_1  | IndexError: list index out of range
```



### Expected Behavior

We'd expect the _s3.putObject_ command to succeed  as when using the previous localstack version

### 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`)

We are using Docker compose

```
version: '3.8'

services:
  localstack:
    image: localstack/localstack:0.12.20
    network_mode: bridge
    ports:
      - "4566:4566"
      - "4571:4571"
    environment:
      - SERVICES=s3,sqs
      - DEBUG=${DEBUG- }
      - DATA_DIR=${DATA_DIR- }
      - LAMBDA_EXECUTOR=${LAMBDA_EXECUTOR- }
      - LOCALSTACK_API_KEY=${LOCALSTACK_API_KEY- }
      - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOST_TMP_FOLDER="${TMPDIR:-/tmp}/localstack"
    volumes:
      - "${TMPDIR:-/tmp}/localstack:/tmp/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"

```

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

```kotlin
val s3: AmazonS3 = ...
val sqs: AmazonSQS = ...
val csv: String = ...
val directory: String = ...
val uniqueFile: String = ...

// create bucket and queue
val bucket = s3.createBucket("upload-bucket")
val queue = sqs.createQueue("queueName")

// Add an SQS queue notification.
val notificationConfiguration = BucketNotificationConfiguration()

notificationConfiguration.addConfiguration(
      "sqsQueueConfig",
     QueueConfiguration(queue.queueUrl, EnumSet.of(S3Event.ObjectCreatedByPut))
)

// Create the notification configuration request and set the bucket notification configuration.
val request = SetBucketNotificationConfigurationRequest(
       bucket.name, notificationConfiguration
 )

s3.setBucketNotificationConfiguration(request)

...

// this fails after upgrading to latest localstack
s3.putObject(bucket.name, "$directory/$uniqueFile", csv)
```

### Environment

```markdown
- OS: Mac OS 10.15.7
- Java: AdoptOpenJDK-11.0.11+9
- AWS SDK: 'com.amazonaws:aws-java-sdk-bom:1.12.107'
- LocalStack: 0.12.20
```


### Anything else?

_No response_
"""Return whether we are executing in the context of an internal API call, i.e.,
    the case where one API uses a boto3 client to call another API internally."""
    auth_header = headers.get("Authorization") or ""
    header_value = "Credential=%s/" % INTERNAL_AWS_ACCESS_KEY_ID
    return header_value in auth_header
def set_internal_auth(headers):
    authorization = headers.get("Authorization") or ""
    authorization = re.sub(
        r"Credential=[^/]+/",
        "Credential=%s/" % INTERNAL_AWS_ACCESS_KEY_ID,
        authorization,
    )
    if authorization.startswith("AWS "):
        authorization = re.sub(
            r"AWS [^/]+",  
            "Credential=%s" % INTERNAL_AWS_ACCESS_KEY_ID,
            authorization,
        )
    else:
        authorization = re.sub(
            r"Credential=[^/]+/",
            "Credential=%s/" % INTERNAL_AWS_ACCESS_KEY_ID,
            authorization,
        )
    headers["Authorization"] = authorization
    return headers
def get_local_service_url(service_name_or_port):