### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Given the following minimal terraform code that creates two s3 buckets where one of the buckets is used for logging

```tf
terraform {
  required_version = ">= 1.5.2"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.8.0"
    }
  }
}

resource "aws_s3_bucket" "bucket" {
  bucket = "main"
}

resource "aws_s3_bucket" "logging" {
  bucket = "logging"
}

resource "aws_s3_bucket_logging" "bucket" {
  bucket = aws_s3_bucket.bucket.id

  target_bucket = aws_s3_bucket.logging.id
  target_prefix = "log/"
}
```

Using `tflocal` to `tflocal apply` the resources to localstack running in docker-compose works as expected but `tflocal destroy` will become stuck at 
```
aws_s3_bucket_logging.bucket: Destroying... [id=main]
aws_s3_bucket_logging.bucket: Still destroying... [id=main, 10s elapsed]
```

when reviewing the localstack output the following error is observed repeatedly

```
localstack_main | 2023-08-03T00:01:55.897  INFO --- [   asgi_gw_2] localstack.request.aws     : AWS s3.PutBucketLogging => 500 (InternalError)
localstack_main | 2023-08-03T00:01:55.899  INFO --- [   asgi_gw_1] localstack.request.http    : PUT / => 500
localstack_main | 2023-08-03T00:01:55.949 ERROR --- [   asgi_gw_2] l.aws.handlers.logging     : exception during call chain: 'NoneType' object has no attribute 'get'
```

### Expected Behavior

`tflocal destroy` to destroy the `aws_s3_bucket_logging` logging resource.  Using terraform instead of tflocal with the same terraform configuration succeeds during apply and destroy

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

1. Create a minimal terraform module with a `main.tf` that includes the terraform code above
2. from the terraform module execute `tflocal init`
3. from the terraform module execute `tflocal apply`
4. observe the resources are created in localstack
5. from the terraform module execute `tflocal destroy`
6. observe the 500 error in the localstack logs and the terraform output is stuck on "Still destroying..."


### Environment

```markdown
- OS: macOS 13.4.1
- LocalStack: latest
```


### Anything else?

_No response_
key_object.set_expiry(expires)
        elif "expires" in key_object.metadata:  
            metadata = {k: v for k, v in key_object.metadata.items() if k != "expires"}
            key_object.set_metadata(metadata, replace=True)
        if key_object.kms_key_id:
            
            key_object.kms_key_id = arns.kms_key_arn(
                key_id=key_object.kms_key_id,
                account_id=moto_bucket.account_id,
                region_name=moto_bucket.region_name,
            )
            response["SSEKMSKeyId"] = key_object.kms_key_id
        if key_object.checksum_algorithm == ChecksumAlgorithm.CRC32C:
            
            
            key_object.checksum_value = get_object_checksum_for_algorithm(
                ChecksumAlgorithm.CRC32C,
                key_object.value,
            )
        bucket_lifecycle_configurations = self.get_store(context).bucket_lifecycle_configuration
        if (bucket_lifecycle_config := bucket_lifecycle_configurations.get(request["Bucket"])) and (
            rules := bucket_lifecycle_config.get("Rules")
        ):
            object_tags = moto_backend.tagger.get_tag_dict_for_resource(key_object.arn)
            if expiration_header := self._get_expiration_header(rules, key_object, object_tags):
                response["Expiration"] = expiration_header
        self._notify(context)
        return response
    @handler("CopyObject", expand=False)
    def copy_object(