Skip to content

Commit efa942f

Browse files
committed
readme
1 parent 4824e17 commit efa942f

1 file changed

Lines changed: 22 additions & 23 deletions

File tree

README.md

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# s3cme
22

3-
Sample Go app repo with test (on push) and release (on tag) pipelines optimized for software supply chain security (S3C). Includes Terraform setup for [OpenID Connect](https://openid.net/connect/) (IODC) in GCP with Artifact Registry, and KMS service configuration.
3+
Sample Go app repo with test and release pipelines optimized for software supply chain security (S3C). Includes Terraform setup for Artifact Registry and KMS on GCP with [OpenID Connect](https://openid.net/connect/) (IODC), so no need for service account keys or GitHub secrets.
44

55
![](images/workflow.png)
66

@@ -11,46 +11,45 @@ Sample Go app repo with test (on push) and release (on tag) pipelines optimized
1111

1212
What's in the included workflow pipelines:
1313

14-
* PR qualification (`on-push`):
15-
* Source vulnerability scan using Trivy
16-
* Sarif-formatted report for repo alerts
17-
* Release (`on-tag`):
18-
* Same test as on push
19-
* Image build and registry push using [ko](https://github.com/ko-build/ko) with with SBOM generation
20-
* Image vulnerability scan using Trivy with max severity checks
21-
* Image signing using KMS key and attestation using cosign
22-
* SLSA provenance generation for GitHub workflow
23-
* SLSA provenance verification using cosign and CUE policy
24-
* On schedule
14+
* `on-push` - PR qualification
15+
* Static code vulnerability scan using [trivy](https://github.com/aquasecurity/trivy)
16+
* Repo security alerts based on sarif reports CodeQL scans
17+
* `on-tag` Release (container image build)
18+
* Image build/push using [ko](https://github.com/ko-build/ko) (includes SBOM generation)
19+
* Image vulnerability scan using [trivy](https://github.com/aquasecurity/trivy) with max severity checks parameter
20+
* Image signing using [KMS key](https://cloud.google.com/security-key-management) and attestation using [cosign](https://github.com/sigstore/cosign)
21+
* SLSA provenance generation using [slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator)
22+
* SLSA provenance verification using [cosign](https://github.com/sigstore/cosign) based on CUE policy
23+
* `on-schedule` - Repo hygiene
2524
* Semantic code analysis using CodeQL (every 4 hours)
2625

2726
## Repo Usage
2827

29-
Use this template to create a new repo (green button)
28+
Use this template to create a new repo (click the green button and follow the wizard)
3029

3130
![](images/template.png)
3231

33-
Clone the new repo locally and navigate into it
32+
When done, clone your new repo locally, and navigate into it
3433

3534
```shell
36-
git clone git@github.com:your-username/your-new-app-name.git
37-
cd your-new-app-name
35+
git clone git@github.com:$GIT_HUB_USERNAME/$REPO_NAME.git
36+
cd $REPO_NAME
3837
```
3938

40-
Initialize your new repo. This will update all the references to your newly clone GitHub repository and initialize the Terraform setup
39+
Initialize your new repo. This will update all the references to your newly clone GitHub repository and initialize the Terraform setup.
4140

4241
```shell
4342
tools/init-repo
4443
terraform -chdir=./setup init
4544
```
4645

47-
Apply the Terraform configuration to create GCP resources (KMS ring/key, Artifact Registry repo, Workload Identity Pool and the Service Account)
46+
Apply the Terraform configuration to create GCP resources (KMS ring/key, Artifact Registry repo, Workload Identity Pool and the Service Account).
4847

4948
```shell
5049
terraform -chdir=./setup apply
5150
```
5251

53-
When promoted, provide
52+
When promoted, provide:
5453

5554
* `project_id` - GCP project ID
5655
* `location` - GCP region (e.g. `us-west1`)
@@ -59,7 +58,7 @@ When promoted, provide
5958

6059
When completed, Terraform will output the configuration values.
6160

62-
Update `conf` job in `.github/workflows/on-tag.yaml` file to the values output by Terraform:
61+
Update `env` portion of the `conf` job in `.github/workflows/on-tag.yaml` file to the values output by Terraform:
6362

6463
* `IMG_NAME`
6564
* `KMS_KEY`
@@ -81,7 +80,7 @@ git push --all
8180

8281
### Trigger release pipeline
8382

84-
The canonical version is stored in [.version](.version) file. Feel free to edit it (by default: `v0.0.1`). When done, trigger the release pipeline:
83+
The canonical version of the entire repo is stored in [.version](.version) file. Feel free to edit it (by default: `v0.0.1`). When done, trigger the release pipeline:
8584

8685
> If you did edit the version, make sure to commit and push that change to the repo first. You can also use `make tag` to automate the entire process.
8786
@@ -93,7 +92,7 @@ git push origin $VERSION
9392

9493
### Monitor the pipeline
9594

96-
Navigate to `/actions` in your repo to see the status of that release pipeline. Wait until all steps (aka jobs) competed (green).
95+
Navigate to `/actions` in your repo to see the status of that release pipeline. Wait until all steps (aka jobs) have completed (green).
9796

9897
> If any steps fail, click on them to see the cause. Fix it, commit/push changes to the repo, and tag a new release to re-trigger the pipeline again.
9998
@@ -243,7 +242,7 @@ attestation keyless validation failed for authority authority-0 for us-west1-doc
243242
no matching attestations:
244243
```
245244

246-
This demonstrates how the policy-controller admission controller enforces SLSA provenance policy in your cluster based on verifiable supply-chain metadata from cosign.
245+
This demonstrates how the policy-controller admission controller enforces [SLSA provenance](https://slsa.dev/provenance/v0.2) policy in your cluster based on verifiable supply-chain metadata from [cosign](https://github.com/sigstore/cosign).
247246

248247
## Disclaimer
249248

0 commit comments

Comments
 (0)