Auth failure with AWS signature-v4
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Swift3 |
Fix Released
|
Undecided
|
Andrey Pavlov |
Bug Description
I known swift3 only support signature v2. And the V4 isn't implement. Maybe we should put it on our blueprint.
Test with s3cmd v1.5.0 and it return a 412 Error.
$ s3cmd --debug ls s3://test3
DEBUG: ConfigParser: Reading file '/Users/
DEBUG: ConfigParser: access_
DEBUG: ConfigParser: access_token->
DEBUG: ConfigParser: add_encoding_exts->
DEBUG: ConfigParser: add_headers->
DEBUG: ConfigParser: bucket_location->US
DEBUG: ConfigParser: cache_file->
DEBUG: ConfigParser: cloudfront_
DEBUG: ConfigParser: default_
DEBUG: ConfigParser: delay_updates-
DEBUG: ConfigParser: delete_after->False
DEBUG: ConfigParser: delete_
DEBUG: ConfigParser: delete_
DEBUG: ConfigParser: dry_run->False
DEBUG: ConfigParser: enable_
DEBUG: ConfigParser: encoding->UTF-8
DEBUG: ConfigParser: encrypt->False
DEBUG: ConfigParser: follow_
DEBUG: ConfigParser: force->False
DEBUG: ConfigParser: get_continue->False
DEBUG: ConfigParser: gpg_command->None
DEBUG: ConfigParser: gpg_decrypt-
DEBUG: ConfigParser: gpg_encrypt-
DEBUG: ConfigParser: gpg_passphrase-
DEBUG: ConfigParser: guess_mime_
DEBUG: ConfigParser: host_base-
DEBUG: ConfigParser: host_bucket-
DEBUG: ConfigParser: human_readable_
DEBUG: ConfigParser: invalidate_
DEBUG: ConfigParser: invalidate_
DEBUG: ConfigParser: invalidate_
DEBUG: ConfigParser: list_md5->False
DEBUG: ConfigParser: log_target_prefix->
DEBUG: ConfigParser: mime_type->
DEBUG: ConfigParser: multipart_
DEBUG: ConfigParser: preserve_
DEBUG: ConfigParser: progress_
DEBUG: ConfigParser: proxy_host->
DEBUG: ConfigParser: proxy_port->0
DEBUG: ConfigParser: recursive->False
DEBUG: ConfigParser: recv_chunk->4096
DEBUG: ConfigParser: reduced_
DEBUG: ConfigParser: secret_
DEBUG: ConfigParser: send_chunk->4096
DEBUG: ConfigParser: simpledb_host->
DEBUG: ConfigParser: skip_existing-
DEBUG: ConfigParser: socket_timeout->300
DEBUG: ConfigParser: urlencoding_
DEBUG: ConfigParser: use_https->False
DEBUG: ConfigParser: verbosity->WARNING
DEBUG: ConfigParser: website_error->
DEBUG: ConfigParser: website_
DEBUG: Updating Config.Config cache_file ->
DEBUG: Updating Config.Config follow_symlinks -> False
DEBUG: Updating Config.Config verbosity -> 10
DEBUG: Unicodising 'ls' using UTF-8
DEBUG: Unicodising 's3://test3' using UTF-8
DEBUG: Command: ls
DEBUG: Bucket 's3://test3':
DEBUG: CreateRequest: resource[uri]=/
DEBUG: Using signature v4
DEBUG: get_hostname(
DEBUG: Canonical Request:
GET
/
delimiter=%2F
host:192.
x-amz-content-
x-amz-date:
host;x-
e3b0c44298fc1c1
-------
DEBUG: signature-v4 headers: {'x-amz-
DEBUG: Processing request, please wait...
DEBUG: get_hostname(
DEBUG: ConnMan.get(): creating new connection: http://
DEBUG: non-proxied HTTPConnection(
DEBUG: format_uri(): /test3/?delimiter=/
DEBUG: Sending request method_
DEBUG: Response: {'status': 412, 'headers': {'date': 'Wed, 14 Jan 2015 10:39:25 GMT', 'content-length': '7', 'content-type': 'text/html; charset=UTF-8', 'x-trans-id': 'tx2ca6e281156a
DEBUG: ConnMan.put(): connection put back to pool (http://
DEBUG: S3Error: 412 (Precondition Failed)
DEBUG: HttpHeader: date: Wed, 14 Jan 2015 10:39:25 GMT
DEBUG: HttpHeader: content-length: 7
DEBUG: HttpHeader: content-type: text/html; charset=UTF-8
DEBUG: HttpHeader: x-trans-id: tx2ca6e281156a4
ERROR: Error parsing xml: syntax error: line 1, column 0
ERROR: Bad URL
DEBUG: Not an XML response
ERROR: S3 error: 412 (Precondition Failed):
Changed in swift3: | |
assignee: | nobody → Andrey Pavlov (apavlov-e) |
Changed in swift3: | |
status: | New → In Progress |
or we should add something likes this. docs.aws. amazon. com/general/ latest/ gr/signature- v4-troubleshoot ing.html
http://