### Apache Airflow version

2.6.1

### What happened

This [PR](https://github.com/apache/airflow/pull/28187) introduced the get_iam_token method in `redshift_sql.py`. This is the breaking change as  introduces the check for `iam` in extras, and it's set to False by default.

Error log:
```

self = <airflow.providers.amazon.aws.hooks.redshift_sql.RedshiftSQLHook object at 0x7f29f7c208e0>
conn = redshift_default

    def get_iam_token(self, conn: Connection) -> tuple[str, str, int]:
        """
        Uses AWSHook to retrieve a temporary ***word to connect to Redshift.
        Port is required. If none is provided, default is used for each service
        """
        port = conn.port or 5439
        # Pull the custer-identifier from the beginning of the Redshift URL
        # ex. my-cluster.ccdre4hpd39h.us-east-1.redshift.amazonaws.com returns my-cluster
>       cluster_identifier = conn.extra_dejson.get("cluster_identifier", conn.host.split(".")[0])
E       AttributeError: 'NoneType' object has no attribute 'split'

.nox/test-3-8-airflow-2-6-0/lib/python3.8/site-packages/airflow/providers/amazon/aws/hooks/redshift_sql.py:107: AttributeError
```


### What you think should happen instead

It should have backward compatibility

### How to reproduce

Run an example DAG for redshift with the AWS IAM profile given at hook initialization to retrieve a temporary password to connect to Amazon Redshift.

### Operating System

mac-os

### Versions of Apache Airflow Providers

_No response_

### Deployment

Astronomer

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] 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)

super().__init__(*args, **kwargs)
        self.aws_conn_id = aws_conn_id
    @staticmethod
    def get_ui_field_behaviour() -> dict:
        """Returns custom field behavior"""
        return {
            "hidden_fields": [],
            "relabeling": {"login": "User", "schema": "Database"},
        }
    @cached_property
    def conn(self):
        return self.get_connection(self.redshift_conn_id)  
    def _get_conn_params(self) -> dict[str, str | int]:
        """Helper method to retrieve connection args"""
        conn = self.conn
        conn_params: dict[str, str | int] = {}
        if conn.extra_dejson.get("iam", False):
            conn.login, conn.password, conn.port = self.get_iam_token(conn)
        if conn.login:
            conn_params["user"] = conn.login
        if conn.password:
            conn_params["password"] = conn.password
        if conn.host:
            conn_params["host"] = conn.host
        if conn.port:
            conn_params["port"] = conn.port
        if conn.schema:
            conn_params["database"] = conn.schema
        return conn_params
    def get_iam_token(self, conn: Connection) -> tuple[str, str, int]: