All Projects → accurics → Terrascan

accurics / Terrascan

Licence: apache-2.0
Detect compliance and security violations across Infrastructure as Code to mitigate risk before provisioning cloud native infrastructure.

Programming Languages

go
31211 projects - #10 most used programming language
Open Policy Agent
39 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
HCL
1544 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Terrascan

Checkov
Prevent cloud misconfigurations during build-time for Terraform, Cloudformation, Kubernetes, Serverless framework and other infrastructure-as-code-languages with Checkov by Bridgecrew.
Stars: ✭ 3,572 (+32.94%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops, devsecops, scans, aws-security, azure-security, gcp-security
CloudFrontier
Monitor the internet attack surface of various public cloud environments. Currently supports AWS, GCP, Azure, DigitalOcean and Oracle Cloud.
Stars: ✭ 102 (-96.2%)
Mutual labels:  aws-security, cloudsecurity, cloud-security, azure-security, gcp-security
Toc
A Table of Contents of all Gruntwork Code
Stars: ✭ 111 (-95.87%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops, infrastructure
Lambda The Terraform Way
AWS Lambda using Terraform., an Introductory Cookbook
Stars: ✭ 1,056 (-60.7%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops
Terraform
Terraform automation for Cloud
Stars: ✭ 121 (-95.5%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops
Tfsec
Security scanner for your Terraform code
Stars: ✭ 3,622 (+34.8%)
Mutual labels:  aws, terraform, infrastructure-as-code, devsecops
yor
Extensible auto-tagger for your IaC files. The ultimate way to link entities in the cloud back to the codified resource which created it.
Stars: ✭ 459 (-82.92%)
Mutual labels:  terraform, iac, infrastructure-as-code, cloudsecurity
introspector
A schema and set of tools for using SQL to query cloud infrastructure.
Stars: ✭ 61 (-97.73%)
Mutual labels:  aws-security, cloudsecurity, devsecops, cloud-security
My Links
Knowledge seeks no man
Stars: ✭ 311 (-88.43%)
Mutual labels:  aws, infrastructure-as-code, devops, devsecops
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (-83.18%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops
Terraboard
🌍 📋 A web dashboard to inspect Terraform States
Stars: ✭ 1,192 (-55.64%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops
awesome-cloud-security
🛡️ Awesome Cloud Security Resources ⚔️
Stars: ✭ 1,056 (-60.7%)
Mutual labels:  aws-security, cloud-security, azure-security, gcp-security
Terraform Modules
Terraform Modules
Stars: ✭ 25 (-99.07%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops
Terratag
Terratag is a CLI tool that enables users of Terraform to automatically create and maintain tags across their entire set of AWS, Azure, and GCP resources
Stars: ✭ 385 (-85.67%)
Mutual labels:  aws, terraform, infrastructure-as-code, devops
Terraform Aws Secure Baseline
Terraform module to set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations and AWS Foundational Security Best Practices.
Stars: ✭ 596 (-77.82%)
Mutual labels:  aws, terraform, devops, security-tools
Trivy
Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues
Stars: ✭ 9,673 (+259.99%)
Mutual labels:  security-tools, iac, infrastructure-as-code, devsecops
Tau
Tau is a thin wrapper on top of terraform to manage multiple deployments, dependencies and secrets.
Stars: ✭ 53 (-98.03%)
Mutual labels:  terraform, infrastructure-as-code, devops
Devops Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Stars: ✭ 20,905 (+678.01%)
Mutual labels:  aws, terraform, devops
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way 🚀
Stars: ✭ 10,887 (+305.17%)
Mutual labels:  aws, infrastructure-as-code, iac
Buildpipeline
AWS-powered serverless build, test and deploy pipeline ft. multiple environments
Stars: ✭ 105 (-96.09%)
Mutual labels:  aws, terraform, infrastructure

Terrascan

GitHub release License: Apache 2.0 PRs Welcome CI AUR package codecov community Documentation Status Contributor Covenant

Introduction

Terrascan is a static code analyzer for Infrastructure as Code. Terrascan allows you to:

  • Seamlessly scan infrastructure as code for misconfigurations.
  • Monitor provisioned cloud infrastructure for configuration changes that introduce posture drift, and enables reverting to a secure posture.
  • Detect security vulnerabilities and compliance violations.
  • Mitigate risks before provisioning cloud native infrastructure.
  • Offers flexibility to run locally or integrate with your CI\CD.

Resources

Key features

Quick Start

  1. Install
  2. Scan
  3. Integrate

Step 1: Install

Terrascan supports multiple ways to install and is also available as a Docker image. See Terrascan's releases page for the latest version of builds in all supported platforms. Select the correct binary for your platform.

Install as a native executable

$ curl -L "$(curl -s https://api.github.com/repos/accurics/terrascan/releases/latest | grep -o -E "https://.+?_Darwin_x86_64.tar.gz")" > terrascan.tar.gz
$ tar -xf terrascan.tar.gz terrascan && rm terrascan.tar.gz
$ install terrascan /usr/local/bin && rm terrascan
$ terrascan

Install on ArchLinux / Manjaro via AUR

ArchLinux and Manjaro users can install by:

yay -S terrascan

Install via brew

Homebrew users can install by:

$ brew install terrascan

Docker image

Terrascan is also available as a Docker image and can be used as follows

$ docker run accurics/terrascan

Refer to documentation for information.

Step 2: Scan

To scan your code for security issues you can run the following (defaults to scanning Terraform).

$ terrascan scan

Note: Terrascan will exit with an error code if any errors or violations are found during a scan.

List of possible Exit Codes

Scenario Exit Code
scan summary has errors and violations 5
scan summary has errors but no violations 4
scan summary has violations but no errors 3
scan summary has no violations or errors 0
scan command errors out due to invalid inputs 1

Step 3: Integrate with CI\CD

Terrascan can be integrated into CI/CD pipelines to enforce security best practices. Please refer to our documentation to integrate with your pipeline.

Terrascan Commands

You can use the terrascan command with the following options:

$ terrascan
Terrascan

Usage:
  terrascan [command]

Available Commands:
  help        Help about any command
  init        Initialize Terrascan
  scan        Detect compliance and security violations across Infrastructure as Code.
  server      Run Terrascan as an API server
  version     Terrascan version

Flags:
  -c, --config-path string   config file path
  -h, --help                 help for terrascan
  -l, --log-level string     log level (debug, info, warn, error, panic, fatal) (default "info")
  -x, --log-type string      log output type (console, json) (default "console")
  -o, --output string        output type (human, json, yaml, xml) (default "human")

Use "terrascan [command] --help" for more information about a command.

Policies

Terrascan policies are written using the Rego policy language. Every rego includes a JSON "rule" file which defines metadata for the policy. By default, Terrascan downloads policies from Terrascan repositories while scanning for the first time. However, if you want to download the latest policies, you need to run the Initialization process. See Usage for information about the Initialization process.

Note: The scan command will implicitly run the initialization process if there are no policies found.

Docker Image Vulnerabilities

You can use the --find-vuln flag to collect vulnerabilities as reported in its registry as part of Terrascan's output. Currently Terrascan supports Elastic Container Registry (ECR), Azure Container Registry, Google Container Registry, and Google Artifact Registry.

The --find-vuln flag can be used when scanning IaC files as follows:

$ terrascan scan -i <IaC provider> --find-vuln

For more information and explanation of how to setup your environment to authenticate with the registrie's APIs see the usage documentation.

Customizing scans

By default, Terrascan scans your entire configuration against all policies. However, Terrascan supports granular configuration of policies and resources.

Read more about in-file instrumentation and the config file on our documentation site.

For now, some quick tips:

How to exclude a policy while scanning a resource

You can configure Terrascan to skip a particular policy (rule) while scanning a resource. Follow these steps depending on your platform:

Terraform

Use Terraform scripts to configure Terrascan to skip rules by inserting a comment with the phrase "ts:skip=<RULENAME><SKIP_REASON>". The comment should be included inside the resource as shown in the example below.

tf

Kubernetes

In Kubernetes yamls, you can configure Terrascan to skip policies by adding an annotation as seen in the snippet below.

k8s

How to include or exclude specific policies or resources from being scanned

Use the Terrascan config file to manually select the policies which should be included or excluded from the entire scan. This is suitable for edge use cases. Use the "in-file" suppression option to specify resources that should be excluded from being tested against selected policies. This ensures that the policies are skipped only for particular resources, rather than all of the resources.

config

Sample scan output

Terrascan's default output is a list of violations present in the scanned IaC. A sample output:

Screenshot 2021-01-19 at 10 52 47 PM

Building Terrascan

Terrascan can be built locally. This is helpful if you want to be on the latest version or when developing Terrascan.

$ git clone [email protected]:accurics/terrascan.git
$ cd terrascan
$ make build
$ ./bin/terrascan

To build your own docker, refer to this example (Alpine Linux):

FROM golang:alpine AS build-env

RUN apk add --update git

RUN git clone https://github.com/accurics/terrascan && cd terrascan \
  && CGO_ENABLED=0 GO111MODULE=on go build -o /go/bin/terrascan cmd/terrascan/main.go

Developing Terrascan

To learn more about developing and contributing to Terrascan, refer to the contributing guide.

Code of Conduct

We believe having an open and inclusive community benefits all of us. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

Terrascan is licensed under the Apache 2.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].