Making ec2token middleware multi-cloud aware presents a
challenge as the API assumes there is only one cloud and
Heat must remain compatible. This means that unlike multi-cloud
heat-api, the request cannot explicitly say which endpoint it
wants to authenticate against.
However it must be possible to make authenticated cfn requests
against a multi-cloud heat for the sake of cfntools requests.
The approach taken in this commit is to attempt authentication
against each configured allowed_auth_uris until one succeeds.
This is safe for the following reasons:
1. AWSAccessKeyId is a randomly generated sequence
2. No secret is transferred to validate a request
If all auth attempts fail, the last failed reason is raised
as the error to the user.