目次

Template Scanner

場所

上部のナビゲーションバー> Template Scanner

Template Scannerを使用すると、TerraformAWS Cloud Development Kit (CDK)Serverless Framework、およびAWS CloudFormation テンプレートでTrend Cloud One™ – Conformityルール を実行できます。サービスやリソースを起動する前に、問題を特定して修正するための予防的なセキュリティおよびガバナンスコントロールをワークフローに追加できます。

Template Scannerとは何ですか?

Conformity は、テンプレートファイル内のリスクを検出してAWSインフラストラクチャがコンプライアンスを維持できるようにするための予防策として、 Template Scanner 機能を提供します。

CI / CDパイプラインと自動化でAPIエンドポイントを使用できます。

このサービスを使用してテンプレートをスキャンできます。UIおよびAPIを介してTerraformプランとCloudFormationテンプレートをサポートしています。Conformityプロファイルを通じてルールをConfigure Rulesできます。また、GitHubアプリ を介してCloudFormationテンプレートおよびTerraform構成ファイルもサポートしています。

スタックを作成するたびに、パラメータを使用してテンプレートへの入力値をカスタマイズできます。テンプレートでパラメータが定義されている場合は、引数フィールドを使用してパラメータ値を指定できます。

サポートされる機能

Template Scannerは、次の2つのエントリポイントをサポートします。

  • UIおよびAPI用Template Scanner
  • Template Scanner GitHubアプリ
機能 Template ScannerのUI/API Githubアプリケーション
ファイルをロードするためのグラフィカルインタフェース
公開API
アカウントとプロファイルのルール設定
Githubとの統合
AWS CloudFormation
AWSクラウド開発キット (CDK)
Serverless Framework (AWS)
Terraform (AWS)

Terraform Planファイル (.json) でサポート

入力変数、ローカル値、参照式jsonencode関数呼び出しなど、複数のTerraform言語 機能を解釈できます。

UI経由で検索

  1. 検索するルール設定の種類を選択します。
    • 初期設定のルール設定: 組織のルール設定を使用してアップロードおよび検索します。
    • プロファイルルール設定: 選択したプロファイルのルール設定を使用してアップロードおよび検索します。
    • アカウントルール設定: 選択したアカウントのルール設定を使用してアップロードおよび検索します。

CloudFormationテンプレートの検索

  • CloudFormationテンプレートは、JSON形式またはYAML形式でアップロードできます。
  • YAMLテンプレートでは、「!」条件も使用できます。

AWS Cloud Development Kit (CDK) をスキャンしています

Template Scannerは、CDKコードからCloudFormationテンプレートを合成することによって、CDKファイルの評価をサポートします。

  1. AWS CDK CLI をインストールする
  2. CDKコードがあるディレクトリでcdk synthを実行します。これにより、YAML CloudFormationファイルが出力されます (必要に応じて--jsonを使用することもできます)。
  3. Template Scanner UIまたはAPIエンドポイントを使用して、cdk synthによって生成されたCloudFormationファイルをスキャンします。

Serverless Frameworkをスキャンしています

Template Scannerは、ServerlessコードからCloudFormationテンプレートを合成することにより、Serverless Frameworkアプリケーションの評価をサポートします。

  1. serverlessファイルがあるディレクトリでserverless packageを実行して、.serverless/cloudformation-template-update-stack.jsonにJSONファイルを生成します。
  2. Template ScannerのUIまたはAPIエンドポイントを使用して、serverless packageによって生成されたCloudFormationファイルをスキャンします。

Terraformプランをスキャン中

  1. コマンドラインツールから次の手順に従って、TerraformテンプレートをJSON形式のTerraformプランに変換する必要があります。

    1. .tfテンプレートと同じディレクトリで、プロバイダの アクセスキー 秘密鍵、 および エクスポート領域 (`export AWS_REGION=us-east-1`など) をエクスポートします。
    2. コマンド terraform initを実行します。
    3. コマンド terraform plan -out=your_fileを実行します。
    4. コマンド terraform show -json your_file > your_file.jsonを実行します。これで、Terraform JSONプランを.tfファイルと同じフォルダからTemplate Scannerにアップロードする準備ができました。
  2. [アップロード] をクリックし、 をスキャンして、選択したルール設定のスキャン結果を表示します。

  3. テンプレートの検索中に、パラメータが不足しているというメッセージが表示されます。検索プロセスを Proceed するか Cancel するかを決定します。

    パラメータが指定されていないリソースは検索されないため、検索結果は部分的になります。 {: .note}

  4. 検索結果のChecksを確認します。失敗したチェックは、解決手順へのリンクを含むResolveボタンを表示します。ルールの詳細については、「 Rules」を参照してください。

    失敗したチェックで提供される解決手順は、CLIまたはコンソール経由のワークフロー用です。これらの手順は、CloudFormationで解決するためのガイドとして使用することもできます。 { : .note}

Terraform HCLテンプレートをスキャンしています

  1. .tfファイルを含むZIPファイルを作成してください
  2. 「Template Scanner」メニューをクリックしてください
  3. 「Terraform」タブをクリックしてください
  4. ZIPファイルを参照
  5. 「アップロードしてスキャン」をクリック

API経由で検索

自動化またはビルドパイプラインでTemplate ScannerAPIを使用する方法については、APIリファレンスを参照してください。

その他の例を次に示します。

Githubプルリクエスト経由の検索

Template Scanner GitHub App を使用して、CloudFormationテンプレートおよびTerraform構成ファイルのスキャンを自動的にトリガーできます。

ルールを取得するAPIエンドポイント

次のAPIエンドポイントを使用して、検索可能なルールのリストを取得できます。

検索結果が表示されないのはなぜですか?

次のいずれかの理由で、空の応答またはエラーが返されることがあります。

  1. サポートされていないリソースタイプまたはルール - Template Scannerはリソースレベルのルールのみをサポートしています。サポートされているルールとリソースタイプのリストについては、APIを参照してください。今後、より多くのソースタイプのサポートを追加する予定です。優先的に必要な特定のリソースタイプがある場合は、Conformityにログインしてサポートチームにチケットを提出してください。
  2. 初期設定値のないパラメータ - 初期設定値のないパラメータを持つCloudFormationテンプレートは処理に失敗することがあります。
  3. サポートされていないAWS CloudFormationの組み込み関数 - サポートされていない組み込み関数を含むCloudFormationテンプレートは処理されないか、完全な結果を生成しない可能性があります。以下は、CloudFormationテンプレートでサポートされている組み込み関数です:
    • Fn::Base64
    • Fn::And
    • Fn::Equals
    • Fn::If
    • Fn::Not
    • Fn::Or
    • Fn::FindInMap
    • Fn::GetAtt
    • Fn::GetAZs
    • Fn::Join
    • Fn::Select
    • Fn::Split
    • Fn::Sub
    • 参照

テンプレートが正しく検索されるように、これらの関数を一時的に静的な値に置き換えることができます。