TL;DR: boto v2 found no AWS credentials anywhere it looks. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in the environment, or add them to ~/.boto, and retry.

```text
boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthHandler'] Check your credentials
```

## Fix it

1. Set the pair: export AWS_ACCESS_KEY_ID to your key id and AWS_SECRET_ACCESS_KEY to your secret. Expected: set.
2. Or write ~/.boto with [Credentials] aws_access_key_id and aws_secret_access_key entries. Expected: boto reads it.
3. Retry the call. Expected: authenticates.
4. Long-term: migrate to boto3, whose credential chain and errors are better documented.

## When this applies
- The error is NoAuthHandlerFound from import boto code.

## When it doesn't
- You use boto3: the equivalent error is NoCredentialsError.
- Credentials exist but the request is rejected: check the key values.

## Compatibility
- boto 2.x.

## Why it happens
boto v2 checks handlers that can sign the request; with no credentials configured, no handler qualifies, and it reports this instead of a clearer message.

## Edge cases
- ~/.boto vs ~/.aws/credentials: boto v2 prefers its own file; boto3 prefers the AWS one.
- IAM roles on EC2 work with boto v2 via the metadata service, same as boto3.
