認証済み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;
}
私はシミュレータの許可を確認しましたが、ユーザーにはapiを呼び出す権限があり、APIも展開しています。 APIは認証なしで正常に動作しますが、IAMとAPIキーによる認証を追加するとアクセスできません。私はそれが正式なものだと確信していますが、私はそれを特定できません。 PS:問題のコードを追加しました。 – joev
最近、郵便配達員とAWS認可に関するいくつかの問題があるようです(https://github.com/postmanlabs/newman/issues/360を参照)。これはPATCH操作でしたが、POSTと同じ問題であるかどうかはわかりません。郵便配達員のクライアントを更新しようと思いますか? – Jurgen
問題の言及としてPATCHメソッドではなくPOSTメソッドを使用しています。私はv 4.1.3の最新バージョンのpostmanを使用しています – joev