ヤマムギ

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年もよろしくお願いいたします!


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

【PR】 「AWS認定試験対策 AWS クラウドプラクティショナー」という本を書きました。

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

【PR】 「ポケットスタディ AWS認定 デベロッパーアソシエイト」という本を書きました。

 - AWS ,

ad

ad

  関連記事

Amazon SESの受信ルールでSNSトピックを追加

SESの受信ルールにSNSトピックを設定してみました。 [View Active …

RocketChat(EC2インスタンス)でCPU80%以上を10分間継続したら再起動する

先日、数日間のやり取り用で完全に使い捨てとして使っているRocketChatで、 …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo 2016 アップデート追っかけ会

「JAWS-UG Osaka 第15回勉強会 AWS Summit Tokyo …

AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確認する

ユーザーガイドのサービスコントロールポリシーの例にはDeny(拒否)ばっかりでA …

AWS Lambda(Python)からZoom投票作成

以前、Zoomの投票(アンケート)をAPI経由で作成するというブログで書きました …

AWS EC2 Amazon Linuxにmauticをインストールする(Sendgrid, Nginx, MySQL on RDS)

mauticをAmazon LinuxとNginx,MySQL on RDSにイ …

API Gatewayから直接 DynamoDBに書き込む

やりたいこと WebページでOやXを押したときに、どっちを押したかをDynamo …

Backlogの課題チケット更新内容をMicrosoft Teamsに通知する(AWS Lambda Python)

BacklogにSlack連携が追加されました。 ですが、私の所属している会社で …

Amazon S3バケットでMFA Deleteを有効にする

バージョニングが有効なバケットでバージョン削除でMFA Deleteを有効にして …