1

認証済みPOST APIゲートウェイにPostman Rest Clientを使用しようとしていますが、禁止メッセージでステータス403が表示されます。RESTクライアントのAWS_IAMとAPIキーを使用してAWS APIゲートウェイを認証します。

{ "メッセージ": "禁止" }

Iはアクセスキー、のSecretKey、AWSリージョンとサービス名を持つAWS署名認証を使用しています。私はそれが私の安息を許さない理由を理解していない、それは私のAccessKeyとSecretKeyのペアが権限を欠いていることと関係がある? (私のユーザーは管理者の考えです)

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/dev/score", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "POST", 
    CURLOPT_POSTFIELDS => "input1=1&input2=2", 
    CURLOPT_HTTPHEADER => array(
    "authorization: AAAA-AAAA-XXX123 Credential=XXXXXXXXXX/20160414/us-west-2/execute-api/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=sdddddssdddddddddddddddddsdsdsdsdsdsdsdsdsdsd", 
    "cache-control: no-cache", 
    "content-type: application/javascript", 
    "host: xxxxxxxxxx.execute-api.us-west-2.amazonaws.com", 
    "postman-token: abf462fe-24ae-244d-ba8d-d3e953f0e712", 
    "x-amz-date: 20160414T084331Z" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

答えて

1

これは複数の理由がありますが、失敗したサンプルの設定を共有したいですか?

次のことを確認してください:

  1. あなたのAPIを導入しましたか?
  2. ユーザーに適切な権限がありますか?管理されたIAMポリシー "AmazonAPIGatewayInvokeFullAccess"を使用するか、独自のポリシーを作成することができます。詳細についてはdocumentationをご覧ください。

ベスト、

ユルゲン、APIゲートウェイ

+0

私はシミュレータの許可を確認しましたが、ユーザーにはapiを呼び出す権限があり、APIも展開しています。 APIは認証なしで正常に動作しますが、IAMとAPIキーによる認証を追加するとアクセスできません。私はそれが正式なものだと確信していますが、私はそれを特定できません。 PS:問題のコードを追加しました。 – joev

+0

最近、郵便配達員とAWS認可に関するいくつかの問題があるようです(https://github.com/postmanlabs/newman/issues/360を参照)。これはPATCH操作でしたが、POSTと同じ問題であるかどうかはわかりません。郵便配達員のクライアントを更新しようと思いますか? – Jurgen

+0

問題の言及としてPATCHメソッドではなくPOSTメソッドを使用しています。私はv 4.1.3の最新バージョンのpostmanを使用しています – joev

3

あなたはAPIキーを使用している場合は、 "X-APIキー" ヘッダーを設定してください。

私は、使用計画を作成してその計画をAPIステージとAPIキーにリンクするまで同じ問題を抱えました。

2

「APIキー必須」オプションをtrueに設定した場合、以下を確認してください。

  1. 変更を更新するためにAPIをデプロイします。
  2. APIヘッダーパラメーターに 'x-api-key' HTTPヘッダーパラメーターを渡す必要があります。
  3. APIキーを作成する必要がありました。
  4. さらに、APIゲートウェイコンソールのAPIキーの使用計画を確認する必要があります。
関連する問題