Template Scanner GitHubアプリは、
infrastructure-as-codeテンプレートを検索し、最適なセキュリティプラクティスに基づいて評価します。組織内のリポジトリを選択して、開いたり更新したりするすべてのプルリクエストを自動的に検索するか、選択したGitHubリポジトリで更新できます。
注意現在、GitHub Enterprise組織はサポートしていません。
|
Template Scanner GitHubアプリのインストール方法
GitHubソースアカウントの使い方の手順に従って、GitHubアプリをインストールしてください。
スキャン対象の設定方法
デフォルトでは、Template Scanner GitHubアプリはリポジトリのルートにあるCloudFormationテンプレート (例: cloudformation.yml、cloudformation.json、template.yml)
およびリポジトリ内の任意のレベルにあるTerraform ".tf"ファイルをスキャンします。
スキャン対象を設定および上書きするには:
- リポジトリのルートに
.template-securityというディレクトリを作成します。 .template-security/にconfig.jsonファイルを追加し、設定を行ってください。例:{ "frameworks": { "terraform": { "templateFilesPattern": "**/*(*.tf|*.tfvars)" }, "cloudformation": { "templateFilesPattern": "**/*(*.yml)" } } }
利用可能な構成
frameworks: (object) スキャンしたいフレームワークをキーとして含みます。サポートされている値 "terraform" | "cloudformation"templateFilesPattern: (string) ファイルパターンを使用してファイルとディレクトリを一致させます。
パス部分を一致させるための特殊文字:
*は単一のパス部分内の0文字以上に一致します?は1文字に一致します[...]は、RegExpの範囲に似た文字の範囲に一致します。範囲の最初の文字が!または^の場合、その範囲に含まれない任意の文字に一致します。!(pattern|pattern|pattern)は、いずれのパターンにも一致しないものに一致します。?(pattern|pattern|pattern)は、パターンが0回または1回出現することに一致します。+(pattern|pattern|pattern)パターンの1回以上の出現に一致します。*(a|b|c)パターンの0回以上の出現に一致します@(pattern|pat*|pat?erN)はパターンのいずれか1つに正確に一致します**globstarがパス部分に単独で存在する場合、0個以上のディレクトリおよびサブディレクトリに一致します。ただし、シンボリックリンクされたディレクトリはクロールしません。
ドット (.) の使用に関する注意
ファイルまたはディレクトリパスの一部が最初の文字として
.を持つ場合、そのパターンの対応するパス部分も最初の文字として.を持たない限り、グロブパターンには一致しません。例えば、パターン
a/.*/cはa/.b/cのファイルに一致します。しかし、パターンa/*/cは一致しません。なぜなら、*はドット文字で始まらないからです。例:
- `*(*.tf)` Match only files ending with `.tf` - `**/*(*.tf|*.tfvars)` Starting from the top directory, match files ending with `.tf` or `.tfvars` - `*(*.tf|*.tfvars)` Match files ending with `.tf` or `.tfvars` in the root directory only
スキャンを開始する方法
スキャンを開始するには:
- Template Scanner Github AppをインストールしたリポジトリでGithubにプルリクエストを作成します。プルリクエストの下部でスキャンのステータスを確認できるはずです。
- [Details]をクリックして、スキャンによって生成された検出結果を表示します。

