### Description

there is limitation to version 2 
https://github.com/apache/airflow/blob/809d95ec06447c9579383d15136190c0963b3c1b/airflow/providers/amazon/provider.yaml#L48


### Use case/motivation

using up to date version of the library

### Related issues

didnt find

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""Close the handler responsible for the upload of the local log file to Cloudwatch."""
        
        
        
        
        if self.closed:
            return
        if self.handler is not None:
            self.handler.close()
        
        self.closed = True
    def _read(self, task_instance, try_number, metadata=None):
        stream_name = self._render_filename(task_instance, try_number)
        try:
            return (
                f"*** Reading remote log from Cloudwatch log_group: {self.log_group} "
                f"log_stream: {stream_name}.\n"
                f"{self.get_cloudwatch_logs(stream_name=stream_name, task_instance=task_instance)}\n",
                {"end_of_log": True},
            )
        except Exception as e:
            log = (
                f"*** Unable to read remote logs from Cloudwatch (log_group: {self.log_group}, log_stream: "
                f"{stream_name})\n*** {e}\n\n"
            )
            self.log.error(log)
            local_log, metadata = super()._read(task_instance, try_number, metadata)
            log += local_log
            return log, metadata
    def get_cloudwatch_logs(self, stream_name: str, task_instance: TaskInstance) -> str: