### Description
Hi,
There is mandatory parameter iam_role_name parameter for GlueJobOperator/GlueJobHook.
It adds additional step of translating it to the arn, which needs  connectivity to the global iam AWS endpoint (no privatelink availabale).
For private setups it needs opening connectivity + proxy configuration to make it working.  
It would be great to have also possibility to just pass directly iam_role_arn and avoid this additional step.
### Use case/motivation

Role assignation does not need external connectivity, possibility of adding arn instead of the name.

### Related issues

_No response_

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

)
        if state in finished_states:
            self.log.info("Exiting Job %s Run State: %s", run_id, state)
            return {"JobRunState": state, "JobRunId": run_id}
        if state in failed_states:
            job_error_message = f"Exiting Job {run_id} Run State: {state}"
            self.log.info(job_error_message)
            raise AirflowException(job_error_message)
        else:
            self.log.info(
                "Polling for AWS Glue Job %s current run state with status %s",
                job_name,
                state,
            )
            return None
    def has_job(self, job_name) -> bool:
        """
        Check if the job already exists.
        .. seealso::
            - :external+boto3:py:meth:`Glue.Client.get_job`
        :param job_name: unique job name per AWS account
        :return: Returns True if the job already exists and False if not.
        """
        self.log.info("Checking if job already exists: %s", job_name)
        try:
            self.conn.get_job(JobName=job_name)
            return True
        except self.conn.exceptions.EntityNotFoundException:
            return False
    def update_job(self, **job_kwargs) -> bool: