Slide 1

Slide 1 text

「CDK使わなくていいよ」で 気付いたCDKの権限周りの話 2026/09/08 JAWS-UG CDK #26 〜CDKに関する真夏のLT⼤会〜 内⽥ 陽也

Slide 2

Slide 2 text

⾃⼰紹介 ● 2026年 2⽉ クラスメソッド AI事業本部 ○ ● 2026年 3⽉ GenU案件 いくつか ○ ● 内⽥ 陽也(うちだはるや) ● 札幌 ○ さいたま市 趣味 ○ 今後:AWSもっと詳しくなりたい、セキュリティ‧ ネットワークなどの基礎的な知識をつけたい 出⾝‧住まい ○ ● CDKはじめまして 名前 ○ ● 学⽣インターン⼊社(ド⽂系) ⼸道、ミュージカル鑑賞 ● X : https://x.com/uchiharu3128 ○ 最近始めました! ○ ゆる〜く投稿しています 2

Slide 3

Slide 3 text

1:私の歩み 先⽇のCDKカンファレンスでは、 ボランティアスタッフでお世話になりました!

Slide 4

Slide 4 text

CDKというサービスを知ってから半年が経過しました ● GenUなどの保守案件でCDKを使ったスタック作成・デプロイなどを経験 ● itg・stg・prdなど環境別のデプロイもCDKで対応してきた ● リソースの構成をコードで管理できる実感を少し掴んだ 「デプロイ= CDKを使う」が 当然の選択だと勝手に思っていた 4

Slide 5

Slide 5 text

CDKというサービスよりもGenUのことに囚われ過ぎていた ● GenUの案件が多く、CDKというサービスそのものの理解が十分にできていな いまま、バックエンド・フロントエンドの理解をしようとしていた ● GenUのバックエンド (CDK) 詳細解説 ④GenU CDKスタックの概要 - Qiita ● 上記の一連の記事を読み込んで勉強していた 5

Slide 6

Slide 6 text

6 しかし、当時の私にとっては、GenUのアーキテクチャで登場するAWSの色々なサービス(Lambda, IAM, S3, DynamoDB, CloudFront, CloudFormationなどなど)に面喰らっていた →もっとシンプルにCDKを学びたい!ということでCDK支部さんのワークショップに参加!! →Lambda関数をデプロイするハンズオンで、デプロイがどのように行われているか理解を深めることができ た!

Slide 7

Slide 7 text

2:今回の出来事(エージェント構築のPoC)

Slide 8

Slide 8 text

今回の出来事の背景 8 ● MastraをEC2にデプロイして、お客さんにMastra Studioを見せる ● 具体的な操作はまだ何もしていない段階 ● PMに「デプロイってCDKでいいですよね?」と確認 CDK使わなくていいよ ???(マネコンか、、、?)

Slide 9

Slide 9 text

PMの発⾔の理由 1:権限の話 2:削除しやすさの話(PoCのため) 9

Slide 10

Slide 10 text

気付き①:権限の話 CDKを使うと、デプロイ先環境に対して AWS全サービスへの無制限なアクセス権 を持つロールが作られる ● CDK Bootstrap時に作られる複数のIAMロールのうち ● CloudFormationExecutionRoleにはデフォルトでAdministratorAccessが付与される ● これはEC2に限った話ではなく、CDK=CloudFormation経由でデプロイする限り常に絡んでくる話 ● デフォルト設定は Admin 10

Slide 11

Slide 11 text

気付き②:削除しやすさの話 11 今回はPOC規模(EC2 1台程度) Bootstrapスタックごと管理するより、コンソールで直接作って直接消す方が手間が少ない CDKにはコンストラクトレベルが存在する!! ● CDKを特に工夫なく使うと、Bootstrap一式(S3・ECR・5つのIAMロール)を前提として持つことに なる ● L2 Construct(ec2.Instanceなど)は、指定しなくてもVPC・セキュリティグループ・IAMロールを 暗黙に生成する ○ vpcを指定しなければ新規VPCが作られ、NATゲートウェイなどコストの伴うリソースまで一 緒に生成されることがある ● 削除もスタック単位で行うため、Bootstrapスタックとアプリスタックの2つを意識する必要がある ● コンソールで直接作成すれば、これらを一切持たず、消すのもインスタンス1つで完結する

Slide 12

Slide 12 text

3:まとめ

Slide 13

Slide 13 text

13 ● 権限の大きさ とプロジェクトの性質 (POCか本番か、スコープの大小)を 比較して選ぶ視点を持つようになった ● 権限と削除の話はどちらもCDKの仕組みに起因するものだった! ● GenUはL1とL2のコンストラクトを合成したものも多く、よくよく理解して自分でも書けるようになってい きたい

Slide 14

Slide 14 text

No content