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
サポートされているインフラストラクチャコード
CloudFormation YAMLおよびJSON
サポートされているリソースタイプ:
- APIGateway RestApi
- AutoScaling Group
- AutoScaling起動設定
- CloudFormationスタック
- CloudTrailトレイル
- DynamoDbテーブル
- EC2インスタンス
- EC2 NatGateway
- EC2ネットワークACL
- EC2ネットワークインターフェイス
- EC2ルートテーブル
- EC2セキュリティGroup
- EC2サブネット
- EC2ボリューム
- EC2 VPC
- EC2 VPCエンドポイント
- EFSファイルシステム
- Elastic Load Balancer v2
- ElasticCache
- Elasticsearchドメイン
- ELB Classic Load Balancer
- EMRクラスター
- IAM Group
- IAM管理ポリシー
- IAM Role
- Kinesisストリーム
- KMSキー
- Lambda関数
- RDSクラスター
- RDSインスタンス
- Redshiftクラスター
- S3バケット
- SNSトピック
- SQSキュー
- WorkSpaces
Terraform
サポートされているリソースタイプ:
- DynamoDB
- EC2インスタンス
- Elastic Load Balancer v2
- S3バケット
- RDSクラスター
- RDSインスタンス
- SNSトピック
- SQSキュー
スキャンを開始する方法
スキャンを開始するには:
手順
- Template Scanner Github AppをインストールしたリポジトリでGithubにプルリクエストを作成します。プルリクエストの下部でスキャンのステータスを確認できるはずです。
- [Details]をクリックして、スキャンによって生成された検出結果を表示します。