### Apache Airflow version

2.2.3 (latest released)

### What happened

The 2.5.0 version of Amazon Provider contains breaking changes - https://airflow.apache.org/docs/apache-airflow-providers-amazon/stable/commits.html specifically https://github.com/apache/airflow/commit/83b51e53062dc596a630edd4bd01407a556f1aa6 or the combination of the following:

- https://github.com/apache/airflow/commit/83b51e53062dc596a630edd4bd01407a556f1aa6
- https://github.com/apache/airflow/commit/d58df468c8d77c5d45e80f2333eb074bb7771a95
- https://github.com/apache/airflow/commit/4be04143a5f7e246127e942bf1d73abcd22ce189

and confirmed by @uranusjr 

I have yanked 2.5.0 and we will need to release ~3.0.0~ 2.5.1 with backwards compatibility fixes 

I have updated the constraints for 2.2.3 for now - https://github.com/apache/airflow/commit/62d490d4da17e35d4ddcd4ee38902a8a4e9bbfff

UPDATED: (@potiuk) to reflect that we are going to release 2.5.1 instead of 3.0.0

airflow/providers/amazon/aws/hooks/base_aws.py
f'Currently {supported_methods} are supported.'
                '(Exclude this setting will default to "assume_role").'
            )
        if assume_role_method == 'assume_role_with_web_identity':
            
            credential_fetcher = self._get_web_identity_credential_fetcher()
            credentials = botocore.credentials.DeferredRefreshableCredentials(
                method='assume-role-with-web-identity',
                refresh_using=credential_fetcher.fetch_credentials,
                time_fetcher=lambda: datetime.datetime.now(tz=tzlocal()),
            )
        else:
            
            credentials = botocore.credentials.RefreshableCredentials.create_from_metadata(
                metadata=self._refresh_credentials(),
                refresh_using=self._refresh_credentials,
                method="sts-assume-role",
            )
        session = botocore.session.get_session()
        session._credentials = credentials
        if self.basic_session is None:
            raise RuntimeError("The basic session should be created here!")
        region_name = self.basic_session.region_name
        session.set_config_variable("region", region_name)
        return boto3.session.Session(botocore_session=session, **session_kwargs)
    def _refresh_credentials(self) -> Dict[str, Any]:
        self.log.info('Refreshing credentials')
        assume_role_method = self.extra_config.get('assume_role_method', 'assume_role')
        sts_session = self.basic_session
        if assume_role_method == 'assume_role':