LoginSignup
2
2

More than 3 years have passed since last update.

AWS API GatewayにおけるIP制限

Posted at

AWS API GatewayにおけるIP制限

AWS Security Groupsのように簡単にInbound rules設定ができなかったので備忘録。
ホワイトリストの設定の仕方。

API Gatewayのコンソール上から設定

1.Amazon API Gateway > APIs > 該当のAPI > Resource Policy
2.下記ソースを参照。aws:SourceIpに許可したいIPを入れる。複数のIPを同時に設定できる。
3.Save。保存したとたんにAWSが自分の気に入る形にjsonを書き換えることがある。たぶん問題はない。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "execute-api:/*/*/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "0.0.0.0/0"
                }
            }
        }
    ]
}

APIG_IP制限.PNG

設定後は忘れずにデプロイ

ホワイトリストを設定したら、APIをデプロイしないと反映されない。
1.Amazon API Gateway > APIs > 該当のAPI > Resources
2.Actionsプルダウンから、Deploy APIを選択する。
3.Deployment stageを選択し、任意で説明も記載してDeploy。
4.Amazon API Gateway > APIs > 該当のAPI > Stages > 該当のStage
5.Deployment Historyタブで、デプロイが成功していたら完了。

動作確認

ホワイトリストで許可したIPでアクセスしてみて、200が返ってくれば成功。
許可していないIPでアクセスしてみて、403が返ってくれば成功。

その他

Resource Policyを修正したら、設定を壊してしまった…
→デプロイ履歴から、成功していた時のデプロイに戻る。
 1.Amazon API Gateway > APIs > 該当のAPI > Stages > 該当のStage
 2.Deployment Historyタブで、設定を壊す前のデプロイを選択してChange Deployment。
 3.Current stageで選択したデプロイ履歴にチェックついていればOK。
  ※デプロイ履歴をわかりやすくするため、デプロイ時にはDescriptionを記載しておいた方が良い。
  ※※この作業で、いつでもどのデプロイ(設定)へも戻れる。

2
2
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
2
2