API GatewayでプライベートAPIを作成する方法
プライベートAPIを作成して、自分のアカウントのEC2からしかアクセスできないプライベートAPIを作成します。
エンドポイントの作成
まずVPCでエンドポイントを作成します。
セキュリティグループを指定します。インバウンドルールに443ポートを追加します。
「エンドポイントの作成」をクリックして完了です。VPCエンドポイントIDをAPI Gatewayで使います。
REST API(プライベート)の作成
API GatewayでREST API(プライベート)を作成します。
エンドポイントタイプを「プライベート」にします。そうするとVPCエンドポイントID入力欄が表示されますので、先ほど作成したVPCエンドポイントIDを入力します。
入力したら、「APIの作成」をクリックして完了です。
リソースポリシーの設定
プライベートAPIでは必ずリソースポリシーを設定しなければいけません。
以下のようにVPCエンドポイントIDを指定します。複数ある場合は、配列にしてカンマ区切りで指定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:ap-northeast-1:111222333444:u11122xxx3/*",
"Condition": {
"StringEquals": {
"aws:sourceVpce": "vpce-0a1234cdf6bee1234"
}
}
}
]
}
仮にVPCエンドポイントを指定しない場合(Condition部分)、他アカウントのEC2から、プライベートAPIにアクセスすることが出来てしまうらしいので注意です。(試したことありません)
エンドポイントのプライベートDNS名が無効の場合
エンドポイントのプライベートDNS名が無効の場合ですが、curlで叩く際にヘッダにHostとURLはパブリックDNSを指定する必要があります。
[ec2-user@ip-10-0-0-100 ~]$ curl -X GET \
-H 'Host:{api-id}.execute-api.ap-northeast-1.amazonaws.com' \
https://{VPCエンドポイントID}.execute-api.ap-northeast-1.vpce.amazonaws.com/v1/Employee/1

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^





コメント