概要
API Gatewayでは、S3のバケットポリシーの様にリソースポリシーを定義することが可能です。今回は、API Gateway のリソースポリシーを使い、アクセス元IPアドレスのホワイトリストを作成する方法をご紹介します。
リソースポリシーの書き方
リソースポリシーには、許可(Allow)、拒否(Deny)のどちらでも記載が可能です。以下サンプルは、許可(Allow)のパターンとなります。
Conditionには、「SourceIp」だけでなく、「SourceVpc」を指定することも可能です。詳細は、下記ドキュメントを参照ください。
API Gatewayコンソールに接続し、対象となるAPIを選択します。左側の展開されたメニューより、「リソースポリシー」を選びます。
下記の通り、リソースポリシーをJSONで記載します。「保存」を押します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"arn:aws:execute-api:ap-northeast-1:123456789012:abcdefg456/*"
],
"Condition" : {
"IpAddress": {
"aws:SourceIp": [ "162.XXX.XXX.XXX/30", "204.XXX.XXX.XXX/32" ]
}
}
}
]
}
ポリシー変更後に行う大切なこと
リソースポリシーを更新後に行う大切なこととして、再度APIのデプロイを行う必要があります。再デプロイを忘れると、エラーメッセージに記載の403 Forbiddenが返ります。ご注意ください。
エラーメッセージ
IPホワイトリストに許可されていないIPアドレスからアクセスを行った場合、403 Forbiddenが返ります。前述の手順通り、IPアドレスをホワイトリストに登録しましょう。
{"Message":"User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:ap-northeast-1:********9012:abcdefg456/prod/test"}
元記事こちら
「API Gateway リソースポリシーにIPホワイトリスト 」
お客様のご要望に柔軟に対応いたします。まずはお気軽にご相談ください。
cloudpackは、アイレット株式会社が提供するクラウド支援サービスです。クラウドの導入・構築から運用・保守、技術的な問い合わせまでトータルサポート!
アイレットでは、様々な職種で一緒に働ける仲間を募集しています。
インフラエンジニア、開発エンジニア、クリエイティブ職、営業職など、様々な職種で一緒に働ける仲間を募集しています。アイレットのこと、社員インタビュー、募集職種、福利厚生など、アイレット公式サイト採用情報をご覧ください。