0

これは、「計算したリクエストの署名が、提供された署名と一致しません。AWS を確認してください。

     string url;
    integer statuscode;
    String date1=json.serialize(Datetime.now());
    if(date1.contains('"')){
    date1=date1.replace('"','');}
    String algorithmName = 'HmacSHA256';
    date1=date1.substring(0,(date1.length()-5));
     date1=date1+'Z';
     date1=EncodingUtil.UrlEncode(date1,'UTF-8');    
     String Action=EncodingUtil.UrlEncode('CreateTopic','UTF-8');
     String AccessKey=EncodingUtil.UrlEncode('APIKEY','UTF-8'); // API key hide due to security resion but i check it work fine for SES
     String Signaturemethod=EncodingUtil.UrlEncode('HmacSHA256','UTF-8');
     string str= 'GET\nsns.us-east-1.amazonaws.com\n/\nAction='+Action+'&Name=Testtopics&AWSAccessKeyId='+AccessKey+'&Timestamp='+date1+'&SignatureVersion=2&SignatureMethod='+Signaturemethod; 
    Blob mac = Crypto.generateMac(algorithmName,Blob.valueOf(str),Blob.valueOf('SECURITYKEY')); //blob value of key used in signature
    url='https://sns.us-east-1.amazonaws.com/?Action=CreateTopic&Name=Testtopics&AWSAccessKeyId=ACCESSKEY&Timestamp='+date1+'&SignatureVersion=2&SignatureMethod=HmacSHA256&Signature='+EncodingUtil.UrlEncode(EncodingUtil.base64Encode(mac),'UTF-8'); // final url   
4

2 に答える 2

0

URL の末尾に一重引用符がない可能性があります。それが違いを生むかどうかを確認してください。

url="https://sns.us-east-1.amazonaws.com/?Action=CreateTopic&Name=Testtopics&AWSAccessKeyId=ACCESSKEY&Timestamp='+date1+'&SignatureVersion=2&SignatureMethod=HmacSHA256&Signature='+EncodingUtil.UrlEncode(EncodingUtil.base64Encode(mac),'UTF-8')+"'";
于 2013-10-10T14:43:42.583 に答える
0

私はAWSについてあまり考えていませんが、以下は私が見つけたものです. これらのことをどこでもテストして問題を解決することはできません。

以下のエラー メッセージの一般的な原因は、Amazon S3 バケット名のコロン (:) やスラッシュ (/) などの URL エンコード文字を忘れているなど、署名する文字列が適切に作成されていないことです。

<Error>
    <Type>Sender</Type>
    <Code>SignatureDoesNotMatch</Code>
    <Message>The request signature we calculated does not match the signature you provided. 
    Check your AWS Secret Access Key and signing method. 
    Consult the service documentation for details.</Message>
</Error>

http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html

http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html

于 2013-10-10T11:55:49.370 に答える