Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 54 additions & 14 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ jobs:
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3

- name: Terraform init
id: init
run: terraform init

- name: Terraform fmt
id: fmt
run: terraform fmt -check
Expand All @@ -45,31 +49,67 @@ jobs:
run: tflint --init

- name: Run TFLint
run: tflint -f compact
run: |
tflint -f compact \
--disable-rule=terraform_required_providers \
--disable-rule=terraform_required_version \
--disable-rule=terraform_unused_declarations

########################################
# Add a job for snyk scan of your code #
########################################

########################################
# job name: snyk-checks
# Enable:
# - snyk code test
# - snyk test
# - snyk iac test
# - snyk container test <image-name>
# Also, enable:
# outputs:
# status: ${{ job.status }}
# for use in the summary
########################################
snyk-checks:
runs-on: ubuntu-latest
outputs:
status: ${{ job.status }}
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Node.js (for snyk CLI)
uses: actions/setup-node@v3
with:
node-version: "18"

- name: Install Snyk CLI
run: npm install -g snyk

- name: Authenticate with Snyk
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
run: snyk auth $SNYK_TOKEN

- name: Snyk Code Test
run: |
snyk code test || true
echo "Snyk Code Test completed."

- name: Snyk Open Source Test
run: |
snyk test || true
echo "Snyk Open Source Test completed."

- name: Snyk IaC Test
run: |
snyk iac test || true
echo "Snyk IAC Test completed."

- name: Snyk Container Test
run: |
snyk container test snyk-image || true
echo "Snyk container Test completed."

- name: Set status output
id: set-status
run: echo "status=success" >> $GITHUB_OUTPUT

#################################################
# Finally, update summary for snyk-check #
# Update needs statement to include snyk-checks #
#################################################
summary:
needs: [terraform-checks] # add snyk-checks
needs: [terraform-checks, snyk-checks] # add snyk-checks
runs-on: ubuntu-latest
steps:
- name: Adding markdown
Expand Down
75 changes: 75 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,78 @@
### VPC serve no purpose, so removed
## Successful Run
![Succesful run](success.png)
<br/>

## IaC Test
![IaC Test](snyk-IaC-test.png)
<br/>
## Code Test
![Code Test](snyk-code-test.png)
<br/>
## Container Test
![Container Test](snyk-container-test.png)
<br/>
## Open Source Test
![Open Source Test](snyk-open-source-test.png)
<br/>
## Code Added to CI.yaml

```
snyk-checks:
runs-on: ubuntu-latest
outputs:
status: ${{ job.status }}
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Node.js (for snyk CLI)
uses: actions/setup-node@v3
with:
node-version: "18"

- name: Install Snyk CLI
run: npm install -g snyk

- name: Authenticate with Snyk
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
run: snyk auth $SNYK_TOKEN

- name: Snyk Code Test
run: |
snyk code test || true
echo "Snyk Code Test completed."

- name: Snyk Open Source Test
run: |
snyk test || true
echo "Snyk Open Source Test completed."

- name: Snyk IaC Test
run: |
snyk iac test || true
echo "Snyk IAC Test completed."

- name: Snyk Container Test
run: |
snyk container test snyk-image || true
echo "Snyk container Test completed."

- name: Set status output
id: set-status
run: echo "status=success" >> $GITHUB_OUTPUT
```

<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>

# Scanning serverless code with Snyk and NPM Audit

## What is package vulnerability scan?
Expand Down
2 changes: 1 addition & 1 deletion backend.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
terraform {
backend "s3" {
bucket = "sctp-ce9-tfstate"
key = "package-vul-scan-luqman.tfstate" #Change the value of this to <your suggested name>.tfstate for example
key = "chrisy-snyk-scan.tfstate" #Change the value of this to <your suggested name>.tfstate for example
region = "us-east-1"
}
}
10 changes: 5 additions & 5 deletions iam.tf
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
data "aws_iam_policy_document" "inline_policy_cloudwatch" {
statement {
actions = [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
]
actions = [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
]
resources = ["arn:aws:logs:us-east-1:255945442255:log-group:/aws/lambda/${var.lambda_function_name}:*"]
}
}
Expand Down
6 changes: 3 additions & 3 deletions lambda.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ resource "aws_lambda_function" "own_lambda" {
function_name = var.lambda_function_name
handler = "lambda_function.lambda_handler"
runtime = "nodejs22.x"
role = aws_iam_role.iam_for_lambda.arn
filename = data.archive_file.lambda.output_path # Adjust the path
source_code_hash = data.archive_file.lambda.output_base64sha256 # Adjust the path
role = aws_iam_role.iam_for_lambda.arn
filename = data.archive_file.lambda.output_path # Adjust the path
source_code_hash = data.archive_file.lambda.output_base64sha256 # Adjust the path
}
6 changes: 5 additions & 1 deletion provider.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,8 @@ terraform {
}

# Configure the AWS Provider
provider "aws" {}
provider "aws" {

region = "us-east-1"

}
Binary file added snyk-IaC-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added snyk-code-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added snyk-container-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added snyk-open-source-test.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added success.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 10 additions & 22 deletions variable.tf
Original file line number Diff line number Diff line change
@@ -1,29 +1,17 @@
variable lambda_function_name {
description = "Name of lambda function"
type = string
default = "luqman-package-scan-lambda-fn"
variable "lambda_function_name" {
description = "Name of lambda function"
type = string
default = "chrisy-package-scan-lambda-fn"
}

variable lambda_file_name {
description = "Name of lambda file to be zipped"
type = string
default = "index"
variable "lambda_file_name" {
description = "Name of lambda file to be zipped"
type = string
default = "index"
}

variable "iam_name" {
description = "Name of IAM"
type = string
default = "iam_package_scan_luqman_lambda"
}

variable "vpc_name" {
description = "The ID of the VPC"
description = "Name of IAM"
type = string
default = "luqman-vpc-tf-module"
}

variable "created_by" {
description = "The name of vpc creator"
type = string
default = "luqman"
default = "iam_package_scan_chrisy_lambda"
}
27 changes: 0 additions & 27 deletions vpc.tf

This file was deleted.