362 Views
November 08, 25
スライド概要
[IAMスペシャル!]Security-JAWS【第39回】 勉強会での登壇資料です!
CDKのベストプラクティスについて自分なりに考察してみたことを記載しました。
CDKでIAMを管理する技術 - IaCでのIAM管理ベストプラクティスについて考える 村田亜弥 アクセンチュア株式会社
0.自己紹介 村田 亜弥(alichan) 仕事:AWSを用いた公共サービスやメディアサービスの基盤刷新や PoC開発で アプリケーションエンジニア/クラウドエンジニアとして仕事し ています。 好きなこと:個人でAWSを用いた個人開発や技術記事執筆/登壇、 イベントの 開催等を行なっています。AWSとプログラミングが好きで す! 個人ではalichanという名前で活動しています。 資格:Solutions Architect - Professional :https://github.com/alichan-69 :https://zenn.dev/alichan :https://x.com/
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.
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.
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.
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. 技術顧問 ・・・
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.
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.
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. ロール
5.OSSによる脆弱性の発見と対策 CDKのセキュリティ脆弱性対策といえばcdk-nag 6つのルール群に対応、実装も簡単 • 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
9.参考 • AWSの薄い本 IAMのマニアックな話 https://booth.pm/ja/items/1563844?srsltid=AfmBOorqJUSLXLTLX ZIyp573zJapo_qdFzvfPeWqmF1gBKHxgMVmma34 • AWSの薄い本6 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.