3

Amazon SES を使用して、次のような HTTP Post 経由で E メールを送信しようとしています。

https://email.us-east-1.amazonaws.com/?Action=SendEmail&Source=user%40example.com&Destination.ToAddresses.member.1=allan%40example.com&Message.Subject.Data=This%20is%20the%20subject%20line.&Message.Body.Text.Data=Hello.%20I%20hope%20you%20are%20having%20a%20good%20day.

ただし、HTTP ヘッダーでは、以下で構成される X-Amzn-Authorization を要求します。

X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=<Your AWS Access Key ID>, Algorithm=HmacSHA256, Signature=<Signature>

署名をどのように計算するのか疑問に思っていましたか?それは単に私のシークレット アクセス キーですか?

A はAmazon ドキュメンテーション サイトに表示されています。

4

1 に答える 1

4

いいえ - あなたの秘密のアクセスキーは秘密です。ネットワーク経由で渡さないでください。盗聴した人に AWS アカウントへのフル アクセスを与えることになります。彼らはそれを使用して、すべてのインスタンスをシャットダウンし、S3 バケット全体を削除することができます。

署名は「署名付きリクエスト」です。リクエストのコンテンツを取得し、シークレットをハッシュ キーとして使用して、メッセージ認証コード (HMAC) ハッシュのキー付きハッシュを作成します。あなたの秘密鍵はあなたとAmazonだけが知っているので、Amazonがリクエストを受け取ると、彼らもあなたのリクエストの内容を取り、あなたの秘密鍵に基づいてそれをハッシュします - 彼らがあなたの署名されたリクエストと同じハッシュを取得すれば、彼らはリクエストを知っています改ざんされていませんでした。それらが異なる場合、リクエストは悪意を持って改ざんされているか、侵害されている可能性があるため、拒否されます。

詳細はこちら: https://www.jokecamp.com/blog/examples-of-creating-base64-hashes-using-hmac-sha256-in-different-languages/

HMAC を計算するためのコードを含みます。

于 2012-03-21T10:57:36.790 に答える