ヤマムギ

growing hard days.

*

AWS APIリクエストにPostmanで署名を作成する

   

新年明けましておめでとうございます!

署名バージョン4

「AWSはマネジメントコンソールからもCLIからもSDKからの操作も、APIにリクエストが実行されています。
そしてそのリクエストには署名バージョン4の署名が必要です。
でも、CLIやSDKはそのあたりをやってくれるので便利でしょ?」

って話を聞いたことあると思うのですが、じゃあCLIやSDK使わずにAPIリクエストってどうやってやるんでしょ?
というと、こちら公式の
署名バージョン 4 を使用してAWS リクエストに署名するに手順があります。
* タスク 1: 署名バージョン4の正規リクエストを作成する
* タスク 2: 署名バージョン4の署名文字列を作成する
* タスク 3: AWS署名バージョン4の署名を計算する
* タスク 4: HTTPリクエストに署名を追加する
こうすることで、認証セキュリティを高めているのですね。

ふむふむ。面倒ですね。

ということで、Postmanで試しました。

AWS APIリクエストをPostmanで試しました

S3のバケット一覧を表示します。
CLIでは「aws s3 ls」に該当する操作です。
リファレンスを見ると、APIエンドポイントは「s3.amazonaws.com」のようです。

GETリクエストで、ホストをs3.amazonaws.comに設定しました。
S3のバケット一覧が見えるs3:ListALlMyBucketsアクションを許可したユーザーのアクセスキーIDとシークレットアクセスキーを、PostmanのAWS Signatureに設定しました。
あと、ADVANCEDのService NameにS3を設定しました。
これをしないと、X-Amz-Content-Sha256ヘッダーができなくてエラーになりました。

設定をすると、Postmanが自動的にヘッダーにAuthorization、X-Amz-Content-Sha256、X-Amz-Dateを作ってくれました。

Authorizationヘッダの内容はこちらでした。

AWS4-HMAC-SHA256
Credential=AKIAYEXAMPLESSS/20201228/us-east-1/s3/aws4_request,
SignedHeaders=host;x-amz-content-sha256;x-amz-date,
Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

公式ユーザーガイドの以下の説明に合致してました。
署名に使用したアルゴリズム (AWS4-HMAC-SHA256)
認証情報スコープ (アクセスキーIDを含む)
署名付きヘッダーの一覧
計算された署名。この署名はリクエスト情報に基づいており、AWSシークレットアクセスキーを使用して署名を生成します。署名により、AWSのIDが確認されます。

レスポンスはこちらでした。

ではでは、2021年もよろしくお願いいたします!


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

ad

ad

  関連記事

AWS CodeStarで静的webサイトのテンプレートプロジェクトを作成する

執筆環境の検討中です。 CodeCommitは使うつもりで、コミットしたときにE …

AWS認定試験の自宅受験で壁のポスターを注意されちゃいました

AWS認定オンライン受験をしてみましたに書きましたとおり、自宅受験デビューしまし …

MySQL WorkbenchからRDSに接続する

MySQL WorkbenchからAWS RDSのMySQLに接続するために、「 …

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました

EC2 Global Viewという機能がリリースされました。 EC2コンソール …

Amazon API Gatewayでモックを作る

超シンプルなAPI Gatewayのサンプルがほしかったので、ユーザーガイドの手 …

AWSアカウントのルートユーザーのセキュリティ認証情報

アカウント作成時にはMFA設定するためにIAMダッシュボードからアクセスするので …

Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)

やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …

S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)

Google Calendar Twilio ReminderのTwilioを使 …

S3イベントのAWS Lambdaのテスト設定

S3イベントのLambda関数でよく使うのはこんなテスト設定です。 なので覚書で …