※以下のご紹介文はスライドからChatGPTで生成しました
AWS環境でマルチテナントSaaSを開発している方や、Lambda Authorizer を活用した認証・認可を検討している方に向けて、JAWS-UG名古屋 2月会で発表した「複数のAWSアカウントから横断で利用するLambda Authorizerの作り方」を紹介します。(→資料は本ブログ記事の最後の方にあります)
この記事では、AWS API GatewayとLambda Authorizerを活用し、複数のAWSアカウントをまたぐ認証・認可の統合管理を実現する手法を解説します。
目次
Lambda Authorizerとは?
Lambda Authorizer(カスタムオーソライザー) は、API Gatewayでの認可処理をカスタマイズできる機能です。JWT(JSON Web Token)やOAuth 2.0のトークンを検証し、リクエストの許可・拒否を柔軟に制御できます。
マルチテナント環境では、各サービス事業者が異なるAWSアカウントを使用することが一般的ですが、個別にLambda Authorizerを実装するとデプロイや運用の負担が増大します。そのため、複数のAWSアカウント間で共有できるLambda Authorizerの構築が重要となります。
複数AWSアカウントに対応したLambda Authorizerの設計
本セッションでは、TC3が開発・提供するTactna(タクトナ)の事例をもとに、複数のAWSアカウント間で認証を統合する方法を解説しました。
1. 認証基盤の課題
- 事業者ごとに異なるAWSアカウントを持つ環境では、API GatewayごとにLambda Authorizerを設定すると運用が煩雑になる。
- JWTの発行元を制御しないと、他の事業者のAPIを実行できてしまうリスクがある。
2. 統合Lambda Authorizerの構築
- Lambdaのリソースポリシー を活用して、複数のAWSアカウントから統合的に利用可能なLambda Authorizerを実装。
- JWTに発行元のAWSアカウントIDを格納し、他の事業者のAPI実行を防ぐセキュリティ対策を導入。
API Gateway & Lambda Authorizer の最適化
AWS環境における認証基盤を効率化するため、以下の最適化ポイントを紹介しました。
1. Lambda Authorizerのペイロード設定
- REQUESTタイプ:HTTPリクエストの詳細情報を取得可能で、細かな制御ができる。
- TOKENタイプ:シンプルなトークン認証が可能で、正規表現を使った無駄なリクエストの排除ができる。
2. キャッシュの活用
- Lambda Authorizerの結果をキャッシュし、同じリクエストでの認証処理を高速化。
- APIのパスごとにキャッシュ設定を最適化し、不要なLambda実行を削減。
まとめ:Lambda Authorizerを活用した認証基盤の最適化
本セッションでは、複数のAWSアカウントを統合するLambda Authorizerの設計と実装について解説しました。
- Lambda Authorizerとリソースポリシーを活用し、マルチテナント環境での認証を最適化。
- JWTの発行元情報を活用し、より安全なAPI認可を実現。
- API Gatewayのペイロード設定やキャッシュ機能を適用し、パフォーマンスを向上。
AWS環境での認証管理を効率化し、スケーラブルなLambda Authorizerを設計・運用するためのベストプラクティスを紹介しました。
今後もAWS認証・認可のベストプラクティスを共有していきますので、ぜひチェックしてください!
資料はこちら
TC3では、上記のような複数サービスを組織に対して提供するような実装をMS&ADインターリスク総研様向けにご支援させていただきました。事例記事がありますので、是非ご参照ください。
今回の記事で紹介したような課題に対応するソリューションとして、「Tactna Identity Platform」を提供しています。認証認可機能から、複数向けのサービスポータルまで統合的に提供しています。
Tactnaのデモや詳細ご紹介資料をぜひご確認ください!
(以下バナーもしくはこちらから)
