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"ファイルをスキャンします。
スキャン対象を設定および上書きするには:

手順

  1. リポジトリのルートに.template-securityというディレクトリを作成します。
  2. .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/.*/ca/.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キュー

スキャンを開始する方法 親トピック

スキャンを開始するには:

手順

  1. Template Scanner Github AppをインストールしたリポジトリでGithubにプルリクエストを作成します。プルリクエストの下部でスキャンのステータスを確認できるはずです。
  2. [Details]をクリックして、スキャンによって生成された検出結果を表示します。
    PR=62d88f9a-6eaf-4611-9fa3-eaeac012a6fd.png