このページのトピック
Template Scanner Githubアプリ
Template Scanner Github Appは、 infrastructure-as-code
テンプレートをスキャンし、セキュリティのベストプラクティスに照らして評価します。組織内のリポジトリを選択して、開いたプルリクエストを自動的に検索したり、選択したGithubリポジトリでプルリクエストをアップデートしたりできます。
現在、Github Enterpriseの組織はサポートされていません。
- 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
サポートされているリソースの種類:
- APIGateway RestApi
- AutoScaling Group
- AutoScaling Launch Configuration
- CloudFormation Stack
- CloudTrail Trail
- DynamoDb Table
- EC2 Instance
- EC2 NatGateway
- EC2 Network Acl
- EC2 Network Interface
- EC2 Route Table
- EC2 Security Group
- EC2 Subnet
- EC2 Volume
- EC2 VPC
- EC2 VPCEndpoint
- EFS File System
- Elastic Load Balancer v2
- ElasticCache
- Elasticsearch Domain
- ELB Classic Load Balancer
- EMR Cluster
- IAM Group
- IAM Managed Policy
- IAM Role
- Kinesis Stream
- KMS Key
- Lambda Function
- RDS Cluster
- RDS Instance
- Redshift Cluster
- S3 Bucket
- SNS Topic
- SQS Queue
- Workspaces
Terraform
サポートされているリソースの種類:
- DynamoDB
- EC2 Instance
- Elastic Load Balancer v2
- S3 Bucket
- RDS Cluster
- RDS Instance
- SNS Topic
- SQS Queue
検索を開始する方法
検索を開始するには
- Template Scanner Githubアプリをインストールしたリポジトリに対して、Githubでプルリクエストを作成します。検索のステータスは、Githubのプルリクエストの下部に表示されます。
- [詳細] をクリックして、検索によって生成された結果を表示します。