**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
positions.update(
                    [(s, Position(timestamp=0, skip=0)) for s in stream_names if s not in positions]
                )
            except logs_conn.exceptions.ResourceNotFoundException:
                
                
                pass
        if len(stream_names) > 0:
            for idx, event in self.multi_stream_iter(log_group, stream_names, positions):
                self.log.info(event['message'])
                ts, count = positions[stream_names[idx]]
                if event['timestamp'] == ts:
                    positions[stream_names[idx]] = Position(timestamp=ts, skip=count + 1)
                else:
                    positions[stream_names[idx]] = Position(timestamp=event['timestamp'], skip=1)
        if state == LogState.COMPLETE:
            return state, last_description, last_describe_job_call
        if state == LogState.JOB_COMPLETE:
            state = LogState.COMPLETE
        elif time.monotonic() - last_describe_job_call >= 30:
            description = self.describe_training_job(job_name)
            last_describe_job_call = time.monotonic()
            if secondary_training_status_changed(description, last_description):
                self.log.info(secondary_training_status_message(description, last_description))
                last_description = description
            status = description['TrainingJobStatus']
            if status not in self.non_terminal_states:
                state = LogState.JOB_COMPLETE
        return state, last_description, last_describe_job_call
    def describe_tuning_job(self, name: str) -> dict: