0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS APIGateway プライベートなエンドポイントをテストする

Last updated at Posted at 2025-01-23

APIGatewayプライベートなエンドポイントをテストする

直接叩けないので、許可されてるVPCエンドポイントにあるEC2などを経由して、ローカルからテスト(APIを呼びたい)したい

プライベートなAPIエンドポイント

スクリーンショット 2025-01-23 16.02.56.png

リソースポリシーでAPIエンドポイント叩けるVPCエンドポイントが制限されている

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "arn:aws:execute-api:ap-northeast-1:999999999999:xxxxxxxxxx/*",
      "Condition": {
        "StringEquals": {
          "aws:sourceVpce": [
            "vpce-00000000000000000"
          ]
        }
      }
    }
  ]
}

999999999999:アカウント ID

xxxxxxxxxx:API ID

vpce-00000000000000000:VPCエンドポイント

許可されてるVPCエンドポイントにあるEC2などを経由して、ローカルからテスト(APIを呼びたい)

https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/STAGE/users

STAGE:ステージ名

  • ①EC2インスタンスにssh(22)とhttps(443)できるようにしておく
    AAA.BBB.CCC.DDD:EC2インスタンスのパブリックIP

  • ②sshポートフォワード

ssh -L 33443:xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com:443 ec2-user@AAA.BBB.CCC.DDD -i ~/.ssh/EC2インスタンス.pem

127.0.0.1:33443 >>>>> AAA.BBB.CCC.DDD:443

これで127.0.0.1:33443をEC2インスタンス(AAA.BBB.CCC.DDD)の443にフォワードする

  • ③curlでAPIを叩く
curl --resolve xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com:33443:127.0.0.1 https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com:33443/STAGE/users

curl --resolve オプションは、特定のホスト名に対して特定の IP アドレスを解決させるために使用します。
これにより、DNS ではなく指定した IP アドレスを使って通信を行うことができます。
/etc/hostsに書く手間が省ける

ちなみにxxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.comでアクセスしないとSSL 証明書の検証エラーになる

% curl https://localhost:33443
curl: (60) SSL: no alternative certificate subject name matches target hostname 'localhost'
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the webpage mentioned above.
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?