Amazon API Gateway のリソースポリシーでアクセスコントロール
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" } } } ] }