認可にAWS IAMを設定してcurlする – 【API Gateway】
REST APIとHTTP APIどちらでも対応しているAWS IAM認可処理を実装してみます。
REST API
REST APIで実装してみます。
GETメソッドに対して「編集」をクリックします。
「保存」をクリックします。
デプロイ
APIをデプロイします。ステージ名は「dev」とします。
curl
CloudShellでcurlしてみます。※2024.02.22時点でのCloudShell環境のcurlは8.5.0です
curl -i -X GET \ https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/dev/test HTTP/2 403 date: Tue, 27 Feb 2024 06:56:47 GMT content-type: application/json content-length: 42 x-amzn-requestid: 5b14d22a-1279-4414-81c1-e572162d2436 x-amzn-errortype: MissingAuthenticationTokenException x-amz-apigw-id: TyIjZEo3NjMEupQ=
403エラーになります。再度、--user
オプションでクレデンシャル情報を設定する必要があります。
$ export AWS_ACCESS_KEY_ID=クレデンシャル情報 $ export AWS_SECRET_ACCESS_KEY=クレデンシャル情報 $ curl -i --aws-sigv4 "aws:amz:ap-northeast-1:execute-api" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/dev/test HTTP/2 200 date: Tue, 27 Feb 2022 07:28:48 GMT content-type: application/json content-length: 20 x-amzn-requestid: 5f684501-929a-4463-afdc-4f7356045082 x-amz-apigw-id: TyNPiE-nNjMEQbw= x-amzn-trace-id: Root=1-65dd8f2f-72aebbcd1eb655a44024d747;Parent=22d022b07a9e65a4;Sampled=0;lineage=a606f8d0:0
ステータスコードが200になりました。
ドキュメント
CURLOPT_AWS_SIGV4
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^