Amazon API Gatewayのリソースポリシーで呼び出し元IPをホワイトリスト制限
公式にIP範囲のホワイトリストのサンプルが無かったので一応
もくじ
設定方法
API Gatewayのトップ画面で対象のAPIを選択 → 左メニューの『リソースポリシー』を選択。
大きい入力欄が出てくるのでリソースポリシーをJSONで入力して保存。
左メニューの『リソース』 → 『アクション▼』 → 『APIのデプロイ』して、数分待つと反映される。
書き方は公式マニュアル参照。
Amazon API Gateway リソースポリシーを使用して API へのアクセスを制御する - Amazon API Gateway
全てのステージ・メソッド・パスで 1.1.1.1, 2.2.2.0 ~ 255 からの実行のみ許可
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": ["1.1.1.1", "2.2.2.0/24"]
}
}
}
]
}
特定のステージ・メソッド・パスで 1.1.1.1 からの実行のみ許可
- ステージ = teststage
- メソッド = POST
- パス = /user/update
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/teststage/POST/user/update",
"Condition": {
"IpAddress": {
"aws:SourceIp": "1.1.1.1"
}
}
}
]
}
特定のステージ・メソッド・パスは 1.1.1.1 からの実行のみ許可、それ以外はどこからでも許可
- ステージ = teststage
- メソッド = POST
- パス = /user/update
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/teststage/POST/user/update",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "1.1.1.1"
}
}
}
]
}