### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

Currently whilst tags can be set on an security group they do not seem to actually set, nor be shown in the visible:

```console
$ awslocal ec2 describe-security-group-rules --region eu-west-1 
{
    "SecurityGroupRules": [
  ...
        {
            "SecurityGroupRuleId": "sgr-a61b55ecc57fc7326",
            "GroupId": "sg-8142c14106428334a",
            "GroupOwnerId": "000000000000",
            "IsEgress": false,
            "IpProtocol": "tcp",
            "FromPort": 80,
            "ToPort": 80,
            "CidrIpv4": "0.0.0.0/0"
        }
    ]
}
```

I'm hoping this is the cause of  terraform always attempting to add rules every time it runs, but I thought that about #8528


### Expected Behavior

```console
$ aws ec2 describe-security-group-rules --region eu-west-1
{
    "SecurityGroups": [
...
        {
            "SecurityGroupRuleId": "sgr-092116e510c39844a",
            "GroupId": "sg-0316c5c1e70a68903",
            "GroupOwnerId": "586083211487",
            "IsEgress": false,
            "IpProtocol": "tcp",
            "FromPort": 80,
            "ToPort": 80,
            "CidrIpv4": "0.0.0.0/0",
            "Tags": [
                {
                    "Key": "test",
                    "Value": "test"
                }
            ]
        }
    ]
}
```

### How are you starting LocalStack?

With the `localstack` script

### Steps To Reproduce

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

    localstack run

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

##### AWS

Note there is a default group and rule in localstack so we can just jump straight to checking that:

```
awslocal ec2 describe-security-group-rules
```

##### Terraform

I found this bug whilst investigating terraform continually applying rules, I believe it may be the cause (but I previously believed #8528 was):

```terraform
provider "aws" {
  region = "eu-west-1"
}

resource "aws_vpc" "example" {
  cidr_block = "10.0.0.0/16"
}

resource "aws_security_group" "example" {
  name = "example"
  vpc_id = resource.aws_vpc.example.id
}

resource "aws_vpc_security_group_ingress_rule" "http" {
  security_group_id = aws_security_group.example.id
  cidr_ipv4         = "0.0.0.0/0"
  from_port         = 80
  ip_protocol       = "tcp"
  to_port           = 80
  tags              = {
    "test" = "test"
  }
}
```

```
tflocal apply
tflocal apply # Should not change anything but currently does
```

### Environment

```markdown
- OS: 20.04.6
- LocalStack version: 2.1.1.dev
- LocalStack Docker container id: e79ee64af0e2
- LocalStack build date: 2023-07-06
- LocalStack build git hash: 3908ec6b
```


### Anything else?

_No response_
"""
        When using async-type , it's possible to cancel them inflight. This will make the request body
        incomplete, and will fail during the stream decoding. We can simulate this with body by passing an incomplete
        body, which triggers the same kind of exception.
        This test is to avoid regression for https://github.com/localstack/localstack/issues/9851
        """
        body = "Hello Blob"
        precalculated_etag = hashlib.md5(body.encode()).hexdigest()
        headers = {
            "Authorization": mock_aws_request_headers(
                "s3", aws_access_key_id=TEST_AWS_ACCESS_KEY_ID, region_name=TEST_AWS_REGION_NAME
            )["Authorization"],
            "Content-Type": "audio/mpeg",
            "X-Amz-Content-Sha256": "STREAMING-AWS4-HMAC-SHA256-PAYLOAD-TRAILER",
            "X-Amz-Date": "20190918T051509Z",
            "X-Amz-Decoded-Content-Length": str(len(body)),
            "Content-Encoding": "aws-chunked",
        }
        key_name = "test-multipart-chunked"
        response = aws_client.s3.create_multipart_upload(
            Bucket=s3_bucket,
            Key=key_name,
        )
        upload_id = response["UploadId"]
        # # up
        invalid_data = (
            "\r\n"