2016-07-07 2 views
1

Amazon S3에 대해 사전 서명 된 URL을 만들려고합니다.미리 지정된 URL에 대해 S3 서명이 일치하지 않습니다.

아래 코드는 S3 문서의 예제에서 서명과 동일한 서명을 생성합니다. 난 내 자신의 자격 증명 등을 연결하면 (https://s3.amazonaws.com/doc/s3-developer-guide/RESTAuthentication.html)

그러나

은 내가 AWS에서 오류가 발생합니다 : 는 "우리가 계산 요청 서명을 제공 한 서명과 일치하지 않는 키와 서명 방법을 확인합니다.."

아래의 코드가 작동하는 것 같으면 내 서명 방법이 괜찮다고 생각합니다. 또한 사용 된 자격 증명은 파일을 업로드하는 데 사용되는 이므로 좋은 결과이기도합니다. 그것들은 IAM 사용자가 아닌 루트 인증서입니다.

나는 시도했다 :

1)와 마침표가없는 파일 이름입니다. 2) 미국뿐만 아니라 아일랜드에있는 파일. 3) HTTP 및 HTTPS 4) SHA256 (문서에서 예를 벗어나지 만) 5) 다른 웹 클라이언트 : wget, curl 및 Firefox.

은 여기 주어진 PHP와 같은 정확하게 일을 할 것 : Creating a signed S3 URL with Javascript

이 미국 표준에 대해 생성 된 URL입니다. 버킷은 파일 "에 foo.txt"그래서

https://s3.amazonaws.com/buck1bar/foo.txt?AWSAccessKeyId=AKIAJG5VR56AB5USIG5Q&Expires=1467893299&Signature=emdimX%2FWKYrcdhtPtE7eQ9ErWv30HNlAHaa9vlDODCY%3D

는 "buck1bar", 내가 무슨 일을하고 있는가?

#!/usr/bin/perl 

use strict; 
use warnings; 
use diagnostics; 

use MIME::Base64; 

use Digest::HMAC; 
use Digest::SHA; 
use URI::Escape; 


my $hmac3 = Digest::HMAC->new('OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV', 'Digest::SHA'); 

$hmac3->add("GET\n\n\n1141889120\n/quotes/nelson"); 

my $signature = uri_escape(encode_base64 $hmac3->digest, ''); 

print "vjbyPxybdZaNmGa%2ByT272YEAiv4%3D\n$signature\n"; 

# vjbyPxybdZaNmGa%2ByT272YEAiv4%3D 
# vjbyPxybdZaNmGa%2ByT272YEAiv4%3D 
+0

이제 AWS에 즉시 로그인하고이 질문에 게시 한 자격 증명을 무효화하십시오. 공공 장소에 자격 증명을 게시하지 마십시오. 다른 사람이 귀하의 신분을 사기로 사용하면 잠재적으로 상당한 책임을지게됩니다. –

+0

질문의 두 번째 줄 : "아래 코드는 S3 문서의 예제에서 서명과 동일한 서명을 생성합니다." – ftumsh

+0

하하하 내 잘못입니다. 이제, 내 머리가 당신을 대신하여 폭발 한 곳이 있습니다 : * "아래의 코드가 작동하는 것 같으면 내 서명 방법이 괜찮다고 생각합니다. 또한 사용되는 자격 증명은 파일을 업로드하는 데 사용되는 자격 증명이므로 사용법도 좋습니다. IAM 사용자가 아닌 루트 자격 증명입니다. "* Sweet : 아래 코드는 루트 자격 증명을 포함합니다. –

답변

0

추가 해커링이 끝나면 이미 사용하고있는 모듈이 이미 수행 한 것으로 나타났습니다.

my $client = Net::Amazon::S3::Client->new(s3 => $s3); 

my $bucket = $client->bucket(name => $bucket_name); 

my $o = $bucket->object(key => 'key1', expires => '2016-07-08'); 
my $uri = $o->query_string_authentication_uri(); 

print "$uri\n"; 
관련 문제