Skip to content

Commit 81cbb08

Browse files
dhi: add note that vex is retrieved from scout registry (#23566)
<!--Delete sections as needed --> ## Description Added note that VEX attestation is retrieved from Scout registry by default and users should ensure they can access it. Linked to mirroring topic to inform user they can mirror attestations to another registry. Updated pages: - https://deploy-preview-23566--docsdocker.netlify.app/dhi/how-to/scan/#use-vex-to-filter-known-non-exploitable-cves - https://deploy-preview-23566--docsdocker.netlify.app/dhi/core-concepts/vex/#use-vex-to-filter-known-non-exploitable-cves ## Related issues or tickets ENGDOCS-3052 https://docker.slack.com/archives/C04M34MRQS1/p1760484146454809?thread_ts=1760465235.492129&cid=C04M34MRQS1 ## Reviews <!-- Notes for reviewers here --> <!-- List applicable reviews (optionally @tag reviewers) --> - [ ] Editorial review - [ ] Product review --------- Signed-off-by: Craig Osterhout <[email protected]>
1 parent a25eeca commit 81cbb08

File tree

7 files changed

+86
-23
lines changed

7 files changed

+86
-23
lines changed

content/manuals/dhi/about/test.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,21 @@ You can view and verify this attestation using the Docker Scout CLI.
7878
$ docker scout attest get \
7979
--predicate-type https://scout.docker.com/tests/v0.1 \
8080
--predicate \
81-
<your-namespace>/dhi-<image>:<tag> --platform <platform>
81+
<your-namespace>/dhi-<image>:<tag>
8282
```
8383

84+
> [!NOTE]
85+
>
86+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
87+
> `registry://docs/dhi-python` instead of `docs/dhi-python`.
88+
8489
For example:
8590

8691
```console
8792
$ docker scout attest get \
8893
--predicate-type https://scout.docker.com/tests/v0.1 \
8994
--predicate \
90-
docs/dhi-python:3.13 --platform linux/amd64
95+
docs/dhi-python:3.13
9196
```
9297

9398
This contains a list of tests and their results.

content/manuals/dhi/core-concepts/attestations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ details](../how-to/explore.md#view-image-variant-details) in Docker Hub.
6767

6868
| Attestation type | Description | Predicate type URI |
6969
|----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|
70-
| CycloneDX SBOM | A software bill of materials in [CycloneDX](https://cyclonedx.org/) format, listing components, libraries, and versions. | `https://cyclonedx.org/bom/v1.5` |
70+
| CycloneDX SBOM | A software bill of materials in [CycloneDX](https://cyclonedx.org/) format, listing components, libraries, and versions. | `https://cyclonedx.org/bom/v1.6` |
7171
| STIG scan | Results of a STIG scan, with output in HTML and XCCDF formats. | `https://docker.com/dhi/stig/v0.1` |
7272
| CVEs (In-Toto format) | A list of known vulnerabilities (CVEs) affecting the image's components, based on package and distribution scanning. | `https://in-toto.io/attestation/vulns/v0.1` |
7373
| VEX | A [Vulnerability Exploitability eXchange (VEX)](https://openvex.dev/) document that identifies vulnerabilities that do not apply to the image and explains why (e.g., not reachable or not present). | `https://openvex.dev/ns/v0.2.0` |

content/manuals/dhi/core-concepts/cves.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,9 @@ $ docker scout vex get <your-namespace>/dhi-<image>:<tag> --output vex.json
160160
>
161161
> The `docker scout vex get` command requires [Docker Scout
162162
> CLI](https://github.com/docker/scout-cli/) version 1.18.3 or later.
163+
>
164+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
165+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
163166
164167
For example:
165168

content/manuals/dhi/core-concepts/signatures.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,28 +56,37 @@ You can verify that a Docker Hardened Image is signed and trusted using either D
5656
To lists all attestations, including signature metadata, attached to the image, use the following command:
5757

5858
```console
59-
$ docker scout attest list <image-name>:<tag> --platform <platform>
59+
$ docker scout attest list <image-name>:<tag>
6060
```
6161

62+
> [!NOTE]
63+
>
64+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
65+
> `registry://docs/dhi-python` instead of `docs/dhi-python`.
66+
6267
To verify a specific signed attestation (e.g., SBOM, VEX, provenance):
6368

6469
```console
6570
$ docker scout attest get \
6671
--predicate-type <predicate-uri> \
6772
--verify \
68-
<image-name>:<tag> --platform <platform>
73+
<image-name>:<tag>
6974
```
7075

76+
> [!NOTE]
77+
>
78+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
79+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
80+
7181
For example:
7282

7383
```console
7484
$ docker scout attest get \
7585
--predicate-type https://openvex.dev/ns/v0.2.0 \
7686
--verify \
77-
docs/dhi-python:3.13 --platform linux/amd64
87+
docs/dhi-python:3.13
7888
```
7989

80-
8190
If valid, Docker Scout will confirm the signature and display signature payload, as well as the equivalent Cosign command to verify the image.
8291

8392
### Sign images

content/manuals/dhi/core-concepts/vex.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ vulnerability management.
6060
When using Docker Scout, VEX statements are automatically applied and no
6161
manual configuration is needed.
6262

63+
> [!NOTE]
64+
>
65+
> By default, VEX attestations are fetched from `registry.scout.docker.com`. Ensure that you can access this registry if
66+
> your network has outbound restrictions. You can also mirror the attestations to an alternate registry. For more
67+
> details, see [Mirror a Docker Hardened Image
68+
> repository](../how-to/mirror.md#mirror-from-docker-hub-to-another-registry).
69+
6370
To manually retrieve the VEX attestation for tools that support it:
6471

6572
```console
@@ -70,6 +77,9 @@ $ docker scout vex get <your-namespace>/dhi-<image>:<tag> --output vex.json
7077
>
7178
> The `docker scout vex get` command requires [Docker Scout
7279
> CLI](https://github.com/docker/scout-cli/) version 1.18.3 or later.
80+
>
81+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
82+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
7383
7484
For example:
7585

content/manuals/dhi/how-to/scan.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,12 @@ runtime behavior.
211211
When using Docker Scout, these VEX statements are automatically applied and no
212212
manual configuration needed.
213213

214+
> [!NOTE]
215+
>
216+
> By default, VEX attestations are fetched from `registry.scout.docker.com`. Ensure that you can access this registry
217+
> if your network has outbound restrictions. You can also mirror the attestations to an alternate registry. For more
218+
> details, see [Mirror a Docker Hardened Image repository](mirror.md#mirror-from-docker-hub-to-another-registry).
219+
214220
To manually create a JSON file of VEX attestations for tools that support it:
215221

216222
```console
@@ -221,6 +227,9 @@ $ docker scout vex get <your-namespace>/dhi-<image>:<tag> --output vex.json
221227
>
222228
> The `docker scout vex get` command requires [Docker Scout
223229
> CLI](https://github.com/docker/scout-cli/) version 1.18.3 or later.
230+
>
231+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
232+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
224233

225234
For example:
226235

@@ -237,4 +246,4 @@ statements during the scan:
237246

238247
```console
239248
$ grype <your-namespace>/dhi-<image>:<tag> --vex vex.json
240-
```
249+
```

content/manuals/dhi/how-to/verify.md

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,20 @@ offers several key advantages when working with Docker Hardened Images:
5555
ensuring compatibility and simplifying verification for users within the
5656
Docker ecosystem.
5757

58-
In short, Docker Scout streamlines the verification process and reduces the chances of human error, while still giving you full visibility and the option to fall back to cosign when needed.
58+
In short, Docker Scout streamlines the verification process and reduces the chances of human error, while still giving
59+
you full visibility and the option to fall back to cosign when needed.
5960

6061
### List available attestations
6162

6263
To list attestations for a mirrored DHI:
6364

65+
> [!NOTE]
66+
>
67+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
68+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
69+
6470
```console
65-
$ docker scout attest list <your-org-namespace>/dhi-<image>:<tag> --platform <platform>
71+
$ docker scout attest list <your-org-namespace>/dhi-<image>:<tag>
6672
```
6773

6874
This command shows all available attestations, including SBOMs, provenance, vulnerability reports, and more.
@@ -73,34 +79,39 @@ To retrieve a specific attestation, use the `--predicate-type` flag with the ful
7379

7480
```console
7581
$ docker scout attest get \
76-
--predicate-type https://cyclonedx.org/bom/v1.5 \
77-
<your-org-namespace>/dhi-<image>:<tag> --platform <platform>
82+
--predicate-type https://cyclonedx.org/bom/v1.6 \
83+
<your-org-namespace>/dhi-<image>:<tag>
7884
```
7985

86+
> [!NOTE]
87+
>
88+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
89+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
90+
8091
For example:
8192

8293
```console
8394
$ docker scout attest get \
84-
--predicate-type https://cyclonedx.org/bom/v1.5 \
85-
docs/dhi-python:3.13 --platform linux/amd64
95+
--predicate-type https://cyclonedx.org/bom/v1.6 \
96+
docs/dhi-python:3.13
8697
```
8798

8899
To retrieve only the predicate body:
89100

90101
```console
91102
$ docker scout attest get \
92-
--predicate-type https://cyclonedx.org/bom/v1.5 \
103+
--predicate-type https://cyclonedx.org/bom/v1.6 \
93104
--predicate \
94-
<your-org-namespace>/dhi-<image>:<tag> --platform <platform>
105+
<your-org-namespace>/dhi-<image>:<tag>
95106
```
96107

97108
For example:
98109

99110
```console
100111
$ docker scout attest get \
101-
--predicate-type https://cyclonedx.org/bom/v1.5 \
112+
--predicate-type https://cyclonedx.org/bom/v1.6 \
102113
--predicate \
103-
docs/dhi-python:3.13 --platform linux/amd64
114+
docs/dhi-python:3.13
104115
```
105116

106117
### Validate the attestation with Docker Scout
@@ -112,6 +123,13 @@ $ docker scout attest get <image-name>:<tag> \
112123
--predicate-type https://scout.docker.com/sbom/v0.1 --verify
113124
```
114125

126+
> [!NOTE]
127+
>
128+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
129+
> `registry://docs/dhi-node:20.19-debian12-fips-20250701182639` instead of
130+
> `docs/dhi-node:20.19-debian12-fips-20250701182639`.
131+
132+
115133
For example, to verify the SBOM attestation for the `dhi/node:20.19-debian12-fips-20250701182639` image:
116134

117135
```console
@@ -143,14 +161,18 @@ To skip the transparency log check and validate against Docker's key, use the
143161
```console
144162
$ docker scout attest get \
145163
--predicate-type https://cyclonedx.org/bom/v1.6 \
146-
<your-org-namespace>/dhi-<image>:<tag> --platform <platform> \
164+
<your-org-namespace>/dhi-<image>:<tag> \
147165
--verify --skip-tlog
148166
```
149167

150168
> [!NOTE]
151169
>
152170
> The `--skip-tlog` flag is only available in Docker Scout CLI version 1.18.2 and
153171
> later.
172+
>
173+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
174+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
175+
154176

155177
This is equivalent to using `cosign` with the `--insecure-ignore-tlog=true`
156178
flag, which validates the signature against Docker's published public key, but
@@ -163,18 +185,23 @@ When using the `--verify` flag, it also prints the corresponding
163185

164186
```console
165187
$ docker scout attest get \
166-
--predicate-type https://cyclonedx.org/bom/v1.5 \
188+
--predicate-type https://cyclonedx.org/bom/v1.6 \
167189
--verify \
168-
<your-org-namespace>/dhi-<image>:<tag> --platform <platform>
190+
<your-org-namespace>/dhi-<image>:<tag>
169191
```
170192

193+
> [!NOTE]
194+
>
195+
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
196+
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
197+
171198
For example:
172199

173200
```console
174201
$ docker scout attest get \
175-
--predicate-type https://cyclonedx.org/bom/v1.5 \
202+
--predicate-type https://cyclonedx.org/bom/v1.6 \
176203
--verify \
177-
docs/dhi-python:3.13 --platform linux/amd64
204+
docs/dhi-python:3.13
178205
```
179206

180207
If verification succeeds, Docker Scout prints the full `cosign verify` command.

0 commit comments

Comments
 (0)