UNCLASSIFIED

"master/CHECKLIST.md" did not exist on "master"
CHECKLIST.md 6.8 KB
Newer Older
kwami.delali's avatar
kwami.delali committed
1 2 3 4 5 6
## Getting Started

This checklist is meant to provide a high level overview of the process and steps for getting your container(s) onto Iron Bank. 

- [ ] Create a Repo1 account (https://repo1.dso.mil/users/sign_in) to get access to the public repository of containers. You can register by clicking on the 'Sign in with Iron Bank SSO' button in the sign-in page, followed by the Register button

sean.melissari's avatar
sean.melissari committed
7
- [ ] Fill out the onboarding [form](https://docs.google.com/forms/d/e/1FAIpQLScU88kFi9EPKyyCRFtpqZL1PV1H2Ek85hU6J1zqBkppvfFNlQ/viewform)
kwami.delali's avatar
kwami.delali committed
8 9 10 11 12 13 14 15 16 17 18

- [ ] Attend our once weekly onboarding session where you can ask questions. [Register here](https://www.zoomgov.com/meeting/register/vJIsce6rpzkqGq9hHHRscNfGENYqvRL1s10%E2%81%A9).

- [ ] Your Onboarding form will be processed by the Iron Bank team, who will then assign it a priority level and create your repository. You will receive an email that your Gitlab issue has been created and is ready for you to complete the hardening process

- [ ] Ensure that all POCs are assigned to the issue to ensure proper tracking and notifications

## Hardening Process

### Repository Requirements

kwami.delali's avatar
kwami.delali committed
19
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/blob/master/Hardening/structure_requirements.md)
kwami.delali's avatar
kwami.delali committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

- [ ] A Dockerfile has been created in the root of the repository

- [ ] Hardening_manifest.yaml has been created in the root of the repository

- [ ] The project has a LICENSE or a copy of the EULA

- [ ] The project has a README in the root of the repository with sufficient instructions on using the Iron Bank version of the image

- [ ] If your container is an enterprise/commercial container, the opensource version is ready

- [ ] Scripts used in the Dockerfile are placed into a `scripts` directory

- [ ] Configuration files are placed into a `config` directory

kwami.delali's avatar
kwami.delali committed
35
- [ ] Project is [configured for automatic renovate updates](https://repo1.dso.mil/dsop/dccscr/-/blob/master/Hardening/Renovate.md) (if possible)
kwami.delali's avatar
kwami.delali committed
36 37 38 39 40 41 42

  - [ ] Renovate.json is present in root of repository

  - [ ] Reviewers have been specified for notifications on new merge requests

### Dockerfile Requirements 

kwami.delali's avatar
kwami.delali committed
43
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/blob/master/Hardening/Dockerfile_Requirements.md)
kwami.delali's avatar
kwami.delali committed
44 45 46 47 48

- [ ] There is one Dockerfile named Dockerfile

- [ ] The Dockerfile has the BASE_REGISTRY, BASE_IMAGE, and BASE_TAG arguments (used for local builds; the values in hardening_manifest.yaml are what will be used in the Container Hardening Pipeline)

kwami.delali's avatar
kwami.delali committed
49
- [ ] The Dockerfile is [based on a hardened Iron Bank image](https://repo1.dso.mil/dsop/dccscr/-/blob/master/Hardening/Dockerfile_Requirements.md#requirements)
kwami.delali's avatar
kwami.delali committed
50 51 52 53 54 55 56 57 58 59 60

- [ ] The Dockerfile includes a HEALTHCHECK (required if it is an application container)

- [ ] The Dockerfile starts the container as a non-root USER. Otherwise, if you must run as root, you must have proper justification.

- [ ] If your ENTRYPOINT entails using a script, the script is copied from a scripts directory on the project root

- [ ] No ADD instructions are used in the Dockerfile

## Hardening Manifest

kwami.delali's avatar
kwami.delali committed
61
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/tree/master/hardening%20manifest)
kwami.delali's avatar
kwami.delali committed
62

kwami.delali's avatar
kwami.delali committed
63
- [ ] Begin with this example and update with relevant information: https://repo1.dso.mil/dsop/dccscr/-/blob/master/hardening%20manifest/hardening_manifest.yaml
kwami.delali's avatar
kwami.delali committed
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

- [ ] Hardening manifest adheres to the following schema: https://repo1.dsop.io/ironbank-tools/ironbank-pipeline/-/blob/master/schema/hardening_manifest.schema.json

- [ ] The BASE_IMAGE and BASE_TAG arguments refer to a hardened/approved Iron Bank image (BASE_REGISTRY defaults to `registry1.dso.mil/ironbank` in the pipeline)

- [ ] Relevant image metadata has been entered for the corresponding labels

- [ ] Any downloaded resources include a checksum for verification (letters must be lowercase)

- [ ] For resource URLs that require authentication, credentials have been provided to an Iron Bank team member

- [ ] The maintainers' contact information has been provided in the `maintainers` section

## Gitlab CI Pipeline

kwami.delali's avatar
kwami.delali committed
79
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/tree/master/pipeline)
kwami.delali's avatar
kwami.delali committed
80 81 82

- [ ] Validate your container builds successfully through the Gitlab CI pipeline. When viewing the repository in repo1.dso.mil, go to `CI/CD > Pipelines` on the left. From there, you can see the status of your pipelines.

kwami.delali's avatar
kwami.delali committed
83
- [ ] Review scan output from `csv output` stage of the pipeline. For instructions on downloading the findings spreadsheet, click [here](https://repo1.dso.mil/dsop/dccscr/-/blob/master/pre-approval/spreadsheet.md)
kwami.delali's avatar
kwami.delali committed
84 85 86 87 88

- [ ] Fix vulnerabilities that were found and run the pipeline again before requesting a merge to the development branch

## Pre-Approval:

kwami.delali's avatar
kwami.delali committed
89
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/tree/master/pre-approval)
kwami.delali's avatar
kwami.delali committed
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

- [ ] Submit a Merge Request to the development branch

- [ ] Feature branch has been merged into development

- [ ] All findings from the development branch pipeline have been justified per the above documentation

- [ ] Justifications have been attached to this issue

- [ ] Apply the `Approval` label and remove the `Doing` label to indicate this container is ready for the approval phase

_Note: The justifications must be provided in a timely fashion. Failure to do so could result in new findings being identified which may start this process over._

## Approval Process (Container Hardening Team processes):

kwami.delali's avatar
kwami.delali committed
105
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/tree/master/approval)
kwami.delali's avatar
kwami.delali committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

- [ ] Peer review from Container Hardening Team

- [ ] Findings Approver has reviewed and approved all justifications

- [ ] Approval request has been sent to Authorizing Official

- [ ] Approval request has been processed by Authorizing Official

One of the following statuses is assigned:

- [ ] Conditional approval has been granted by the Authorizing Official for this container (`Approval::Expiring` label is applied)

- [ ] This container has been approved by the Authorizing Official (`Approved` label is applied)

_Note: If the above approval process is kicked back for any reason, the `Approval` label will be removed and the issue will be sent back to `Open`. Any comments will be listed in this issue for you to address. Once they have been addressed, you may re-add the `Approval` label._

## Post-Approval

kwami.delali's avatar
kwami.delali committed
125
[Full documentation](https://repo1.dso.mil/dsop/dccscr/-/tree/master/post%20approval)
kwami.delali's avatar
kwami.delali committed
126 127 128 129 130 131 132

- [ ] Your issue has been closed

- [ ] Your project has been merged into master

- [ ] Master branch pipeline has completed successfully (at this point, the image is made available on `ironbank.dso.mil` and `registry1.dso.mil` )

sean.melissari's avatar
sean.melissari committed
133
_Note: Now that your application has been approved, your container(s) will be subjected to continuous monitoring. If new CVEs are discovered or bugs are identified, you will need to address the issues and return to step 5 (Gitlab CI Pipeline). As you make changes, please make sure you are adhering to all of the requirements of the hardening process._