目次

Trend Cloud One™ -Template Scannerアプリ

Trend Cloud One™ - Template Scannerは、 infrastructure-as-code テンプレートを検索し、セキュリティのベストプラクティスに照らして評価します。選択したGithubリポジトリでプルリクエストが開かれたとき、または更新されたときに自動的に検索されるように、組織内のリポジトリを選択できます。

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

Trend Cloud One Template Scannerとは

Trend Cloud One™ - Template Scannerは、GithubOrganizationにインストールできるGithubアプリケーションで、Gitリポジトリに存在する infrastructure-as-code テンプレートの検索を強制します。

Github内でのテンプレートセキュリティ検索の実装は、セキュリティ要件へのコンプライアンスをチーム/組織レベルで合理的に実施できるソフトウェア開発ライフサイクルの最も初期の段階です。開発者がコードに変更を実装している最中にセキュリティリスクを検出することは、問題を早期に報告するだけでなく、修正を適用するために必要な状況を把握しやすくなります。

Trend Cloud One Template Scannerのインストール方法

GitHubソースアカウントの使用開始 のガイドに従って、Trend Cloud One™アプリをインストールしてください。

検索対象の設定方法

初期設定では、Trend Cloud One™ -Template Scannerは、リポジトリのルートにある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

サポートされているリソースの種類

  • 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

検索を開始する方法

  • 検索を開始するには、Trend Cloud One™ - Template Scannerをインストールしたリポジトリに対してGithubでプルリクエストを作成します。
  • Githubのプルリクエストの下部に検索のステータスが表示されます。
  • [Details] をクリックして、検索によって生成された結果を表示します。