cdk-nag ルールパックを使用してAWSCDKアプリケーションまたは CloudFormation テンプレートのベストプラクティスを確認する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

cdk-nag ルールパックを使用してAWSCDKアプリケーションまたは CloudFormation テンプレートのベストプラクティスを確認する

作成者: Arun Donti

環境:本稼働

テクノロジー: セキュリティ DevOps、アイデンティティ、コンプライアンス

ワークロード: オープンソース

AWS サービス: AWS CDK

[概要]

このパターンでは、 cdk-nag ユーティリティを使用して、ルールパックの組み合わせを使用して AWS Cloud Development Kit (AWS CDK) アプリケーションのベストプラクティスを確認する方法について説明します。cdk-nag は、cfn_nag にヒントを得たオープンソースプロジェクトです。Aspects を使用して、AWSソリューションライブラリ、医療保険の相互運用性と説明責任に関する法律 (HIPAA)、国立標準技術研究所 (NIST) 800-53 などの評価パックにルールを実装します。 AWS CDK これらのパックのルールを使用してAWSCDKアプリケーションのベストプラクティスをチェックし、ベストプラクティスに基づいてコードを検出して修正し、評価に使用しないルールを抑制できます。 

Cloudformation-include モジュールを使用して、cdk-nag を使用してAWS CloudFormation テンプレートを確認することもできます。

利用可能なすべてのパックについては、cdk-nag リポジトリの「ルール」セクションを参照してください。評価パックは以下に対するものが利用可能です。

前提条件と制限

前提条件

  • を使用するアプリケーション AWS CDK

ツール

  • AWS CDK – Cloud Development Kit (AWS CDK) は、コードでクラウドインフラストラクチャを定義し、 を通じてプロビジョニングするためのソフトウェア開発フレームワークですAWS CloudFormation。

  • AWS CloudFormation – AWSリソースのモデル化とセットアップ、迅速かつ一貫したプロビジョニング、ライフサイクル全体にわたる管理AWS CloudFormation に役立ちます。テンプレートを使用してリソースとその依存関係を記述し、リソースを個別に管理する代わりに、それらをスタックとしてまとめて起動して構成できます。複数のAWSアカウントとAWSリージョンでスタックを管理およびプロビジョニングできます。 

エピック

タスク説明必要なスキル
cdk-nag について学びます。

cdk-nag GitHub リポジトリに移動し、ドキュメントをお読みください。

アプリ開発者
AWS CDK アプリケーションに cdk-nag パッケージをインストールします。

AWS CDK アプリケーションで cdk-nag を使用するには、最初にインストールする必要があります。cdk-nag は PyPI 、npm NuGet、および Apache Maven からダウンロードできます。入手可能なバージョンとダウンロード場所に関する最新情報については、リポジトリの Readme ファイルを参照してください。

アプリ開発者
を選択します NagPacks。

cdk-nag には、 と呼ばれる異なるルールパックがありますNagPacks。各 NagPack には、特定の標準に準拠するルールが含まれています。例えば、AWSソリューションには一般的なベストプラクティス NagPack が含まれており、800-53 rev 5 NIST NagPack はコンプライアンスに役立ちます。アプリケーション NagPacks に複数の を適用し、必要に応じてパックを追加または削除できます。使用可能なパックのリストについては、 GitHub リポジトリの Readme ファイルを参照してください。各パックの個々のルールの詳細については、 GitHub リポジトリのルールセクションを参照してください。

アプリ開発者
cdk-nag をAWSCDKアプリケーションに統合します。

cdk-nag はアプリケーション全体に統合することも、アプリケーションの個々のステージやスタックに統合することもできます。例えば、AWSソリューションとHIPAAセキュリティをアプリケーション全体のレベルで NagPacks AWS CDK v2 TypeScript アプリケーションに統合するには、次のコードを使用できます。

import { App, Aspects } from 'aws-cdk-lib'; import { CdkTestStack } from '../lib/cdk-test-stack'; import { AwsSolutionsChecks, HIPAASecurityChecks } from 'cdk-nag'; const app = new App(); new CdkTestStack(app, 'CdkNagDemo'); // Simple rule informational messages Aspects.of(app).add(new AwsSolutionsChecks()); // Additional explanations on the purpose of triggered rules Aspects.of(app).add(new HIPAASecurityChecks({ verbose: true }));
アプリ開発者

関連リソース