title: boto3 s3 connection error: An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation
body: <p>I'm using the <code>boto3</code> package to connect from outside an s3 cluster (i.e. the script is currently not being run within the AWS 'cloud', but from my MBP connecting to the relevant cluster). My code:</p>
  
  <pre><code>s3 = boto3.resource(
      "s3",
      aws_access_key_id=self.settings['CREDENTIALS']['aws_access_key_id'],
      aws_secret_access_key=self.settings['CREDENTIALS']['aws_secret_access_key'],
  )
  
  bucket = s3.Bucket(self.settings['S3']['bucket_test'])
  
  for bucket_in_all in boto3.resource('s3').buckets.all():
      if bucket_in_all.name == self.settings['S3']['bucket_test']:
          print ("Bucket {} verified".format(self.settings['S3']['bucket_test']))
  </code></pre>
  
  <p>Now I'm receiving this error message:</p>
  
  <pre><code>botocore.exceptions.ClientError: An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation
  </code></pre>
  
  <p>I'm aware of the sequence of how the aws credentials are checked, and tried different permutations of my environment variables and <code>~/.aws/credentials</code>, and know that the credentials as per my .py script should override, however I'm still seeing this SignatureDoesNotMatch error message. Any ideas where I may be going wrong? I've also tried:</p>
  
  <pre><code>  # Create a session
      session = boto3.session.Session(
          aws_access_key_id=self.settings['CREDENTIALS']['aws_access_key_id'],
          aws_secret_access_key=self.settings['CREDENTIALS']['aws_secret_access_key'],
          aws_session_token=self.settings['CREDENTIALS']['session_token'],
          region_name=self.settings['CREDENTIALS']['region_name']
      )
  
  s3 = boto3.resource('s3')
  for bucket in s3.buckets.all():
      print(bucket.name)
  </code></pre>
  
  <p>...however I also see the same error traceback.</p>