@@ -51,39 +51,47 @@ vulnerabilities. You can use policies to measure and track other aspects of
5151supply chain management as well, such as open-source license usage and base
5252image up-to-dateness.
5353
54- ## Out-of-the-box policies
54+ ## Policy types
5555
56- Docker Scout ships the following out-of-the-box policies:
56+ In Docker Scout, a * policy* is derived from a * policy type* . Policy types are
57+ templates that define the core parameters of a policy. You can compare policy
58+ types to classes in object-oriented programming, with each policy acting as an
59+ instance created from its corresponding policy type.
5760
58- - [ No fixable critical or high vulnerabilities] ( #no-fixable-critical-or-high-vulnerabilities )
59- - [ No AGPL v3 licenses] ( #no-agpl-v3-licenses )
60- - [ No outdated base images] ( #no-outdated-base-images )
61- - [ No high-profile vulnerabilities] ( #no-high-profile-vulnerabilities )
62- - [ Supply chain attestations] ( #supply-chain-attestations )
63- - [ Default non-root user] ( #default-non-root-user )
64- - [ No unapproved base images] ( #no-unapproved-base-images )
61+ Docker Scout supports the following policy types:
6562
66- To give you a head start, Scout enables several policies by default for your
67- Scout-enabled repositories. You can customize the default configurations to
68- reflect internal requirements and standards. You can also disable a policy
69- altogether if it isn't relevant to you. For more information, see [ Configure
70- policies] ( ./configure.md ) .
63+ - [ Severity-Based Vulnerability] ( #severity-based-vulnerability )
64+ - [ Compliant Licenses] ( #compliant-licenses )
65+ - [ Up-to-Date Base Images] ( #up-to-date-base-images )
66+ - [ High-Profile Vulnerabilities] ( #high-profile-vulnerabilities )
67+ - [ Supply Chain Attestations] ( #supply-chain-attestations )
68+ - [ Default Non-Root User] ( #default-non-root-user )
69+ - [ Approved Base Images] ( #approved-base-images )
70+ - [ SonarQube Quality Gates] ( #sonarqube-quality-gates )
7171
72- There's also a set of [ additional policies] ( #additional-policies ) that can be
73- optionally enabled for repositories.
72+ Docker Scout automatically provides default policies for repositories where it
73+ is enabled, except for the SonarQube Quality Gates policy, which requires
74+ [ integration with SonarQube] ( /manuals/scout/integrations/code-quality/sonarqube.md )
75+ before use.
7476
75- ### No fixable critical or high vulnerabilities
77+ You can create custom policies from any of the supported policy types, or
78+ delete a default policy if it isn't applicable to your project. For more
79+ information, refer to [ Configure policies] ( ./configure.md ) .
7680
77- The ** No fixable critical or high vulnerabilities** policy requires that your
78- artifacts aren't exposed to known vulnerabilities where there's a fix version
79- available. Essentially, this means that there's an easy fix that you can deploy
80- for images that fail this policy: upgrade the vulnerable package to a version
81- containing a fix for the vulnerability.
81+ <!-- vale Docker.HeadingSentenceCase = NO -->
8282
83- By default, this policy only flags critical and high severity vulnerabilities.
83+ ### Severity-Based Vulnerability
8484
85- This policy is violated if an artifact is affected by one or more critical-
86- or high-severity vulnerability, where a fix version is available.
85+ The ** Severity-Based Vulnerability** policy type checks whether your
86+ artifacts are exposed to known vulnerabilities.
87+
88+ By default, this policy only flags critical and high severity vulnerabilities
89+ where there's a fix version available. Essentially, this means that there's an
90+ easy fix that you can deploy for images that fail this policy: upgrade the
91+ vulnerable package to a version containing a fix for the vulnerability.
92+
93+ Images are deemed non-compliant with this policy if they contain one or more
94+ vulnerabilities that fall outside the specified policy criteria.
8795
8896You can configure the parameters of this policy by creating a custom version of the policy.
8997The following policy parameters are configurable in a custom version:
@@ -109,31 +117,32 @@ The following policy parameters are configurable in a custom version:
109117
110118For more information about configuring policies, see [ Configure policies] ( ./configure.md ) .
111119
112- ### No AGPL v3 licenses
120+ ### Compliant Licenses
113121
114- The ** No AGPL v3 licenses ** policy requires that your artifacts don't contain
115- packages distributed under an AGPLv3 license. This policy is violated if
116- your artifacts contain one or more packages with this license.
122+ The ** Compliant Licenses ** policy type checks whether your images contain
123+ packages distributed under an inappropriate license. Images are considered
124+ non-compliant if they contain one or more packages with such a license.
117125
118126You can configure the list of licenses that this policy should look out for,
119127and add exceptions by specifying an allow-list (in the form of PURLs).
120128See [ Configure policies] ( ./configure.md ) .
121129
122- ### No outdated base images
130+ ### Up-to-Date Base Images
123131
124- The ** No outdated base images ** policy requires that the base images you use are
125- up-to-date.
132+ The ** Up-to-Date Base Images ** policy type checks whether the base images you
133+ use are up-to-date.
126134
127- It's violated when the tag you used to build your image points to a
128- different digest than what you're using. If there's a mismatch in digests, that
129- means the base image you're using is out of date.
135+ Images are considered non-compliant with this policy if the tag you used to
136+ build your image points to a different digest than what you're using. If
137+ there's a mismatch in digests, that means the base image you're using is out of
138+ date.
130139
131140Your images need provenance attestations for this policy to successfully
132141evaluate. For more information, see [ No base image data] ( #no-base-image-data ) .
133142
134- ### No high-profile vulnerabilities
143+ ### High-Profile Vulnerabilities
135144
136- The ** No high-profile vulnerabilities ** policy requires that your artifacts don't
145+ The ** High-Profile Vulnerabilities ** policy type checks whether your images
137146contain vulnerabilities from Docker Scout’s curated list. This list is kept
138147up-to-date with newly disclosed vulnerabilities that are widely recognized to
139148be risky.
@@ -150,8 +159,8 @@ The list includes the following vulnerabilities:
150159- [ CVE-2024 -47175 (OpenPrinting - ` libppd ` )] ( https://scout.docker.com/v/CVE-2024-47175 )
151160- [ CVE-2024 -47177 (OpenPrinting - ` cups-filters ` )] ( https://scout.docker.com/v/CVE-2024-47177 )
152161
153- You can configure the CVEs included in this list by creating a custom policy.
154- Custom configuration options include:
162+ You can customize this policy to change which CVEs that are considered
163+ high-profile by configuring the policy. Custom configuration options include:
155164
156165- ** Excluded CVEs** : Specify the CVEs that you want this policy to ignore.
157166
@@ -167,14 +176,14 @@ Custom configuration options include:
167176
168177For more information on policy configuration, see [ Configure policies] ( ./configure.md ) .
169178
170- ### Supply chain attestations
179+ ### Supply Chain Attestations
171180
172- The ** Supply chain attestations ** policy requires that your artifacts have
181+ The ** Supply Chain Attestations ** policy type checks whether your images have
173182[ SBOM] ( /manuals/build/metadata/attestations/sbom.md ) and
174183[ provenance] ( /manuals/build/metadata/attestations/slsa-provenance.md ) attestations.
175184
176- This policy is violated if an artifact lacks either an SBOM attestation or a
177- provenance attestation with max mode. To ensure compliance,
185+ Images are considered non-compliant if they lack either an SBOM attestation or
186+ a provenance attestation with * max mode* provenance . To ensure compliance,
178187update your build command to attach these attestations at build-time:
179188
180189``` console
@@ -188,18 +197,18 @@ If you're using GitHub Actions to build and push your images,
188197learn how you can [ configure the action] ( /manuals/build/ci/github-actions/attestations.md )
189198to apply SBOM and provenance attestations.
190199
191- ### Default non-root user
200+ ### Default Non-Root User
192201
193202By default, containers run as the ` root ` superuser with full system
194203administration privileges inside the container, unless the Dockerfile specifies
195204a different default user. Running containers as a privileged user weakens their
196205runtime security, as it means any code that runs in the container can perform
197206administrative actions.
198207
199- The ** Default non-root user ** policy detects images that are set to run as the
200- default ` root ` user. To comply with this policy, images must specify a non-root
201- user in the image configuration. Images violate this policy if they don't
202- specify a non-root default user for the runtime stage.
208+ The ** Default Non-Root User ** policy type detects images that are set to run as
209+ the default ` root ` user. To comply with this policy, images must specify a
210+ non-root user in the image configuration. Images are non-compliant with this
211+ policy if they don't specify a non-root default user for the runtime stage.
203212
204213For non-compliant images, evaluation results show whether or not the ` root `
205214user was set explicitly for the image. This helps you distinguish between
@@ -265,9 +274,9 @@ ENTRYPOINT ["/app/production"]
265274{{< /tab >}}
266275{{< /tabs >}}
267276
268- ### No unapproved base images
277+ ### Approved Base Images
269278
270- The ** No unapproved base images ** policy ensures that the base images you use
279+ The ** Approved Base Images ** policy type ensures that the base images you use
271280in your builds are maintained and secure.
272281
273282This policy checks whether the base images used in your builds match any of the
@@ -322,18 +331,9 @@ This policy is configurable with the following options:
322331Your images need provenance attestations for this policy to successfully
323332evaluate. For more information, see [ No base image data] ( #no-base-image-data ) .
324333
325- ## Additional policies
326-
327- In addition to the [ out-of-the-box policies] ( #out-of-the-box-policies ) enabled
328- by default, Docker Scout supports the following optional policies. Before you
329- can enable these policies, you need to either configure the policies, or
330- configure the integration that the policy requires.
331-
332- - [ SonarQube quality gates passed] ( #sonarqube-quality-gates-passed )
333-
334- ### SonarQube quality gates passed
334+ ### SonarQube Quality Gates
335335
336- The ** SonarQube quality gates passed ** policy builds on the [ SonarQube
336+ The ** SonarQube Quality Gates ** policy type builds on the [ SonarQube
337337integration] ( ../integrations/code-quality/sonarqube.md ) to assess the quality
338338of your source code. This policy works by ingesting the SonarQube code analysis
339339results into Docker Scout.
@@ -366,8 +366,8 @@ in the CLI.
366366## No base image data
367367
368368There are cases when it's not possible to determine information about the base
369- images used in your builds. In such cases, the ** No outdated base images ** and
370- ** No unapproved base images ** policies get flagged as having ** No data** .
369+ images used in your builds. In such cases, the ** Up-to-Date Base Images ** and
370+ ** Approved Base Images ** policies get flagged as having ** No data** .
371371
372372This "no data" state occurs when:
373373
0 commit comments