---
title: CDKでIAMを管理する技術 - IaCでのIAM管理ベストプラクティスについて考える
tags: 
author: [alichan](https://image.docswell.com/user/alichan-69)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/G7WZRRKP72.jpg?width=480
description: [IAMスペシャル！]Security-JAWS【第39回】 勉強会での登壇資料です！ CDKのベストプラクティスについて自分なりに考察してみたことを記載しました。
published: November 08, 25
canonical: https://image.docswell.com/s/alichan-69/ZQXPER-2025-11-08-164208
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/G7WZRRKP72.jpg)

CDKでIAMを管理する技術
- IaCでのIAM管理ベストプラクティスについて考える
村田亜弥 アクセンチュア株式会社


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JZ1RRZ6E3.jpg)

0.自己紹介
村田 亜弥（alichan）
仕事：AWSを用いた公共サービスやメディアサービスの基盤刷新や
PoC開発で アプリケーションエンジニア/クラウドエンジニアとして仕事し
ています。
好きなこと：個人でAWSを用いた個人開発や技術記事執筆/登壇、
イベントの 開催等を行なっています。AWSとプログラミングが好きで
す！ 個人ではalichanという名前で活動しています。
資格：Solutions Architect - Professional
：https://github.com/alichan-69
：https://zenn.dev/alichan
：https://x.com/


# Page. 3

![Page Image](https://bcdn.docswell.com/page/YE6LRRZL7V.jpg)

1.概要
AWSでIaC管理するといえばCDK
CDK
L1
複数のプログラミング言語/
周辺ライブラリを使用できる
多様性
L2
L3
要件によって抽象度を
選択/カスタマイズできる
L1～L3コンストラクト
cdk-nag
AWS CDK Snippets
開発利便性向上/セキュリティ担保
等を目指せる豊富なライブラリ
CDKでIAM管理を行う際のベストプラクティスについて考察
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GE5188WMJ4.jpg)

1.概要
なぜCDKでのIAM管理について考える必要性があるのか
・・・
他AWSリソースに関しても同じことが言える
ユーザー
ユーザーグループ
＋
S3
ロール
Identity Center
ポリシー
S3一つ取っても関連する大量のIAMリソース
Organizations
最近では上記構成がセキュリティ観点から安全
どちらにせよユーザー、許可セット、IAMロールや
OU、SCP、RCP等の設定が必要
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/9721KKQRER.jpg)

2.考察観点
CDKでのIAM管理におけるベストプラクティスの考察観点一覧
1. CDKでIAM管理を行う際にどこまでIaC管理を行うべきなのか、一部はパ
ラメータシートで済ませるべきなのか
2. CDKのディレクトリ構成/クラス構成をどのようにすることで安全にかつ便利
にIAM管理できるのか
3. CDK周辺のOSSを使用してセキュリティ観点からIAMに関してどの程度脆
弱性を明らかにでき、どのように対策できるのか
4. CDKのヘルパーメソッドを用いてどの程度IAMポリシーの生成を自動化で
きるのか、カスタマイズはどのくらい必要なのか
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DJYZNNW5EM.jpg)

3.パラメータシートの必要性
現実的にどこまでIaC管理を行えるのか
プロジェクト
ライフサイクル
IAM管理の労力
• 関係者が多いとIAMリソースも大量
• 関係者が常に変化するのでIAMリソースの
ライフサイクルが短い
• 対応要員を増やした時全員がCDKを利用
できるのか
• 他AWSリソースも設定されるCDKの更新
者を容易に増やしてよいのか
デプロイ頻度の意図しない上昇
• IAMリソースは他サービスと密接に関わる
• IAMのデプロイ頻度が増えると他サービスも
意図せず再デプロイされてしまう懸念がある
・・・
新規参画者
一時参画者
プロジェクト
監査者
・・・
退場者
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.
技術顧問
・・・


# Page. 7

![Page Image](https://bcdn.docswell.com/page/V7N3XX9478.jpg)

3.パラメータシートの必要性
対処と目指すべき方向性
IAMが大量過ぎるかつライフサイクルが短すぎて
更新の手が回らないへの対処
• CDKを使用できる人員を増やす
• CDKを使用できる人員のCDK習熟度を向上さ
せる
• 次点としてパラメータシートによる管理
現実解として以下が必要
• プロジェクトの参画/退場状況、CDKに関わる人員の技術
習熟度、プロジェクト構造の変更頻度に応じて一部パラメー
タシート管理を導入
• 組織規模での教育やコミュニケーション、プロジェクト構造の
安定を目指すことを行いIAMのCDK管理を目指す
必要なのは組織のトップダウンの力
デプロイ頻度の意図しない向上への対処
• スタックの緻密な設計
• スタック設計後容易にプロジェクト構造が変更さ
れないようにする
• 次点としてパラメータシートによる管理
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YJ998824J3.jpg)

4. 安全かつ便利に使用するためのCDKのディレクトリ構成/クラス構成
基本的にスタックは分けない
基本的にスタックは分けない
分けることで依存関係が発生し、デプ
ロイ順序が複雑になってしまう可能性
があるから
が、現実的にこういった問題もある
IAMが頻繁に更新される前提でのスタック構成を考える
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GJ89885VED.jpg)

4. 安全かつ便利に使用するためのCDKのディレクトリ構成/クラス構成
SSMパラメータストアによる依存関係のないデプロイ
ユーザー
ユーザーグループ
ポリシー
SSM Parameter Store
EC2
ECS
RDS
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.
ロール


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LJLWRRYR7R.jpg)

5.OSSによる脆弱性の発見と対策
CDKのセキュリティ脆弱性対策といえばcdk-nag
６つのルール群に対応、実装も簡単
• AWSが精査したりセキュリティ標準にのっとったルール群を格
納した6つのパッケージを保持
• 以下のようにCDKのappに簡単に実装可能
1. AWS Solutions
2. HIPAA Security
3. NIST 800-53 rev 4
4. NIST 800-53 rev 5
5. PCI DSS 3.2.1
6. Serverless
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 11

![Page Image](https://bcdn.docswell.com/page/47M9RRNPJW.jpg)

5.OSSによる脆弱性の発見と対策
IAMに関するルール一覧 – AWS Solutions
ルール群名
ルール名
警告レベル
内容
AWS Solutions
AwsSolutions-APIG2
警告
API GatewayがIAM等による認証/認可を実装されていない
AwsSolutions-C91
エラー
Cloud9の基盤EC2インスタンスがAWS Systems Managerを使用しない
AwsSolutions-IAM4
エラー
IAMユーザー、ロール、またはグループがAWS管理ポリシーを使用する
AwsSolutions-IAM5
エラー
IAMポリシー等に*（ワイルドカード）が含まれており、許可する理由も記載がない
AwsSolutions-N5
エラー
Neptune DBクラスターでIAM データベース認証が有効になっていない
AwsSolutions-RDS6
エラー
RDS Aurora MySQL/PostgresSQLクラスターでIAM データベース認証が有効になっ
ていない
⇒ポリシーの許可制限やIAM認証の有効化強制等多め
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 12

![Page Image](https://bcdn.docswell.com/page/P7RGRRDYJ9.jpg)

5.OSSによる脆弱性の発見と対策
IAMに関するルール一覧 - HIPAA Security
ルール群名
ルール名
警告レベル
内容
HIPAA Security
HIPAA.SecurityEC2InstanceProfileAttached
エラー
EC2インスタンスにインスタンスプロファイルが付与されていない
HIPAA.SecurityIAMGroupHasUsers
エラー
IAMグループには、IAMユーザーが含まれていない
HIPAA.SecurityIAMNoInlinePolicy
エラー
IAMグループ、ユーザーまたはロールにインラインポリシーが含まれている
HIPAA.SecurityIAMPolicyNoStatementsWithAd
minAccess
エラー
IAMポリシーがプリンシパルに管理者アクセスを付与している
HIPAA.SecurityIAMPolicyNoStatementsWithFull
Access
エラー
IAMポリシーがプリンシパルに個別リソースへのフルアクセスを許可している
HIPAA.SecurityIAMUserGroupMembership
エラー
IAMユーザーがどのグループにも所属していない
HIPAA.SecurityIAMUserNoPolicies
エラー
IAMポリシーがユーザーに付与されている
⇒ ポリシーの許可制限やIAMリソースの階層構造への指摘多め
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PJXXRR14JX.jpg)

5.OSSによる脆弱性の発見と対策
IAMに関するルール一覧 - NIST 800-53 rev 4
ルール群名
ルール名
警告レベル
内容
NIST 800-53
rev 4
NIST.800.53.R4IAMGroupHasUsers
エラー
IAMグループには、IAMユーザーが含まれていない
NIST.800.53.R4IAMNoInlinePolicy
エラー
IAMグループ、ユーザーまたはロールにインラインポリシーが含まれている
NIST.800.53.R4IAMPolicyNoStatementsWithAd
minAccess
エラー
IAMポリシーがプリンシパルに管理者アクセスを付与している
NIST.800.53.R4IAMUserGroupMembership
エラー
IAMユーザーがどのグループにも所属していない
NIST.800.53.R4IAMUserNoPolicies
エラー
IAMポリシーがユーザーに付与されている
⇒ ポリシーの許可制限やIAMリソースの階層構造への指摘多め
HIPAA Securityに全て含まれている
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 14

![Page Image](https://bcdn.docswell.com/page/3JKWRR2PJD.jpg)

5.OSSによる脆弱性の発見と対策
IAMに関するルール一覧 - NIST 800-53 rev 5
ルール群名
ルール名
警告レベル
内容
NIST 800-53
rev 5
NIST.800.53.R5EC2InstanceProfileAttached
エラー
EC2インスタンスにインスタンスプロファイルが付与されていない
NIST.800.53.R5IAMNoInlinePolicy
エラー
IAMグループ、ユーザーまたはロールにインラインポリシーが含まれている
NIST.800.53.R5IAMPolicyNoStatementsWithAd
minAccess
エラー
IAMポリシーがプリンシパルに管理者アクセスを付与している
NIST.800.53.R5IAMPolicyNoStatementsWithFull
Access
エラー
IAMポリシーがプリンシパルに個別リソースへのフルアクセスを許可している
NIST.800.53.R5IAMUserGroupMembership
エラー
IAMユーザーがどのグループにも所属していない
NIST.800.53.R5IAMUserNoPolicies
エラー
IAMポリシーがユーザーに付与されている
⇒ ポリシーの許可制限やIAMリソースの階層構造への指摘多め
HIPAA Securityに全て含まれている
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 15

![Page Image](https://bcdn.docswell.com/page/LE31884475.jpg)

5.OSSによる脆弱性の発見と対策
IAMに関するルール一覧 - PCI DSS 3.2.1
ルール群名
ルール名
警告レベル
内容
PCI DSS 3.2.1
PCI.DSS.321EC2InstanceProfileAttached
エラー
EC2インスタンスにインスタンスプロファイルが付与されていない
PCI.DSS.321IAMGroupHasUsers
エラー
IAMグループには、IAMユーザーが含まれていない
PCI.DSS.321-IAMNoInlinePolicy
エラー
IAMグループ、ユーザーまたはロールにインラインポリシーが含まれている
PCI.DSS.321IAMPolicyNoStatementsWithAd
minAccess
エラー
IAMポリシーがプリンシパルに管理者アクセスを付与している
PCI.DSS.321IAMPolicyNoStatementsWithFull
Access
エラー
IAMポリシーがプリンシパルに個別リソースへのフルアクセスを許可している
PCI.DSS.321IAMUserGroupMembership
エラー
IAMユーザーがどのグループにも所属していない
PCI.DSS.321-IAMUserNoPolicies
エラー
IAMポリシーがユーザーに付与されている
⇒ HIPAA Securityに全て含まれている
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 16

![Page Image](https://bcdn.docswell.com/page/8EDXMMQ5JG.jpg)

5.OSSによる脆弱性の発見と対策
IAMに関するルール一覧 - Serverless
ルール群名
ルール名
警告レベル
内容
Serverless
StarPermissions
警告
Lambdaに付与されたIAMロールが*（ワイルドカード）アクセス許可を使用し
ている
⇒ Lambdaに付与されたIAMロールのポリシー制限のみ
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 17

![Page Image](https://bcdn.docswell.com/page/V7PPRRLD78.jpg)

5.OSSによる脆弱性の発見と対策
ルールの傾向と対処できる範囲
• 各ルール群に含まれるIAMに関するルールには重複が見られ、全
てのルールを適用する必要性には議論の余地あり
• ポリシーの許可制限を促すルールやIAMリソースの階層構造への
指摘が多かったのでその周辺は対処しやすい
• IAMグループ/ユーザー/ポリシーを利用することを前提としている
ルールなので、IAM Identity Center＋Organizationsに
対処し辛い可能性あり
⇒監査フローによって利用するルール群を考える必要がある
従来のIAMグループ/ユーザー/ポリシーの制限には対処しやすい
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2JV2RRQGJQ.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
権限を付与するためのgrantメソッド
メソッド名はgrant＋動詞＋対象物で構成されがち
• grantRead：読み取り権限を付加するメソッド
• grantReadWrite：読み取り/書き込み権限を付加するメソッド…etc
→基本メソッド名はgrant＋動詞＋対象物で構成されがちで、作成されるポリシーがイメージしやすい
grantメソッドとは
• CDKのConstructが使用できるメソッドでそのリ
ソースに対するアクセス権限を付与できる
• その際権限を付与される側のリソースのために
ロールとポリシーが自動作成されるが、最小権限
で作成される
grantメソッドは便利だがどの程
度要件に対応できるのか
⇒主要サービスで検討
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 19

![Page Image](https://bcdn.docswell.com/page/5EGRMMNDJL.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービス/機能のgrantメソッド一覧
– Amazon API Gateway
サービス名
機能
grantメソッド
内容
Amazon API
Gateway
ApiKey
grantRead
プリンシパルにキーを介した全ての読み取り操作を許可する
ApiKey
grantReadWrite
プリンシパルにキーを介した全ての読み取りおよび書き込み操作を許可する
ApiKey
grantWrite
プリンシパルにキーを介した全ての書き込み操作を許可する
HttpRoute
grantInvoke
ルートを呼び出すためのアクセス権を付与する
⇒APIキーを介したAPIアクセスの際の権限付与
個別APIルートへの呼び出し権限付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4JQVRRQX7P.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – AWS Lambda
サービス名
機能
grantメソッド
内容
AWS Lambda
Function
grantInvoke
プリンシパルにLambdaを呼び出すためのアクセス許可を付与する
Function
grantInvokeCompositePrincipal
複数のプリンシパルにCompositePrincipalを介してLambdaを呼び出す権限
を付与する
Function
grantInvokeLatestVersion
プリンシパルにLambdaの$LATESTバージョンまたは非修飾バージョンを呼び出
すアクセス許可を付与する
Function
grantInvokeUrl
プリンシパルにLambda関数URLを呼び出すためのアクセス許可を付与する
Function
grantInvokeVersion
プリンシパルにLambdaの指定されたバージョンを呼び出すためのアクセス許可を
付与する
Version
grantInvoke
プリンシパルにLambdaを呼び出すためのアクセス許可を付与する
Version
grantInvokeCompositePrincipal
複数のプリンシパルにCompositePrincipal を介してLambdaを呼び出す権限
を付与する
Version
grantInvokeLatestVersion
プリンシパルにLambda関数URLを呼び出すためのアクセス許可を付与する
Version
grantInvokeUrl
プリンシパルにLambda関数URLを呼び出すためのアクセス許可を付与する
Version
grantInvokeVersion
プリンシパルにLambdaの指定されたバージョンを呼び出すためのアクセス許可を
付与する
⇒Lambda関数自体/バージョン指定での呼び出し権限付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/K74M88N2J1.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – Amazon DynamoDB
サービス名
機能
grantメソッド
内容
Amazon
DynamoDB
TableV2
grant
テーブルに関連付けられたIAMポリシーステートメントをプリンシパルのポリシーに追
加する、許可する操作は指定できる
TableV2
grantFullAccess
テーブルのすべてのDynamoDB操作(‘dynamodb:*‘)をプリンシパルに許可す
る
TableV2
grantReadData
プリンシパルにこのテーブルに対するすべてのデータ読み取り操作を許可する
TableV2
grantReadWriteDate
プリンシパルはこのテーブルに対するすべてのデータ読み取り/書き込み操作を許可
する
TableV2
grantStream
テーブルに関連付けられたストリームに関するIAMポリシーステートメントをプリンシ
パルのポリシーに追加する、許可する操作は指定できる
TableV2
grantStreamRead
テーブルに関連付けられたストリームに関するIAM ポリシーステートメントをプリンシ
パルのポリシーに追加する
TableV2
grantTableListStreams
プリンシパルがこのテーブルに付与されたストリームを一覧表示できるようにする
TableV2
grantWriteData
プリンシパルにこのテーブルに対するすべてのデータ書き込みオペレーションを許可す
る
⇒テーブルデータへのアクセス権限、ストリームデータの読み取り権限
の付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LJ18225KEG.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – Amazon CloudFront
サービス名
機能
grantメソッド
内容
Amazon
CloudFront
Distribution
grant
ディストリビューションに関連付けられたIAMポリシーステートメントをプリンシパルの
ポリシーに追加する、許可する操作は指定できる
Distribution
grantCreateInvalidation
無効化をプリンシパルに付与する
⇒ディストリビューションに対するアクセス権限付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GJWZRR5PJ2.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – Amazon S3
サービス名
機能
grantメソッド
内容
Amazon S3
Bucket
grantDelete
バケット内のオブジェクトのプリンシパルにs3:DeleteObject*アクセス許可を付与
する
Bucket
grantPublicAccess
バケットからのオブジェクトへの無制限のアクセスを許可する
Bucket
grantPut
バケットのs3:PutObject*およびs3:Abort*アクセス許可をプリンシパルに付与
する
Bucket
grantPutAcl
指定されたバケット内のオブジェクトのACLを変更するためのアクセス許可を指定さ
れたプリンシパルに付与する
Bucket
grantRead
バケットとその内容の読み取りアクセス許可をプリンシパルに付与する
Bucket
grantReadWrite
バケットとその内容の読み取り/書き込みアクセス許可をプリンシパルに付与する
Bucket
grantReplicationPermission
プリンシパルにレプリケーションアクセス許可を付与する
Bucket
grantWrite
バケットへの書き込みアクセス許可をプリンシパルに付与する
⇒バケットやオブジェクトへのアクセス権限付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 24

![Page Image](https://bcdn.docswell.com/page/4EZ1RRN673.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – Amazon EC2
サービス名
機能
grantメソッド
内容
Amazon EC2
Instance
grantPrincipal
プリンシパルに権限を付与する
⇒EC2へのアクセス権限付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 25

![Page Image](https://bcdn.docswell.com/page/Y76LRR8LJV.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – Amazon ECS
サービス名
機能
grantメソッド
内容
Amazon ECS
Cluster
grantTaskProtection
指定された被付与者にECSタスク保護APIアクセス許可を付与する
Ec2TaskDefi
nition
grantRun
タスク定義を実行するためのアクセス許可を付与する
FargateTask
Definition
grantRun
タスク定義を実行するためのアクセス許可を付与する
TaskDefiniti
on
grantRun
タスク定義を実行するためのアクセス許可を付与する
⇒ECSのAPIへのアクセス権限、タスクのアクセス権限の付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 26

![Page Image](https://bcdn.docswell.com/page/G751889ME4.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
主要サービスのgrantメソッド一覧 – Amazon RDS
サービス名
機能
grantメソッド
内容
Amazon RDS
DatabaseClu
ster
grantConnect
指定された被付与者にECSタスク保護APIアクセス許可を付与する
DatabaseClu
ster
grantDataApiAccess
プリンシパルにData APIへのアクセスを許可する
DatabaseIns
tance
grantConnect
プリンシパルの接続にデータベースへのアクセス権を付与する
DatabaseSe
cret
grantRead
シークレット値の読み取りを一部のロールに付与する
DatabaseSe
cret
grantWrite
シークレット値の書き込みと更新を一部のロールに付与する
ServerlessCl
uster
grantDataApiAccess
プリンシパルにクラスターに付与されたシークレットへの読み取りアクセスを含むData APIへのアク
セス権を付与する
⇒Data APIへのアクセス権限や接続へのアクセス権限、シークレッ
トへのアクセス権限の付与
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 27

![Page Image](https://bcdn.docswell.com/page/9J21KK2R7R.jpg)

6. ヘルパーメソッドでのポリシー生成自動化とカスタマイズ
grantメソッドの傾向と対処できる範囲
• S3やLambda、DynamoDB等リソースベースポリシーを持つ
サービスほどgrantメソッドが充実している
• ECSやEC2等リソースベースポリシーを持たないサービスはAPIの
アクセス権限制御にとどまりがち
• 書き込み/読み取り等ざっくりとした操作のアクセス権限制御はで
きるが操作/対象物が入り組んだポリシーはカスタマイズ検討
⇒リソースベースポリシーを持つサービスに対しては使用しやすい
grantメソッドで生成されたポリシーはそのまま使用するのではなく確
認の必要あり
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 28

![Page Image](https://bcdn.docswell.com/page/DEYZNNY57M.jpg)

8.まとめ
CDKのIAM管理ベストプラクティス考察結果は以下
• 組織のトップダウンの力を使用し、IAM運用に合わせたStack設
計、CDK教育を行う
• 必要に応じてSSMパラメータストアによる依存関係のないデプロ
イを行う
• OSSによる脆弱性対策はIAM運用方法や監査フローによって利
用するルール群を考える必要がある
• grantメソッドは便利だがサービスに応じて利用しやすさが変わる、
生成されたポリシーの確認は必須
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 29

![Page Image](https://bcdn.docswell.com/page/VJN3XXP4J8.jpg)

8.まとめ2
CloudFormationやTerraformにも応用可能
• 組織のトップダウンの力を使用し、IAM運用に合わせたStack設計、CDK教育を行う
→各IaCツールに合った設計、IaC教育を行う
• 必要に応じてSSMパラメータストアによる依存関係のないデプロイを行う
→CloudFormationやTerraformにも依存関係は付きまとう
• OSSによる脆弱性対策はIAM運用方法や監査フローによって利用するルール群を考え
る必要がある
→CloudFormationやTerraformも脆弱性チェックツールを使用し、ルール群を選定す
る必要あり
• grantメソッドは便利だがサービスに応じて利用しやすさが変わる、生成されたポリシーの
確認は必須
→どのIaCツールを使用したとしても生成されたポリシー確認は必須
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


# Page. 30

![Page Image](https://bcdn.docswell.com/page/YE998834E3.jpg)

9.参考
• AWSの薄い本 IAMのマニアックな話
https://booth.pm/ja/items/1563844?srsltid=AfmBOorqJUSLXLTLX
ZIyp573zJapo_qdFzvfPeWqmF1gBKHxgMVmma34
• AWSの薄い本６ IAMのマニアックな話 2025
https://takuros.booth.pm/items/6969928
• CDKでスタック間のパラメーターを受け渡す5つの方法とケース別の最適解について考え
てみた
https://dev.classmethod.jp/articles/best-way-to-referenceparameters-in-cdk/
• cdklabs/cdk-nag
https://github.com/cdklabs/cdk-nag
This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners.
No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.


