### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When trying to use CloudWatch as a target for an EventBridge eventbus I receive a warning `WARNING:localstack.utils.aws.aws_stack: Unsupported Events rule target ARN: "arn:aws:logs:us-east-1:000000000000:log-group:/aws/events/log-imports"` and nothing happens.

### Expected Behavior

I expected to be able to use CloudWatch loggroup as an EventBrigde eventbus target, like I can using AWS.

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

    `docker-compose.yaml`

#### Additional files
JSON file needed for the `put-events` call

```
[
  {
    "Source": "com.mycompany.myapp",
    "Detail": "{ \"key1\": \"value1\", \"key2\": \"value2\" }",
    "Resources": [
      "resource1",
      "resource2"
    ],
    "DetailType": "myDetailType",
    "EventBusName": "messages-eb"
  }
]
```

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

    awslocal logs create-log-group --log-group-name /aws/events/log-imports
    awslocal events create-event-bus --name messages-eb
    awslocal events put-rule --name forward-message --event-bus-name messages-eb --event-pattern "{""account"": [""000000000000""]}"
    awslocal events put-targets --rule forward-message --event-bus-name messages-eb --targets "Id"="1","Arn"="arn:aws:logs:us-east-1:000000000000:log-group:/aws/events/log-imports"

    awslocal events put-events --entries file://events.json
    


### Environment

```markdown
- OS: Windows 10
- LocalStack: 0.12.17
- Docker Desktop (with WSL2)
```


### Anything else?

_No response_
if not size:
        size = len(arr)
    if size <= 0:
        return None
    with Pool(size) as pool:
        return pool.map(func, arr)
def isoformat_milliseconds(t):
    try:
        return t.isoformat(timespec="milliseconds")
    except TypeError:
        return t.isoformat()[:-3]
def replace_response_content(response, pattern, replacement):
    content = to_str(response.content or "")
    response._content = re.sub(pattern, replacement, content)
def is_none_or_empty(obj: Union[Optional[str], Optional[list]]) -> bool:
    return (
        obj is None
        or (isinstance(obj, str) and obj.strip() == "")
        or (isinstance(obj, Sized) and len(obj) == 0)
    )
def canonicalize_bool_to_str(val: bool) -> str:
    return "true" if str(val).lower() == "true" else "false"
CACHE_FILE_PATTERN = CACHE_FILE_PATTERN.replace("_random_dir_", short_uid())