Template Scanner Githubアプリ
このページのトピック
Template Scanner Github Appは、 infrastructure-as-code
テンプレートをスキャンし、セキュリティのベストプラクティスに照らして評価します。組織内のリポジトリを選択して、開いたプルリクエストを自動的に検索したり、選択したGithubリポジトリでプルリクエストをアップデートしたりできます。
現在、Github Enterpriseの組織はサポートされていません。 {:.note}
- Template Scanner Githubアプリのインストール方法
- 検索対象の設定方法
- 利用可能な設定
- パス部分に一致する特殊文字:
- ドット (.) の使用に関する注意
- 例:
- コードとしてサポートされるインフラストラクチャ
- CloudFormation YAMLおよびJSON
- Terraform
- 検索を開始する方法
Template Scanner Githubアプリのインストール方法
GitHubソースアカウントの使用を開始する の手順に従って、Githubアプリをインストールしてください。
検索対象の設定方法
初期設定では、Template Scanner Githubアプリは、リポジトリのルートにあるCloudFormationテンプレートを検索します。たとえば、cloudformation.yml、cloudformation.json、template.yml、およびリポジトリ内の任意のレベルのterraform「.tf」ファイルが検索されます。
検索対象を設定して上書きするには
1. リポジトリのルートに .template-security
ディレクトリを作成します。
2. .template-security/
にconfig.jsonファイルを設定とともに追加します。 例:
{
"frameworks": {
"terraform": { "templateFilesPattern": "**/*(*.tf|*.tfvars)" },
"cloudformation": { "templateFilesPattern": "**/*(*.yml)" }
}
}
使用可能な設定
frameworks
: (オブジェクト) には、キーとして検索するフレームワークが含まれています。サポートされる値 "terraform" | "cloudformation"templateFilesPattern
:(文字列)ファイルとディレクトリの照合にファイルパターンを使用します。
パス部分に一致する特殊文字:
*
1つのパス部分の0文字以上に一致?
1文字に一致[...]
正規表現の範囲と同様に、文字の範囲に一致します。 範囲の最初の文字が!
または^
の場合、範囲外の任意の文字に 一致します。!(pattern|pattern|pattern)
いずれのパターンにも一致しないものに一致。?(pattern|pattern|pattern)
パターンの0回または1回の出現に一致。+(pattern|pattern|pattern)
パターンの1つ以上の出現に一致。*(a|b|c)
0個以上のパターンの出現に一致。@(pattern|pat*|pat?erN)
いずれかのパターンに一致。**
「globstar」がパス部分に単独で存在する場合、 0個以上のディレクトリおよびサブディレクトリに一致。 これはシンボリックリンクディレクトリをクロールしないことに注意してください。
ドット(.)の使用に関する注意
ファイルまたはディレクトリのパス部分の最初の文字が .
である場合、そのパターンの 対応パス部分の最初の文字が .
でない限り、どのglobパターンにも一致しません。
たとえば、パターンa/.*/c
はa/.b/c
にあるファイルに一致します。 ただし、パターンa/*/c
は、*
が で開始されないためドットにはなりません。
例:
- `*(*.tf)` は、`.tf`で終わるファイルのみに一致します
- `**/*(*.tf|*.tfvars)` は、最上位ディレクトリから順に、`.tf`または`.tfvars`で終わるファイルに一致します
- `*(*.tf|*.tfvars)` は、ルートディレクトリ内の `.tf` または `.tfvars` で終わるファイルのみに一致します
コードとしてサポートされるインフラストラクチャ
リソースタイプ | CloudFormationのYAMLおよびJSON | Terraform |
---|---|---|
APIGateway RestApi | ![]() |
![]() |
AutoScaling Group | ![]() |
![]() |
AutoScaling Launch Configuration | ![]() |
![]() |
CloudFormation Stack | ![]() |
![]() |
CloudTrail Trail | ![]() |
![]() |
DynamoDb Table | ![]() |
![]() |
EBSボリューム | ![]() |
![]() |
EC2 Instance | ![]() |
![]() |
EC2 Network Interface | ![]() |
![]() |
EC2 Security Group | ![]() |
![]() |
EC2 VPC | ![]() |
![]() |
EC2 VPCEndpoint | ![]() |
![]() |
ECRリポジトリ | ![]() |
![]() |
EFS File System | ![]() |
![]() |
ELBv2ロードバランサー | ![]() |
![]() |
ElasticCache | ![]() |
![]() |
Elasticsearch Domain | ![]() |
![]() |
ELB Classic Load Balancer | ![]() |
![]() |
EMR Cluster | ![]() |
![]() |
IAM Group | ![]() |
![]() |
IAM Managed Policy | ![]() |
![]() |
IAM Role | ![]() |
![]() |
Kinesis Stream | ![]() |
![]() |
KMS Key | ![]() |
![]() |
Lambda Function | ![]() |
![]() |
RDS DB クラスター | ![]() |
![]() |
RDS DBインスタンス | ![]() |
![]() |
Redshift Cluster | ![]() |
![]() |
S3 Bucket | ![]() |
![]() |
SNS Topic | ![]() |
![]() |
SQS Queue | ![]() |
![]() |
VPC NATゲートウェイ | ![]() |
![]() |
VPCネットワークACL | ![]() |
![]() |
VPCルートテーブル | ![]() |
![]() |
VPCサブネット | ![]() |
![]() |
Workspaces | ![]() |
![]() |
検索を開始する方法
検索を開始するには
- Template Scanner Githubアプリをインストールしたリポジトリに対して、Githubでプルリクエストを作成します。検索のステータスは、Githubのプルリクエストの下部に表示されます。
- [詳細] をクリックして、検索によって生成された結果を表示します。