Skip to content

Commit 03972d8

Browse files
pilorAzure Policy Bot
and
Azure Policy Bot
authoredOct 19, 2023
Kubernetes Examples Release ff326952 (#1224)
Co-authored-by: Azure Policy Bot <[email protected]>
1 parent be50853 commit 03972d8

File tree

4 files changed

+100
-24
lines changed

4 files changed

+100
-24
lines changed
 

‎samples/KubernetesService/image-integrity-notation-verification/examples/scenario-inline-cert/good/pass-example.yaml

+20-20
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ spec:
77
parameters:
88
value: |
99
-----BEGIN CERTIFICATE-----
10-
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
27+
Xw10iXXMZzSbQ0/Hj2BF4B40WfAkgRg=
2828
-----END CERTIFICATE-----
2929
---
3030
apiVersion: config.ratify.deislabs.io/v1beta1
@@ -39,7 +39,7 @@ kind: Verifier
3939
metadata:
4040
name: verifier-notary-inline
4141
spec:
42-
name: notaryv2
42+
name: notation
4343
artifactTypes: application/vnd.cncf.notary.signature
4444
parameters:
4545
verificationCertStores: # certificates for validating signatures
@@ -69,4 +69,4 @@ spec:
6969
kubernetes.io/os: linux
7070
containers:
7171
- name: image-singed
72-
image: wabbitnetworks.azurecr.io/test/notary-image:signed
72+
image: ghcr.io/deislabs/ratify/notary-image:signed

‎samples/KubernetesService/image-integrity-notation-verification/examples/scenario-inline-cert/violations/violation-examples.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ spec:
99
kubernetes.io/os: linux
1010
containers:
1111
- name: image-unsinged
12-
image: wabbitnetworks.azurecr.io/test/notary-image:unsigned
12+
image: ghcr.io/deislabs/ratify/notary-image:unsigned
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
apiVersion: config.ratify.deislabs.io/v1beta1
2+
kind: CertificateStore
3+
metadata:
4+
name: certstore-incorrect-cert
5+
spec:
6+
provider: inline
7+
parameters: # incorrect cert
8+
value: |
9+
-----BEGIN CERTIFICATE-----
10+
aW5jb3JyZWN0Cg==
11+
-----END CERTIFICATE-----
12+
---
13+
apiVersion: config.ratify.deislabs.io/v1beta1
14+
kind: Store
15+
metadata:
16+
name: store-oras-incorrect-cert
17+
spec:
18+
name: oras
19+
---
20+
apiVersion: config.ratify.deislabs.io/v1beta1
21+
kind: Verifier
22+
metadata:
23+
name: verifier-notary-inline-incorrect-cert
24+
spec:
25+
name: notation
26+
artifactTypes: application/vnd.cncf.notary.signature
27+
parameters:
28+
verificationCertStores: # certificates for validating signatures
29+
certs: # name of the trustStore
30+
- certstore-incorrect-cert # name of the certificate store CRD to include in this trustStore
31+
trustPolicyDoc: # policy language that indicates which identities are trusted to produce artifacts
32+
version: "1.0"
33+
trustPolicies:
34+
- name: default
35+
registryScopes:
36+
- "*"
37+
signatureVerification:
38+
level: strict
39+
trustStores:
40+
- ca:certs
41+
trustedIdentities:
42+
- "*"
43+
---
44+
apiVersion: v1
45+
kind: Pod
46+
metadata:
47+
name: pass-incorrect-cert
48+
labels:
49+
app: scenario-inline-cert
50+
spec:
51+
nodeSelector:
52+
kubernetes.io/os: linux
53+
containers:
54+
- name: image-singed
55+
image: ghcr.io/deislabs/ratify/notary-image:signed

‎samples/KubernetesService/image-integrity-notation-verification/template.yaml

+24-3
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,19 @@ spec:
5353
remote_data.system_error == ""
5454
subject_validation := remote_data.responses[_]
5555
verifierReport := subject_validation[1].verifierReports[_]
56+
# for ratify < v1.0.0-rc.7
5657
verifierReport.name == "notaryv2"
5758
not verifierReport.isSuccess
58-
result := sprintf("Subject %s failed notation verification, please check ratify verifier configuration. Error: %s", [verifierReport.subject, verifierReport.message])
59+
result := sprintf("Subject %s failed notation verification, please check ratify verifier configuration. Error: %s", [subject_validation[0], verifierReport.message])
60+
}
61+
general_violation[{"result": result}] {
62+
remote_data.system_error == ""
63+
subject_validation := remote_data.responses[_]
64+
verifierReport := subject_validation[1].verifierReports[_]
65+
# for ratify >= v1.0.0-rc.7
66+
verifierReport.name == "notation"
67+
not verifierReport.isSuccess
68+
result := sprintf("Subject %s failed notation verification, please check ratify verifier configuration. Error: %s", [subject_validation[0], verifierReport.message])
5969
}
6070
6171
# Check if the success criteria is true
@@ -66,7 +76,7 @@ spec:
6676
not verifierReport.name # oras error
6777
not verifierReport.isSuccess
6878
reword_msg := reword_oras_error_msg(verifierReport.message)
69-
result := sprintf("%s; Subject: %s; Error: %s", [reword_msg, verifierReport.subject, verifierReport.message])
79+
result := sprintf("%s; Subject: %s; Error: %s", [reword_msg, subject_validation[0], verifierReport.message])
7080
}
7181
7282
reword_oras_error_msg(message) = res {
@@ -107,7 +117,18 @@ spec:
107117
hasContainerStatus(c.name)
108118
containerStatus := input.review.object.status.containerStatuses[_]
109119
containerStatus.name == c.name
110-
digest := containerStatus.imageID
120+
digest_temp := containerStatus.imageID
121+
digest_temp != "" # imageID will be empty string if the container is imagePullBackOff
122+
digest := digest_temp
123+
}
124+
get_image_digest(c) = digest {
125+
not regex.match(DIGEST_REGEX, c.image)
126+
hasContainerStatus(c.name)
127+
containerStatus := input.review.object.status.containerStatuses[_]
128+
containerStatus.name == c.name
129+
digest_temp := containerStatus.imageID
130+
digest_temp == ""
131+
digest := c.image
111132
}
112133
get_image_digest(c) = digest {
113134
# fail to fetch digest

0 commit comments

Comments
 (0)
Please sign in to comment.