ヤマムギ

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 Transfer Family EFS向けのSFTP対応サーバー

EFSファイルシステムは作成済です。 AWS Transfer Family S …

LINE Bot APIのファーストステップをLambda+API Gatewayでやってみたらものすごく簡単で驚いた

トライアル当初はホワイトリストのしばりや、初回反応するまで時間がかかったりとみな …

EC2スケジュールリザーブドインスタンスって終わりましたん?

ユーザーガイドのScheduled Reserved Instancesを見ると …

Intel 82599 VF インターフェイスで拡張ネットワーキングが有効なEC2インスタンスで帯域幅を確認してみました

拡張ネットワーキングが有効なEC2インスタンスとそうではないインスタンスの2セッ …

AWS LambdaでS3 Select

RDSスナップショットをS3にエクスポートした、Parquetフォーマットのデー …

Former2で既存リソースのCloudFormationテンプレート出力を試してみた

JAWS DAYS 2020の資料確認のお手伝いを少ししてまして、「ゼロからはじ …

ENAが有効なEC2インスタンスの帯域幅をiperf3で確認してみた

同じ Amazon VPC 内で Amazon EC2 Linux インスタンス …

ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン 手順

このブログは2020/5/6に開催しました、「ヤマムギ vol.10 (AWS) …

VPN接続先のADで管理されているドメインにEC2 Windowsインスタンスから参加する

オンプレミスに見立てたオハイオリージョンにVyOSインスタンスを起動して東京リー …

TuneCoreの売上データCSVをS3に格納してAthenaのクエリをRe:dashのデータソースにして可視化する

先日参加しましたAWS Summit Tokyo 2017で、 [JapanTa …