Amazon API Gateway のリソースポリシーでアクセスコントロールできるようになりました。
Amazon API Gateway が、API のリソースポリシーをサポート
公式サンプルではAWSアカウントのホワイトリスト、IP範囲のブラックリストがあります。
他にも時間やユーザーエージェント(UA)やユーザーIDなどのキーが用意されていて、各種設定を組み合わせたアクセスコントロールが簡単に設定できます。
AWS Conditions that can be used in API Gateway Resource Policies - Amazon API Gateway
以下、UAとIP範囲のアクセスコントロールを例にメモしておきます。
UAとIP範囲のAND条件によるアクセスコントロール
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:execute-api:ap-northeast-1:XXXXXXXXXXXX:yyyyyyyyyy/*/GET/",
"Condition": {
"StringLike": {
"aws:UserAgent": "test"
},
"IpAddress": {
"aws:SourceIp": "ZZ.ZZ.ZZ.ZZ/ZZ"
}
}
}
]
}
UAとIP範囲のOR条件によるアクセスコントロール
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:execute-api:ap-northeast-1:XXXXXXXXXXXX:yyyyyyyyyy/*/GET/",
"Condition": {
"IpAddress": {
"aws:SourceIp": "ZZ.ZZ.ZZ.ZZ/ZZ"
}
}
},
{
"Effect": "Allow",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:execute-api:ap-northeast-1:XXXXXXXXXXXX:yyyyyyyyyy/*/GET/",
"Condition": {
"StringLike": {
"aws:UserAgent": "test"
}
}
}
]
}