我正在尝试使用postman rest客户端访问经过身份验证的POST API网关,但我收到带有禁止消息的状态403。
{ “消息”:“被禁止” }
我正在使用AWS签名身份验证与AccessKey,SecretKey,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;
}
答案 0 :(得分:3)
如果您使用的是API密钥,请务必设置" x-api-key"报头中。
在创建使用计划并将计划链接到API阶段和API密钥之前,我也遇到了同样的问题。
答案 1 :(得分:3)
如果您将'API Key Required'选项设置为true,请检查以下内容。
答案 2 :(得分:1)
这可能有多种原因,您是否介意在失败的情况下共享示例设置?
请检查以下内容:
最佳,
Jurgen,API网关
答案 3 :(得分:0)
当未将API部署到API网关或您访问错误的路径/ your-rout而不是/ api-name / your-route时,通常会发生这种情况。