**Apache Airflow version**: 2.0.2


**Kubernetes version (if you are using kubernetes)** (use `kubectl version`): NA

**Environment**: MWAA and Locally

- **Cloud provider or hardware configuration**: AWS
- **OS** (e.g. from /etc/os-release): NA
- **Kernel** (e.g. `uname -a`): NA
- **Install tools**: NA
- **Others**: NA

**What happened**:

When calling the SagemakerProcessingOperator sometimes get: "botocore.exceptions.ClientError: An error occurred (ThrottlingException)" due to excessive ListProcessingJobs operations.

**What you expected to happen**:

The job should have started without timing out. I believe one fix would be to use the `NameContains` functionality of boto3 [list_processing_jobs](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.list_processing_jobs) so you don't have to paginate as is occurring [here](https://github.com/apache/airflow/blob/main/airflow/providers/amazon/aws/hooks/sagemaker.py#L916). 

**How to reproduce it**:

If you incrementally create Sagemaker Processing jobs you will eventually see the Throttling as the pagination increases.

**Anything else we need to know**:

This looks like it is happening when the account already has a lot of former Sagemaker Processing jobs.
airflow/providers/amazon/aws/hooks/sagemaker.py
:type wait_for_completion: bool
        :param check_interval: the time interval in seconds which the operator
            will check the status of any SageMaker job
        :type check_interval: int
        :param max_ingestion_time: the maximum ingestion time in seconds. Any
            SageMaker jobs that run longer than this will fail. Setting this to
            None implies no timeout for any SageMaker job.
        :type max_ingestion_time: int
        :return: A response to endpoint update
        """
        response = self.get_conn().update_endpoint(**config)
        if wait_for_completion:
            self.check_status(
                config['EndpointName'],
                'EndpointStatus',
                self.describe_endpoint,
                check_interval,
                max_ingestion_time,
                non_terminal_states=self.endpoint_non_terminal_states,
            )
        return response
    def describe_training_job(self, name: str):
        """
        Return the training job info associated with the name
        :param name: the name of the training job
        :type name: str
        :return: A dict contains all the training job info
        """
        return self.get_conn().describe_training_job(TrainingJobName=name)
    def describe_training_job_with_log(