目次

Template Scanner Githubアプリ

Template Scanner Github Appは、 infrastructure-as-code テンプレートをスキャンし、セキュリティのベストプラクティスに照らして評価します。組織内のリポジトリを選択して、開いたプルリクエストを自動的に検索したり、選択したGithubリポジトリでプルリクエストをアップデートしたりできます。

現在、Github Enterpriseの組織はサポートされていません。 {:.note}

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/.*/ca/.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

検索を開始する方法

検索を開始するには

  1. Template Scanner Githubアプリをインストールしたリポジトリに対して、Githubでプルリクエストを作成します。検索のステータスは、Githubのプルリクエストの下部に表示されます。
  2. [詳細] をクリックして、検索によって生成された結果を表示します。