### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When deploying a stack containing S3 buckets with cors similar to

```javascript
cors: [{ allowedOrigins: ["https://localhost:3000", "https://www.example.com", "https://127.0.0.1:3000"], allowedMethods: [s3.HttpMethods.PUT], allowedHeaders: ["*"] }],
```
I am getting the following in the log

```
2023-04-19T21:07:12.853 DEBUG --- [uncthread142] l.s.c.e.template_deployer  : Error applying changes for CloudFormation stack "localstack-000000000000-s3-stack": Parameter validation failed:
Invalid type for parameter CORSConfiguration.CORSRules[0].ID, value: None, type: <class 'NoneType'>, valid types: <class 'str'>
Invalid type for parameter CORSConfiguration.CORSRules[0].ExposeHeaders, value: None, type: <class 'NoneType'>, valid types: <class 'list'>, <class 'tuple'>
Invalid type for parameter CORSConfiguration.CORSRules[0].MaxAgeSeconds, value: None, type: <class 'NoneType'>, valid types: <class 'int'> Traceback (most recent call last):
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/localstack/services/cloudformation/engine/template_deployer.py", line 1336, in _run
    self.do_apply_changes_in_loop(changes, stack)
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/localstack/services/cloudformation/engine/template_deployer.py", line 1413, in do_apply_changes_in_loop
    self.apply_change(change, stack=stack)
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/localstack/services/cloudformation/engine/template_deployer.py", line 1495, in apply_change
    result = execute_resource_action(resource_id, self, ACTION_CREATE)
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/localstack/services/cloudformation/engine/template_deployer.py", line 738, in execute_resource_action
    result = func["function"](resource_id, resources, resource_type, func, stack_name)
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/localstack/services/cloudformation/models/s3.py", line 177, in _put_bucket_cors_configuration
    s3_client.put_bucket_cors(
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/botocore/client.py", line 530, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/botocore/client.py", line 919, in _make_api_call
    request_dict = self._convert_to_request_dict(
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/botocore/client.py", line 990, in _convert_to_request_dict
    request_dict = self._serializer.serialize_to_request(
  File "/opt/code/localstack/.venv/lib/python3.10/site-packages/botocore/validate.py", line 381, in serialize_to_request
    raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid type for parameter CORSConfiguration.CORSRules[0].ID, value: None, type: <class 'NoneType'>, valid types: <class 'str'>
Invalid type for parameter CORSConfiguration.CORSRules[0].ExposeHeaders, value: None, type: <class 'NoneType'>, valid types: <class 'list'>, <class 'tuple'>
Invalid type for parameter CORSConfiguration.CORSRules[0].MaxAgeSeconds, value: None, type: <class 'NoneType'>, valid types: <class 'int'>
```

### Expected Behavior

No errors :smiley: 
There were no errors prior to trying LocalStack version 2, nor are there any errors running it against AWS.

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

Approximately:

    docker run --detach --name LOCALSTACK_NAME --network LOCALSTACK_NETWORK <plenty of environment variables and ports> --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock" --mount type=bind,src={os.getcwd()}/.cache/localstack/volume,dst=/var/lib/localstack localstack/localstack-pro:2.0.0

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

```
npx cdklocal bootstrap 000000000000/us-east-1
npx cdklocal deploy localstack --require-approval=never
```


### Environment

```markdown
- OS: Ubuntu 22.04.2 LTS
- LocalStack: Tested on -pro:2.0.0, -pro:2.0.2, and `latest`
```


### Anything else?

_No response_
"LambdaConfigurations",
                    lambda_configs,
                    "LambdaFunctionArn",
                    "Function",
                ),
                ("QueueConfigurations", queue_configs, "QueueArn", "Queue"),
                ("TopicConfigurations", topic_configs, "TopicArn", "Topic"),
            )
            
            for attrs in attr_tuples:
                for notif_cfg in notif_config.get(attrs[0]) or []:
                    filter_rules = notif_cfg.get("Filter", {}).get("S3Key", {}).get("Rules")
                    entry = {
                        attrs[2]: notif_cfg[attrs[3]],
                        "Events": [notif_cfg["Event"]],
                    }
                    if filter_rules:
                        entry["Filter"] = {"Key": {"FilterRules": filter_rules}}
                    attrs[1].append(entry)
            
            result = {
                "Bucket": params.get("BucketName"),
                "NotificationConfiguration": {
                    "LambdaFunctionConfigurations": lambda_configs,
                    "QueueConfigurations": queue_configs,
                    "TopicConfigurations": topic_configs,
                },
            }
            return result
        def _pre_delete(resource_id, resources, resource_type, func, stack_name):