### Apache Airflow Provider(s)

google

### Versions of Apache Airflow Providers

apache-airflow-providers-google~=5.0

### Apache Airflow version

2.1.3 (latest released)

### Operating System

MacOS Big Sur

### Deployment

Astronomer

### Deployment details

_No response_

### What happened

The CloudSqlProxyRunner queries the Airflow DB directly to retrieve the GCP connection.

https://github.com/apache/airflow/blob/7b3a5f95cd19667a683e92e311f6c29d6a9a6a0b/airflow/providers/google/cloud/hooks/cloud_sql.py#L521

### What you expected to happen

In order to not break when using connections stored in external secrets backends, it should use standardized methods to retrieve connections and not query the Airflow DB directly.

### How to reproduce

Use a CloudSQLDatabaseHook with `use_proxy=True` while using an external secrets backend.

### Anything else

Every time

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

airflow/providers/google/cloud/hooks/cloud_sql.py
"""
    Downloads and runs cloud-sql-proxy as subprocess of the Python process.
    The cloud-sql-proxy needs to be downloaded and started before we can connect
    to the Google Cloud SQL instance via database connection. It establishes
    secure tunnel connection to the database. It authorizes using the
    Google Cloud credentials that are passed by the configuration.
    More details about the proxy can be found here:
    https://cloud.google.com/sql/docs/mysql/sql-proxy
    :param path_prefix: Unique path prefix where proxy will be downloaded and
        directories created for unix sockets.
    :type path_prefix: str
    :param instance_specification: Specification of the instance to connect the
        proxy to. It should be specified in the form that is described in
        https://cloud.google.com/sql/docs/mysql/sql-proxy#multiple-instances in
        -instances parameter (typically in the form of ``<project>:<region>:<instance>``
        for UNIX socket connections and in the form of
        ``<project>:<region>:<instance>=tcp:<port>`` for TCP connections.
    :type instance_specification: str
    :param gcp_conn_id: Id of Google Cloud connection to use for
        authentication
    :type gcp_conn_id: str
    :param project_id: Optional id of the Google Cloud project to connect to - it overwrites
        default project id taken from the Google Cloud connection.
    :type project_id: str
    :param sql_proxy_version: Specific version of SQL proxy to download
        (for example 'v1.13'). By default latest version is downloaded.
    :type sql_proxy_version: str
    :param sql_proxy_binary_path: If specified, then proxy will be
        used from the path specified rather than dynamically generated. This means
        that if the binary is not present in that path it will also be downloaded.