大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

【AWS/Python】Lamdaオーソライザー リクエストパラメーター × IPアドレス制限(2/2)

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

概要

Lambdaオーソライザーでリクエストパラメーターベースの認証とIPアドレス制限を実装します。

AWSの公式サイトでは、IPアドレス制限はリソースポリシーで実装するのが一般的なようです。 API Gateway リソースポリシーが認証ワークフローに与える影響 - Amazon API Gateway

今回の記事は前回の続きになります。
LambdaオーソライザーでIPアドレス制限を実装していきます。

↓前回の記事はこちら↓
[:title]

IPアドレス制限の実装

IPアドレス制限を実装

前回作成したオーソライザー用のLambda関数に設定を追加します。

ConditionにIPアドレスを設定することも重要ですが、Resourceも重要です。

こちらの変数resourceに入っているAPIメソッドのARN(methodArn)がないと、APIGatewayがIAMポリシーを判定をしてくれません。

api-auth.py

~~~~~~~~~~~~~

def generate_policy(principalId, effect, resource):
    # if effect and resource:
    authResponse = {
        'principalId': principalId,
        'policyDocument': {
            'Version': '2012-10-17',
            'Statement': [{
                'Action': 'execute-api:Invoke',
                'Effect': effect,
                'Resource': [resource],
 ++              'Condition': {
 ++               'IpAddress': {
 ++                  'aws:SourceIp': ['アクセス許可するIPアドレス']
 ++              }
 ++          }
            }]
        },
        'context': {
            'stringKey': 'stringval',
            'numberKey': 123,
            'booleanKey': True
        }
    }

    return authResponse

~~~~~~~~~~~~~

アクセス許可するIPアドレスは、CIDR表記も設定できるようです。



今後に向けて

EFSの記事が後回しになっているので、なんとかしたいな。。。



参考

素晴らしい記事に感謝致します。
API GatewayのCustom AuthorizerでIP制限する - Qiita
API Gateway リソースポリシーの例 - Amazon API Gateway