目次

Infrastructure-as-Code (IaC) の検索

Trend Cloud One™ - GitHubアプリは、Infrastructure-as-code (IaC) テンプレートをスキャンし、セキュリティのベストプラクティスに照らして評価します。選択したGitHubリポジトリでプルリクエストが開かれたとき、または更新されたときに自動的に検索されるように、Organization内のリポジトリを選択できます。

Trend Cloud One のインストール方法 - GitHubアプリ

GitHubソースアカウントの使用を開始するのガイドに従ってください。

サポートされているテンプレートとリソース

サポートされているテンプレート サポートされているリソースの種類
Terraform S3
Cloudformation YML EC2
Cloudformation JSON ELBv2
SNS
DynamoDB
SQS
RDS Cluster
RDS Instance

リポジトリ検索対象の設定

初期設定により、検索するTerraformテンプレートとCloudFormationテンプレートが決まります。

{
    "frameworks": {
        "terraform": { "templateFilesPattern": "**/*.tf" },
        "cloudformation": { "templateFilesPattern": "*(cloudformation|template|CloudFormation|Cloudformation|cloudFormation).*(yml|yaml|json)" }
    }
}

ただし、初期設定を上書きできます。

  1. 検索するリポジトリのルートに、 .template-security というディレクトリを作成します。
  2. config.json ファイルを設定とともに追加します。

有効なJSONパラメータ

  • frameworks: (オブジェクト) キーとして検索するフレームワークが含まれます。サポートされている値:
    • "terraform"
    • "cloudformation"
  • templateFilesPattern: (文字列) ファイルパターンを使用してファイルとディレクトリを照合します。

パスの一部に一致する特殊文字

  • * 1つのパスの一部に含まれる0個以上の文字に一致
  • ? 1文字に一致
  • [...] RegExpの範囲と同様に、文字の範囲に一致します。
    範囲の最初の文字が ! または ^ の場合、範囲外の任意の文字に一致します。
  • !(pattern|pattern|pattern) どのパターンにも一致しないものに一致します。
  • ?(pattern|pattern|pattern) パターンの0回または1回の出現に一致します。
  • +(pattern|pattern|pattern) パターンの1回以上の出現に一致します。
  • *(a|b|c) パターンの0回以上の出現に一致
  • @(pattern|pat*|pat?erN) いずれかのパターンに一致
  • ** 「globstar」がパス部分に単独で含まれる場合、0個以上のディレクトリおよびサブディレクトリに一致します。
    これはシンボリックリンクディレクトリをクロールしないことに注意してください。

一致の例:

  • *(*.tf) .tfで終わるファイルのみに一致
  • **/*(*.tf|*.tfvars) 最上位ディレクトリから順に、 .tf または .tfvarsで終わるファイルに一致します。
  • *(*.tf|*.tfvars) ルートディレクトリ内の .tf または .tfvars で終わるファイルにのみ一致します。

ファイルまたはディレクトリのパス部分の最初の文字が . の場合、そのパターンの対応するパス部分の最初の文字が . でない限り、globパターンとは一致しません。
たとえば、パターン a/.*/ca/.b/cにあるファイルと一致します。ただし、パターン a/*/c では指定できません。これは、 * がドット文字で始まらないためです。 {: .note }

検索の開始

検索を開始するには、Trend Cloud One - GitHub Appをインストールしたリポジトリに対して、GitHubでプルリクエストを作成します。

これで、GitHubのプルリクエストの下部に検索のステータスが表示されます。

プルリクエストの例