Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装し...
Search
アキキー | Akihisa Ikeda
September 30, 2026
Programming
160
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
アキキー | Akihisa Ikeda
September 30, 2026
More Decks by アキキー | Akihisa Ikeda
See All by アキキー | Akihisa Ikeda
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
130
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
180
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
340
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
4
4.6k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
370
AWSはOSSをどのように 考えているのか?
akihisaikeda
1
210
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
340
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
5
300
AWS CDKの推しポイントN選
akihisaikeda
1
380
Other Decks in Programming
See All in Programming
AIに “答え“を書かせるのを やめてみた
___akari11
0
130
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
2
1.1k
No More NoSuchMethodError
exoego
1
110
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
870
Performance Optimization With LLMs
xleitix
0
170
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Jetpack Compose Mechanisms
skydoves
3
840
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
1k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.8k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.7k
golang-bob.pdf
iwatsukayura
0
130
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
120
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Accessibility Awareness
sabderemane
1
250
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
GitHub's CSS Performance
jonrohan
1033
470k
Facilitating Awesome Meetings
lara
57
7.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Designing for Timeless Needs
cassininazir
1
530
How to Talk to Developers About Accessibility
jct
2
590
Automating Front-end Workflow
addyosmani
1369
210k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Transcript
JAWS-UG 茨城 #17 秋の推しAWSサービスLTまつり! CloudFormation未対応でも諦めない! AWS CDKのカスタムリソースで Continuum(旧Security Agent)を実装した話 2026.9.30(水)
池田 晃尚(@akikii__)
アキキー | 池田 晃尚 株式会社メイツ バックエンドエンジニア / SRE 推しサービス AWS
CDK JAWS-UG CDK支部 AWS Community Builders Dev Tools, 2026〜
AWS CDKとは? プログラミング言語でAWSリソースを定義するIaCフレームワーク → プログラミング言語 コードからCloudFormation テンプレートを合成 Special Thanks! Shota
Kawasaki (@kawaaaas) → CloudFormation リソースの状態と比較して 差分をデプロイ AWSリソース
プロジェクトで Continuumコードスキャニングを 導入したときの話をします
Continuumコードスキャニングとは? Continuum(Security Agentが改名)の機能の1つ AIエージェントがソースコードをスキャンして脆弱性を検出する機能 フルリポジトリスキャン リポジトリ スキャン結果 GitHub GitLab Bitbucket
High リポジトリ全体を読む Continuum コードスキャニング 旧AWS Security Agent など Create a code review - AWS Security Agent (now part of AWS Continuum) 脆弱性と修正案を出す 例 SQLインジェクション src/db/query.ts:42 - query(`... id = ${id}`) + query("... id = ?", [id]) Medium ハードコードされた 秘密情報 config/app.ts:8 https://docs.aws.amazon.com/securityagent/latest/userguide/perform-code-review-scan.html
Continuumコードスキャニングとは? リソース構成 GitLab アクセストークン AWS Continuum (旧AWS Security Agent) 接続
Integration GitLabと接続する CloudFormation未対応 リポジトリ CodeReviewがスキャンする AgentSpace CloudFormation対応 Continuumが管理するアプリの単位 CodeReview CloudFormation未対応
AWS CDKとは?(再) プログラミング言語でAWSリソースを定義するIaCフレームワーク → プログラミング言語 コードからCloudFormation テンプレートを合成 → CloudFormation リソースの状態と比較して
差分をデプロイ AWSリソース
AWS CDKとは?(再) プログラミング言語でAWSリソースを定義するIaCフレームワーク → → CloudFormation未対応のリソースは 標準的な方法ではCDKで定義できない プログラミング言語 コードからCloudFormation テンプレートを合成
CloudFormation リソースの状態と比較して 差分をデプロイ AWSリソース
ContinuumコードスキャニングをCDKで管理するため カスタムリソースで定義しました!
カスタムリソースとは? CloudFormationのライフサイクルに合わせてカスタムの処理を実行する仕組み カスタムリソース カスタムリソースを新規作成 Create カスタムリソースのプロパティを更新 Update CloudFormation のリソース カスタムリソースを削除
APIを呼ぶ Lambda関数 API AWS・外部のAPI Delete CloudFormationが応答を待ち受ける カスタムリソースを使用してカスタムプロビジョニングロジックを作成する S3オブジェクト 実行結果を書き込む https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/template-custom-resources.html
カスタムリソースとは? e.g. S3バケットを空にするカスタムリソース Bucket(L2 Construct)で autoDeleteObjects: true にすると作られる カスタムリソース 何もしない
Create CloudFormation のリソース Update Delete 何もしない Lambda関数 S3バケット オブジェクトを全て削除する
実装が複雑になりそうだけど… 何故そこまでしてCDKで定義したかったの? CloudFormationのライフサイクルで管理できる 定義したリソースを複製しやすい e.g. リポジトリごとにCodeReviewを作れる 設定を設計意図と一緒にソースコードに残せる マネコンから作ると設計意図を残すには別途ドキュメントが必要 ほかにも 他のリソースと合わせてCDKで統一できる
CloudFormationが対応したらL1 Constructに取り込みやすい
それでは... Continuumコードスキャニングを CDKのカスタムリソースを使って定義します
Continuumコードスキャニングのリソース構成 GitLab アクセストークン AWS Continuum (旧AWS Security Agent) 接続 Integration
GitLabと接続する CloudFormation未対応 リポジトリ CodeReviewがスキャンする AgentSpace CloudFormation対応 Continuumが管理するアプリの単位 CodeReview CloudFormation未対応 → Integration・CodeReviewをカスタムリソースで定義します!
CodeReviewを定義するためのポイント 連携したリポジトリをコードスキャンするためのリソース CloudFormationのイベントに対応したAPIが揃っている Create: CreateCodeReview Update: UpdateCodeReview Delete: BatchDeleteCodeReviews AWS
Security Agent API Reference - Actions https://docs.aws.amazon.com/securityagent/latest/APIReference/API_Operations.html
CodeReviewを定義するためのポイント 連携したリポジトリをコードスキャンするためのリソース CloudFormationのイベントに対応したAPIが揃っている Create: CreateCodeReview Update: UpdateCodeReview Delete: BatchDeleteCodeReviews →
AwsCustomResourceを利用する AWS Security Agent API Reference - Actions https://docs.aws.amazon.com/securityagent/latest/APIReference/API_Operations.html
AwsCustomResourceとは? CDKが提供しているカスタムリソースの作り方の1つ CloudFormationイベントごとにAWS SDKを1つだけ実行できる プロパティを渡すだけで簡単にカスタムリソースを作成できる 指定したAWS SDKからIAMポリシーを自動で生成する 権限が足りない場合は自分で指定する必要あり class AwsCustomResource
(construct) · AWS CDK https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.AwsCustomResource.html
AwsCustomResourceとは? CodeReviewの定義例 プロパティ カスタムリソース(AwsCustomResource) AWS SDKの呼び出しを渡す onCreate: action: CreateCodeReview parameters:
{…} onUpdate: action: UpdateCodeReview parameters: {…} onDelete: action: BatchDeleteCodeReviews parameters: {…} CreateCodeReview Create CloudFormation のリソース Update Lambda関数 UpdateCodeReview CodeReview AwsCustomResourceが作成 Delete BatchDeleteCodeReviews
Integrationを定義するためのポイント リポジトリとContinuumを連携するためのリソース プロパティにアクセストークン(シークレット)を指定する必要がある テンプレートやログからシークレットが流出してしまう 回避しようとすると単一のAWS SDK呼び出しでは実現できない AwsCustomResourceは利用できない
Integrationを定義するためのポイント リポジトリとContinuumを連携するためのリソース プロパティにアクセストークン(シークレット)を指定する必要がある テンプレートやログからシークレットが流出してしまう 回避しようとすると単一のAWS SDK呼び出しでは実現できない AwsCustomResourceは利用できない → カスタムリソースプロバイダーフレームワークを利用する
プロバイダーフレームワークとは? CDKが提供しているカスタムリソースの作り方の1つ CloudFormationイベントに合わせた処理をLambda関数で書ける 処理はソースコードで書くので、複雑な処理も任せられる カスタムリソースに必要な機能を簡単に使える CloudFormationとのやり取り エラーハンドリング 非同期処理のポーリング など… 呼び出す処理に必要な権限は自分で付与する必要がある
Provider Framework · AWS CDK https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#provider-framework
プロバイダーフレームワークとは? Integrationの定義例 ※ 簡素化のためCreateイベントのみに省略 カスタムリソース(プロバイダーフレームワーク) ① トークンを取得 GetSecretValue プロパティ 自分で決めた値を渡す
secretArn など… CloudFormation のリソース Create Lambda関数 Lambda関数 フレームワークが作成 自前で書く フレームワーク用 処理用 ② トークンを指定 CreateIntegration Secrets Manager アクセストークン Integration
AwsCustomResourceと プロバイダーフレームワークの使い分け 基本はAwsCustomResourceを使い、 実現できない要件があるときだけプロバイダーフレームワークを使う AwsCustomResource AWS SDKの呼び出し1回で済む プロバイダーフレームワーク APIの呼び出しが1回に収まらない 非同期処理の完了を待ちたい
AWS SDKではできない処理をしたい
おわりに カスタムリソースを使えば CloudFormation未対応のサービスも CDKで管理できる! その他にも... CloudFormationで定義できないものを管理したい デプロイしたリソースにデータを投入したい デプロイフローに処理を差し込みたい デプロイ時に外部から情報を取得したい
宣伝
積極採用中 バックエンド/フロントエンド/SRE 株式会社メイツ Mates Inc. カジュアル面談はこちら
Thank You! \ ご清聴ありがとうございました! /