質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.83%
Curl(プログラミング言語)

Curl(プログラミング言語)は、Webコンテンツ向けのプログラミング言語。HTMLのようなテキスト記述やレイアウトデザイン、JavaScript のようなオブジェクト指向プログラム言語、Java のような重量機能など複数の言語の特徴を一つのフレームワークに統合しています。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

AWS IAM

AWS Identity and Access Management (IAM)は、AWS のサービスやリソースにアクセスできるユーザーやグループを指定し、きめ細かいアクセス許可を一元管理することができるサービスです。

Q&A

受付中

AWS IoT Credential Providerで取得したstsを用いてcloudfront経由でIAM認証を設定しているAPI gatewayにアクセスしたい

hazawa
hazawa

総合スコア0

Curl(プログラミング言語)

Curl(プログラミング言語)は、Webコンテンツ向けのプログラミング言語。HTMLのようなテキスト記述やレイアウトデザイン、JavaScript のようなオブジェクト指向プログラム言語、Java のような重量機能など複数の言語の特徴を一つのフレームワークに統合しています。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

AWS IAM

AWS Identity and Access Management (IAM)は、AWS のサービスやリソースにアクセスできるユーザーやグループを指定し、きめ細かいアクセス許可を一元管理することができるサービスです。

1回答

0グッド

0クリップ

238閲覧

投稿2023/03/30 11:06

編集2023/03/30 11:18

実現したいこと

  • AWS IoT Credential Providerで取得した 一時アクセスキー,シークレットキー,セッショントークンから

curlコマンドを利用してcloudfront経由でIAM認証を設定しているAPI gatewayにアクセスしたい

前提

curlコマンドの--aws-sigv4オプションを使用してIAM認証をしているAPI Gatewayに接続したいです。
同じアクセスキー,シークレットキー,セッショントークンでAPI Gatewayに直接リクエストはできますが
cloud frontに接続しようとするとエラーが出てしまいます。

発生している問題・エラーメッセージ

curl https://api gateway.execute-api.ap-northeast-1.amazonaws.com/dev --aws-sigv4 "aws:amz:ap-northeast-1:execute-api" -H "X-Amz-Security-Token:token" --user "accessKeyId:secretAccessKey" //API ID,認証情報は載せてません

-->意図したレスポンスが帰る

curl https://d.cloudfront.net/dev --aws-sigv4 "aws:amz:ap-northeast-1:execute-api" -H "X-Amz-Security-Token:token" --user "accessKeyId:secretAccessKey"

エラーメッセージ {"message":"The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.\n\nThe Canonical String for this request should have been\n'GET\n/dev\n\nhost:egv5fq4y3e.execute-api.ap-northeast-1.amazonaws.com\nx-amz-date:20230330T105359Z\n\nhost;x-amz-date\ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'\n\nThe String-to-Sign should have been\n'AWS4-HMAC-SHA256\n20230330T105359Z\n20230330/ap-northeast-1/execute-api/aws4_request\na03c859754b8b8f9c94f08e981e3a702e3a7501c36a532636ee560cb2c7261e9'\n"}

試したこと

ここに問題に対して試したことを記載してください。
Host ヘッダーに api gatewayのドメインを追加したところcloudfront経由でも接続することができましたがcloudfrontのみにアクセスを制限するためのAPIキーやリソースベーすポリシーを行うためのカスタムヘッダーが追加されませんでした。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

カスタム認証での話ですが、ヘッダが想定通り渡されていないのが原因のように思えます。
【小ネタ】カスタム認証を使うAPI GatewayをCloudFrontの後ろに置いたらAPIを叩けなくなった

X-Amz-Security-Token:tokenが削除されているのでは。

以下も参考になるかもしれません。
独自の CloudFront ディストリビューションで API Gateway を設定するにはどうすればよいですか?

投稿2023/03/31 02:45

yu_1985

総合スコア7157

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.83%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Curl(プログラミング言語)

Curl(プログラミング言語)は、Webコンテンツ向けのプログラミング言語。HTMLのようなテキスト記述やレイアウトデザイン、JavaScript のようなオブジェクト指向プログラム言語、Java のような重量機能など複数の言語の特徴を一つのフレームワークに統合しています。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

AWS IAM

AWS Identity and Access Management (IAM)は、AWS のサービスやリソースにアクセスできるユーザーやグループを指定し、きめ細かいアクセス許可を一元管理することができるサービスです。