2016-06-28 16 views
0

私はhttp-endpoint-Aを持っています。AWSのAPIゲートウェイでHTTPプロキシ経由のAWS_IAM資格情報を実際のHTTPエンドポイントにマップする方法は?

別のhttp-endpoint-B経由でこのエンドポイントを呼び出すことができます。

だから、B - >

私たちは、上記の操作を行うためにAWS API Gatewayを使用しています。今 - AはAWS_IAMで保護されており、Bは保護されていません。したがって、x-amz-security-token、AccessKey、SecretKey、X-Amz-Date、Authorizationが必要です。私はAPIゲートウェイのAPIのリソース機能 - メソッド要求と適切なマッピングを行うための統合要求を使用しました。

{ 「メッセージ」:「我々は計算要求署名は、あなたが提供するシグネチャが一致しないチェックの様々な他の方法をやったが、最後に、私は次のエラーを取得しています

enter image description here

あなたのAWSシークレットアクセスキーと署名方法......「 」

私がここで紛失していることを知っているかもしれませんか?私は既にドキュメントやその他の参考文献を見てきましたが、適切なものは見つかりませんでした。

+0

*今はAがAWS_IAMで保護されています...だから、x-amz-security-token、AccessKey、SecretKeyが必要です。 ** **あなたの秘密鍵を要求するAWSサービスはありません。それは**秘密**キーです。 –

+0

@ Michael-sqlbot私は、意図したリソースにアクセスするための一時的な資格情報(x-amz-security-token、AccessKey、SecretKey)を返すAmazon Cognito(それを中心としたラムダ/認証コードを書いています)を使用しています。 –

+0

ああ、そうですね。 –

答えて

0

エラーは、エンドポイントAがsigV4で署名された要求を期待していることを示しています。現在、APIゲートウェイは、「AWS Service Proxy」統合タイプを使用している場合にのみ、バックエンド統合エンドポイントへの要求に署名します。これはデフォルトでは表示されません。メソッドを設定するときは、「統合タイプ」で「詳細表示」をクリックします。これにより、「AWS Service Proxy」が表示されます。これを選択すると、統合フィールドがAWSサービスの呼び出しに関連する新しいセットに変更されます。 example of using the AWS Service Proxy can be found here

APIゲートウェイは現在、すべてのAWSサービスの呼び出しをサポートしていません。具体的には、他のAPIゲートウェイAPIを統合エンドポイントとして呼び出すことはサポートしていません。したがって、エンドポイントAが別のAPIゲートウェイAPIである場合、これは機能しません。 APIゲートウェイが現在サポートしていないAWSサービスを呼び出す必要がある場合は、ラムダ関数を作成してエンドポイントを呼び出し、APIゲートウェイからラムダ関数を呼び出すことで回避できます。

+0

私はそれに取り組んで、私はここでステータスを更新します。 –

+0

JavaのLambda関数からエンドポイントを呼び出す方法の例(コードスニペット)を共有できます。私はこれを見つけました:https://github.com/awslabs/aws-apigateway-sdk-java、しかし私は例を見つけませんでした。必要なエンドポイント値を持つ構造体を設定して呼び出す方法、またはエンドポイントを呼び出すために標準のhttpライブラリを使用する必要がありますか? –

関連する問題