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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
アキキー | Akihisa Ikeda
September 30, 2026
Programming
73
1
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
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
150
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
300
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
4
4.6k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
360
AWSはOSSをどのように 考えているのか?
akihisaikeda
1
200
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
280
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
5
290
AWS CDKの推しポイントN選
akihisaikeda
1
350
地獄絵図!CDKプロジェクトを手動更新して生まれた大量のプロパティ差分を解消する方法
akihisaikeda
5
1.5k
Other Decks in Programming
See All in Programming
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
220
Intent as Code
shoppingjaws
6
1.1k
アクセシビリティから考える情報設計
high_g_engineer
0
430
Are APIs Still Relevant in the AI Era?
soyuka
0
370
Webの地図
yosuke_furukawa
PRO
6
5k
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.2k
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
410
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
250
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
760
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
My Coaching Mixtape
mlcsv
0
330
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
480
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
290
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
What's in a price? How to price your products and services
michaelherold
247
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
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! \ ご清聴ありがとうございました! /