ビュー:
場所 Top navigation bar > Template Scanner
Template Scannerは、TerraformAWS Cloud Development Kit (CDK)Serverless FrameworkAWS CloudFormationテンプレートでTrend Cloud One™ – Conformityルールを実行し、AWS、Azure、GCPアカウントのリスクを検出することができます。サービスやリソースを開始する前に問題を特定し修正するために、ワークフローに予防的なセキュリティとガバナンスのコントロールを追加することができます。

Template Scannerとは何ですか?

Template Scannerは、Azure、AWS、GCPのクラウドインフラストラクチャが展開される前に、Infrastructure as Code (IaC) のリスクを検出することで、コンプライアンスを維持するための予防策を提供します。
このサービスを使用して、CloudFormationテンプレートとTerraform構成ファイルを検索できます。

サポートされているクラウドプロバイダ

Template Scannerは現在、以下のクラウドプロバイダをサポートしています。各クラウドプロバイダの特定のカバレッジサポートの詳細については、Trend Cloud One Conformity - Template Scannerのカバレッジをご覧ください
  1. AWS
  2. Azure
  3. GCP

サポートされている機能

IaCファイルを検索するには、以下のいずれかまたは組み合わせを使用できます。
  • アプリケーションUIを使用してテンプレートをアップロードする
  • テンプレートを使用してリクエストを投稿するためのAPIの使用
  • Template Scanner GitHub Appをインストールし、プルリクエストを作成することによって。
機能
Template Scanner UI/API
GitHubアプリケーション
ファイルを読み込むためのグラフィカルインターフェース
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
error=d3416c96-6ca9-432d-8c5f-8da4aebfc7c5.png
パブリックAPI
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
error=d3416c96-6ca9-432d-8c5f-8da4aebfc7c5.png
アカウントとProfileのRule settings
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
error=d3416c96-6ca9-432d-8c5f-8da4aebfc7c5.png
GitHub統合
error=d3416c96-6ca9-432d-8c5f-8da4aebfc7c5.png
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
AWS CloudFormation
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
AWS クラウド開発キット (CDK)
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
error=d3416c96-6ca9-432d-8c5f-8da4aebfc7c5.png
Serverless Framework (AWS)
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
error=d3416c96-6ca9-432d-8c5f-8da4aebfc7c5.png
Terraform (AWS、Azure、GCP)
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
Terraform Planファイル (.json) およびHCLテンプレート (.tf) をサポート
check=c0ac712e-8485-46cf-ba14-b6043fb05ff6.png
複数のTerraform言語機能を解釈できます: 入力変数、ローカル値、参照式jsonencode関数呼び出し。
Terraformでは子モジュールもサポートされています。

UI経由でスキャン

  1. スキャンするルール設定の種類を選択してください:
    • [Default rule settings]: 組織のRule settingsを使用してアップロードおよびスキャンします。
    • [Profile rule settings]: 選択したProfileのRule settingsを使用してアップロードおよびスキャンします。
    • [Account rule settings]: 選択したアカウントのRule settingsを使用してアップロードおよびスキャンします。

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ファイルをGenerateします。
  2. Template Scanner UIまたはAPIエンドポイントを使用して、serverless packageによって生成されたCloudFormationファイルをスキャンします。

Terraformプランのスキャン

  1. Terraformテンプレートは、以下の手順に従ってコマンドラインツールからJSON形式のTerraformプランに変換する必要があります:
    1. 同じディレクトリにある.tfテンプレートで、プロバイダの[access key][secret key,][export region]をエクスポートします (例: `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. [Upload and scan]をクリックして、選択したRule settingsのスキャン結果を表示します。
  3. テンプレートをスキャン中にパラメータが不足しているというメッセージが表示されます。スキャンプロセスを[Proceed]するか[キャンセル]するかを決定してください。
    注意
    注意
    パラメータが欠落しているリソースはスキャンされず、その結果、部分的なスキャン結果となります。
  4. 検索結果からチェックを確認します。失敗したチェックには、解決手順へのリンクがある解決ボタンが表示されます。ルールの構造についての詳細は、Rulesを参照してください。
    注意
    注意
    失敗したチェックに対して提供される解決手順は、CLIまたはコンソール経由のワークフロー用です。これらの手順をCloudFormation内での解決のガイドとして使用することもできます。

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

  1. あなたの.tfファイルを含むZIPファイルを作成してください
  2. Template Scannerメニューをクリックしてください
  3. Terraformタブをクリックしてください
  4. ZIPファイルを参照
  5. アップロードして検索をクリックします。

API経由でスキャン

Template Scanner APIを自動化やビルドパイプラインで使用する方法については、APIリファレンスを参照してください。
追加の例は以下にあります:

GitHubプルリクエストを介してスキャン

Template Scanner GitHub Appは、CloudFormationテンプレートおよびTerraform構成ファイルの検索を自動的にトリガーするために使用できます。

サポートされているルール

次のAPIエンドポイントを使用して、Template Scannerでサポートされているルールのリストを取得できます。
サポートされているリソースの概要については、このページを参照してください。

なぜスキャン結果が表示されないのですか?

次のいずれかの理由により、空の応答またはエラーを受け取る場合があります:
  1. サポートされていないリソースタイプまたはルール - Template Scannerはリソースレベルのルールのみをサポートしています。サポートされているルールとリソースタイプの一覧についてはAPIを参照してください。今後、より多くのソースタイプのサポートを追加する予定です。優先的に必要な特定のリソースタイプがある場合は、Conformityにログインしてサポートチームにチケットを提出してください。
  2. デフォルト値のないパラメーター - デフォルト値のないパラメーターを持つCloudFormationテンプレートは処理に失敗する可能性があります。
  3. サポートされていないAWS CloudFormationの組み込み関数 - サポートされていない組み込み関数を含むCloudFormationテンプレートは処理されないか、完全な結果を生成しない可能性があります。以下はCloudFormationテンプレートの[supported]組み込み関数です:
    • 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
    • 参照
テンプレートを正しくスキャンできるように、これらの関数を一時的に静的な値に置き換えることをお勧めします。