Slide 1

Slide 1 text

1 © 2025 Japan Digital Design, Inc. Takuya Yonezawa 2025.01.16 サーバレスアプリケーションを セキュアにするために考える 12 のコト JAWS-UG大阪 決してエントリー枠 間違えたわけじゃないです!

Slide 2

Slide 2 text

2 CONFIDENTIAL © 2025 Japan Digital Design, Inc. 米澤 拓也 Software Engineer Technology & Development Div. 前職ではCCoE、現職ではSoftware Engineer フロント/バックエンドの実装からインフラ構築など何でもやってます JAWS DAYS2025/ JAWS DAYS2024 / PANKRATION2024 の運営(WEB) Fin-JAWSの運営もやってます 奈良 大阪の2拠点生活 好きなAWSサービスは CloudFront、Lambda プロフィール ダウンタウンで買った某Cap 実家は奈良の米農家 よねざわです

Slide 3

Slide 3 text

3 © 2025 Japan Digital Design, Inc. [SVS307] Building secure serverless applications 現地で受けた↑のワークショップがとても良かったのでご紹介

Slide 4

Slide 4 text

4 © 2025 Japan Digital Design, Inc. 1. Cognitoによる認証認可 誰でもアクセスできるとマズイのでCognitoでAPI-GWに認証をつけよう 認証前後にカスタムロジックをいれる場合はLambda Authorizer Lambda API-GW Cognito DynamoDB Authorizer

Slide 5

Slide 5 text

5 © 2025 Japan Digital Design, Inc. 2. Lambdaに過剰な権限はダメ Lambda Role IAM Access Analyzerの自動ポリシー生成機能 ABAC(リソースタグ)を用いたIAMロールのアクセス制限 Permission Boundaryも有用

Slide 6

Slide 6 text

6 © 2025 Japan Digital Design, Inc. 3. Verified Permissionsを用いたAPIアクセス制御 Verified Permissionsを使ってAPIパスごとにアクセス権限の分離 Lambda API-GW Cognito Verified Permissions DynamoDB Permission Policy Lambda Company A Group Company B Group /api/company/A/xxx /api/company/B/xxx /api/company/C/xxx

Slide 7

Slide 7 text

7 © 2025 Japan Digital Design, Inc. 4. SecretManager使おうぜ アプリケーションコードにシークレット情報ベタ書きはダメよ Secrets Magerの値をキャッシュしてコスト削減もしようね Lambda Secrets Manager Aurora user: xxx password: hogehoge

Slide 8

Slide 8 text

8 © 2025 Japan Digital Design, Inc. 5. API Gatewayでの入力バリデーション 変なリクエストは前段(API-GW)でブロック 正規表現やクエリパラメータ、ヘッダーも検証できるよ API-GW name: aaa birth: bbb address: ccc name: string birth: string address: string age: integer Lambda name: aaa birth: bbb address: ccc age: 100

Slide 9

Slide 9 text

9 © 2025 Japan Digital Design, Inc. 6. アプリケーションの依存ライブラリ脆弱性 npm auditコマンドでライブラリ脆弱性のチェックを ソフトウェアサプライチェーン攻撃 流行ってるからね npm audit

Slide 10

Slide 10 text

10 © 2025 Japan Digital Design, Inc. 7. InspectorによるLambdaの脆弱性スキャン Lambdaが使っているライブラリの脆弱性スキャン + Lambdaコードがベストプラクティスに沿っているかチェック Lambda Inspector 継続スキャン

Slide 11

Slide 11 text

11 © 2025 Japan Digital Design, Inc. 8. 通信の暗号化 Private Subnet内通信でも、規制要件によってはSSL通信が必要 みなさんやってます?? Lambda Aurora Private subnet VPC SSL 非SSL

Slide 12

Slide 12 text

12 © 2025 Japan Digital Design, Inc. 9. API Gatewayの実行計画 APIキー(使用量プラン)を利用して、利用者ごとのAPI利用量を制御 Noisy Neighbor問題対策にも Lambda API-GW Cognito Authorizer Company A Group Company B Group Company B APIキー Company A APIキー req/min:10 req/sec:1 req/min:300 req/sec:20

Slide 13

Slide 13 text

13 © 2025 Japan Digital Design, Inc. 10. WAFで悪意のあるリクエストからガード 悪いことは言わないので、 インターネットに接地するリソースにはWAFをアタッチしましょう URL特定されたらめっちゃアタックっぽいのが来ます API-GW WAF

Slide 14

Slide 14 text

14 © 2025 Japan Digital Design, Inc. 11. GuardDutyでLambdaのアクティビティ検知 GuardDutyは嫁 と言ってる人もいるくらい重要 GuardDuty Lambda Protectionでネットワーク観点での保護 GuardDuty Lambda 不審なアクティビティを 検出 C&Cサーバへの通信 コインマイニング通信 ブラックホールIPへの通信 etc…

Slide 15

Slide 15 text

15 © 2025 Japan Digital Design, Inc. 12. X-Rayを用いたトレース アプリケーションの可観測性はSecurityの観点からも重要 X-Rayはアプリケーション開発時にポチッと有効にするのを大原則に Lambda API-GW X-Ray X-Ray

Slide 16

Slide 16 text

16 © 2025 Japan Digital Design, Inc. 以上! https://catalog.us-east-1.prod.workshops.aws/workshops/ 026f84fd-f589-4a59-a4d1-81dc543fcd30

Slide 17

Slide 17 text

Thank you. 17 © 2025 Japan Digital Design, Inc.