2017-05-21 21 views
0

nodejs環境で、暗号化された16進数エンコードの署名を作成するにはどうすればよいですか?Amazon S3署名

enter image description here

あなただけそうのようにこれを行うのですか?

const secret = 'mysecret'; 
const date = yyyymmdd; 
const dateKey = crypto.createHmac('sha256', 'AWS4' + secret + ',' + date); 
const dateRegionKey = crypto('sha256', dateKey + ',' + 'myregion') 
const DateRegionServiceKey = crypto('sha256', dateRegionKey + ',' + 'someservice'); 
const signingKey = crypto('sha256', DateRegionServiceKey + ',' + 'aws4_request'); 

const signature = crypo('sha256', signingKey + base64Policy); 
+0

'base64Policy'に送信する必要があるヘッダがあるresult.headersを返しますか?したがって、[ブラウザベースのフォーム 'POST'アップロード](http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html)の署名を作成していますか? –

答えて

0

私は秘密が単なる文字列ではなく、あなたのIAM UserのaccessKey/secretKeyペアのsecretKeyであることを知りたがっています。

AWS SDKを使用せず自分でやりたいと思う特別な理由は何ですか?

また、AWS ElasticSearchで動作するサンプル署名実装(Java)もご覧ください。 getSignatureKeyメソッドとcalculateSignatureメソッドを見てください。

https://github.com/dy10/aws-elasticsearch-query-java/blob/master/src/main/java/dy/aws/es/AWSV4Auth.java

0

あなたはhttps://github.com/mhart/aws4 はあなたがresult = aws4.sign({}, { cred from AWS })

を使用する必要があり、このライブラリを使用する必要があり、それはあなたがあなたの要求

関連する問題