「CDK使わなくていいよ」で 気付いたCDKの権限周りの話
by
Haruya Uchida
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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