Skip to content
This repository was archived by the owner on Mar 16, 2024. It is now read-only.

Commit c652eb0

Browse files
authored
add imageallowrules to require annotated image signatures (#502) (#1240)
Currently we only support signature rules that require an image to be signed by a specific set of keys and with a specific set of annotations Verifies Acorn images using `cosign` and if an image doesn't passt the verifications specified by a set of ImageAllowRules, then it won't be allowed to run For now, we only have project-level resources. Cross-Project Resources may be added later. For now, the rules do not affect running images apart from updating a status field. No rollbacks, etc. right now. Signed-off-by: Thorsten Klein <[email protected]>
1 parent a485a3e commit c652eb0

File tree

51 files changed

+2835
-111
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2835
-111
lines changed

go.mod

+117-32
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ replace (
77
github.com/docker/docker => github.com/docker/docker v20.10.3-0.20220121014307-40bb9831756f+incompatible
88
github.com/rancher/apiserver => github.com/acorn-io/apiserver-1 v0.0.0-20220608053213-0ffc3be57697
99
github.com/rancher/lasso => github.com/acorn-io/lasso v0.0.0-20220519152917-47b14aceb5cf
10-
go.etcd.io/etcd/server/v3 v3.5.4 => github.com/acorn-io/etcd/server/v3 v3.5.4-ot-1
11-
k8s.io/apiserver v0.25.2 => github.com/acorn-io/apiserver v0.25.2-ot-1
10+
go.etcd.io/etcd/client/pkg/v3 v3.6.0-alpha.0 => github.com/acorn-io/etcd/client/pkg/v3 v3.6.0-ot-1
11+
go.etcd.io/etcd/server/v3 v3.6.0-alpha.0 => github.com/acorn-io/etcd/server/v3 v3.6.0-ot-1
12+
k8s.io/apiserver v0.25.2 => github.com/acorn-io/apiserver v0.25.2-ot-2
1213
k8s.io/client-go => k8s.io/client-go v0.25.2
1314
k8s.io/component-base v0.25.2 => github.com/acorn-io/component-base v0.25.2-ot-1
1415
)
@@ -28,7 +29,7 @@ require (
2829
github.com/go-acme/lego/v4 v4.9.1
2930
github.com/golang/mock v1.6.0
3031
github.com/google/go-cmp v0.5.9
31-
github.com/google/go-containerregistry v0.12.1
32+
github.com/google/go-containerregistry v0.13.0
3233
github.com/google/go-containerregistry/pkg/authn/kubernetes v0.0.0-20221213180026-23d895d08035
3334
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
3435
github.com/google/uuid v1.3.0
@@ -42,15 +43,17 @@ require (
4243
github.com/pterm/pterm v0.12.49
4344
github.com/rancher/lasso v0.0.0-20220412224715-5f3517291ad4
4445
github.com/rancher/wrangler v1.0.1-0.20220520195731-8eeded9bae2a
46+
github.com/sigstore/cosign v1.13.1
47+
github.com/sigstore/sigstore v1.5.2
4548
github.com/sirupsen/logrus v1.9.0
4649
github.com/spf13/cobra v1.6.1
4750
github.com/spf13/pflag v1.0.5
4851
github.com/stretchr/testify v1.8.1
4952
github.com/tonistiigi/fsutil v0.0.0-20220315205639-9ed612626da3
50-
golang.org/x/crypto v0.2.0
53+
golang.org/x/crypto v0.6.0
5154
golang.org/x/exp v0.0.0-20221114191408-850992195362
5255
golang.org/x/sync v0.1.0
53-
google.golang.org/grpc v1.48.0
56+
google.golang.org/grpc v1.53.0
5457
gopkg.in/src-d/go-git.v4 v4.13.1
5558
inet.af/tcpproxy v0.0.0-20221017015627-91f861402626
5659
k8s.io/api v0.25.3
@@ -71,81 +74,127 @@ require (
7174
require (
7275
atomicgo.dev/cursor v0.1.1 // indirect
7376
atomicgo.dev/keyboard v0.2.8 // indirect
74-
cloud.google.com/go/compute v1.10.0 // indirect
77+
bitbucket.org/creachadair/shell v0.0.7 // indirect
78+
cloud.google.com/go/compute v1.18.0 // indirect
79+
cloud.google.com/go/compute/metadata v0.2.3 // indirect
7580
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
7681
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
77-
github.com/Azure/go-autorest/autorest v0.11.27 // indirect
78-
github.com/Azure/go-autorest/autorest/adal v0.9.20 // indirect
82+
github.com/Azure/go-autorest/autorest v0.11.28 // indirect
83+
github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect
7984
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
8085
github.com/Azure/go-autorest/logger v0.2.1 // indirect
8186
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
8287
github.com/Microsoft/go-winio v0.6.0 // indirect
8388
github.com/NYTimes/gziphandler v1.1.1 // indirect
89+
github.com/ThalesIgnite/crypto11 v1.2.5 // indirect
8490
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d // indirect
8591
github.com/agnivade/levenshtein v1.1.1 // indirect
92+
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
93+
github.com/benbjohnson/clock v1.1.0 // indirect
8694
github.com/beorn7/perks v1.0.1 // indirect
95+
github.com/bgentry/speakeasy v0.1.0 // indirect
96+
github.com/blang/semver v3.5.1+incompatible // indirect
8797
github.com/blang/semver/v4 v4.0.0 // indirect
8898
github.com/bmatcuk/doublestar v1.1.1 // indirect
8999
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
90-
github.com/cespare/xxhash/v2 v2.1.2 // indirect
100+
github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
101+
github.com/cespare/xxhash/v2 v2.2.0 // indirect
102+
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe // indirect
103+
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b // indirect
91104
github.com/cockroachdb/apd/v2 v2.0.2 // indirect
92105
github.com/containerd/continuity v0.3.0 // indirect
93106
github.com/containerd/stargz-snapshotter/estargz v0.12.1 // indirect
94107
github.com/containerd/typeurl v1.0.2 // indirect
95108
github.com/coreos/go-semver v0.3.0 // indirect
96109
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
97110
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
111+
github.com/cyberphone/json-canonicalization v0.0.0-20210823021906-dc406ceaf94b // indirect
98112
github.com/davecgh/go-spew v1.1.1 // indirect
99113
github.com/docker/distribution v2.8.1+incompatible // indirect
100114
github.com/docker/docker v20.10.21+incompatible // indirect
115+
github.com/dustin/go-humanize v1.0.0 // indirect
101116
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
102117
github.com/emicklei/proto v1.10.0 // indirect
103118
github.com/emirpasic/gods v1.12.0 // indirect
119+
github.com/envoyproxy/go-control-plane v0.10.3 // indirect
120+
github.com/envoyproxy/protoc-gen-validate v0.9.1 // indirect
104121
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
105-
github.com/felixge/httpsnoop v1.0.2 // indirect
122+
github.com/felixge/httpsnoop v1.0.3 // indirect
106123
github.com/fsnotify/fsnotify v1.5.4 // indirect
107124
github.com/fujiwara/shapeio v1.0.0 // indirect
125+
github.com/fullstorydev/grpcurl v1.8.7 // indirect
108126
github.com/ghodss/yaml v1.0.0 // indirect
127+
github.com/go-chi/chi v4.1.2+incompatible // indirect
109128
github.com/go-logr/logr v1.2.3 // indirect
110129
github.com/go-logr/stdr v1.2.2 // indirect
130+
github.com/go-openapi/analysis v0.21.4 // indirect
131+
github.com/go-openapi/errors v0.20.3 // indirect
111132
github.com/go-openapi/jsonpointer v0.19.5 // indirect
112133
github.com/go-openapi/jsonreference v0.20.0 // indirect
134+
github.com/go-openapi/loads v0.21.2 // indirect
135+
github.com/go-openapi/runtime v0.24.2 // indirect
136+
github.com/go-openapi/spec v0.20.7 // indirect
137+
github.com/go-openapi/strfmt v0.21.3 // indirect
113138
github.com/go-openapi/swag v0.22.3 // indirect
139+
github.com/go-openapi/validate v0.22.0 // indirect
140+
github.com/go-playground/locales v0.14.0 // indirect
141+
github.com/go-playground/universal-translator v0.18.0 // indirect
142+
github.com/go-playground/validator/v10 v10.11.0 // indirect
114143
github.com/gofrs/flock v0.8.1 // indirect
115144
github.com/gogo/googleapis v1.4.1 // indirect
116145
github.com/gogo/protobuf v1.3.2 // indirect
117-
github.com/golang-jwt/jwt/v4 v4.2.0 // indirect
146+
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
147+
github.com/golang-jwt/jwt/v4 v4.4.2 // indirect
118148
github.com/golang/glog v1.0.0 // indirect
119149
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
120150
github.com/golang/protobuf v1.5.2 // indirect
151+
github.com/golang/snappy v0.0.4 // indirect
152+
github.com/google/btree v1.1.2 // indirect
153+
github.com/google/certificate-transparency-go v1.1.3 // indirect
121154
github.com/google/gnostic v0.6.9 // indirect
155+
github.com/google/go-github/v45 v45.2.0 // indirect
156+
github.com/google/go-querystring v1.1.0 // indirect
122157
github.com/google/gofuzz v1.2.0 // indirect
158+
github.com/google/trillian v1.5.0 // indirect
123159
github.com/gookit/color v1.5.2 // indirect
124160
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
125161
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
126-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
162+
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
163+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect
164+
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
165+
github.com/hashicorp/go-retryablehttp v0.7.1 // indirect
166+
github.com/hashicorp/hcl v1.0.0 // indirect
127167
github.com/imdario/mergo v0.3.12 // indirect
168+
github.com/in-toto/in-toto-golang v0.3.4-0.20220709202702-fa494aaa0add // indirect
128169
github.com/inconshreveable/mousetrap v1.0.1 // indirect
129170
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
171+
github.com/jedisct1/go-minisign v0.0.0-20211028175153-1c139d1cc84b // indirect
130172
github.com/jessevdk/go-flags v1.4.0 // indirect
173+
github.com/jhump/protoreflect v1.13.0 // indirect
174+
github.com/jonboulle/clockwork v0.3.0 // indirect
131175
github.com/josharian/intern v1.0.0 // indirect
132176
github.com/json-iterator/go v1.1.12 // indirect
133177
github.com/k0kubun/go-ansi v0.0.0-20180517002512-3bf9e2903213 // indirect
134178
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
135179
github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd // indirect
136180
github.com/klauspost/compress v1.15.11 // indirect
181+
github.com/leodido/go-urn v1.2.1 // indirect
182+
github.com/letsencrypt/boulder v0.0.0-20221109233200-85aa52084eaf // indirect
137183
github.com/lithammer/fuzzysearch v1.1.5 // indirect
138184
github.com/loft-sh/loft-util v0.0.9-alpha // indirect
139185
github.com/loft-sh/notify v0.0.0-20210827094439-0720dcc7feee // indirect
186+
github.com/magiconair/properties v1.8.6 // indirect
140187
github.com/mailru/easyjson v0.7.7 // indirect
141-
github.com/mattn/go-colorable v0.1.11 // indirect
188+
github.com/mattn/go-colorable v0.1.13 // indirect
142189
github.com/mattn/go-isatty v0.0.16 // indirect
143190
github.com/mattn/go-runewidth v0.0.13 // indirect
144191
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
145192
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
146193
github.com/miekg/dns v1.1.50 // indirect
194+
github.com/miekg/pkcs11 v1.1.1 // indirect
147195
github.com/mitchellh/go-homedir v1.1.0 // indirect
148196
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
197+
github.com/mitchellh/mapstructure v1.5.0 // indirect
149198
github.com/moby/locker v1.0.1 // indirect
150199
github.com/moby/spdystream v0.2.0 // indirect
151200
github.com/moby/sys/signal v0.6.0 // indirect
@@ -155,28 +204,62 @@ require (
155204
github.com/morikuni/aec v1.0.0 // indirect
156205
github.com/mpvl/unique v0.0.0-20150818121801-cbe035fff7de // indirect
157206
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
207+
github.com/oklog/ulid v1.3.1 // indirect
158208
github.com/olekukonko/tablewriter v0.0.5 // indirect
209+
github.com/opentracing/opentracing-go v1.2.0 // indirect
159210
github.com/otiai10/copy v1.7.0 // indirect
211+
github.com/pelletier/go-toml v1.9.5 // indirect
212+
github.com/pelletier/go-toml/v2 v2.0.5 // indirect
160213
github.com/pmezard/go-difflib v1.0.0 // indirect
161-
github.com/prometheus/client_golang v1.12.1 // indirect
162-
github.com/prometheus/client_model v0.2.0 // indirect
163-
github.com/prometheus/common v0.32.1 // indirect
164-
github.com/prometheus/procfs v0.7.3 // indirect
214+
github.com/prometheus/client_golang v1.13.0 // indirect
215+
github.com/prometheus/client_model v0.3.0 // indirect
216+
github.com/prometheus/common v0.37.0 // indirect
217+
github.com/prometheus/procfs v0.8.0 // indirect
165218
github.com/protocolbuffers/txtpbfmt v0.0.0-20220428173112-74888fd59c2b // indirect
166219
github.com/rancher/lasso/controller-runtime v0.0.0-20220412224715-5f3517291ad4 // indirect
167220
github.com/rivo/uniseg v0.2.0 // indirect
168221
github.com/russross/blackfriday/v2 v2.1.0 // indirect
169222
github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 // indirect
223+
github.com/sassoftware/relic v0.0.0-20210427151427-dfb082b79b74 // indirect
224+
github.com/secure-systems-lab/go-securesystemslib v0.4.0 // indirect
170225
github.com/sergi/go-diff v1.2.0 // indirect
226+
github.com/shibumi/go-pathspec v1.3.0 // indirect
227+
github.com/sigstore/rekor v0.12.1-0.20220915152154-4bb6f441c1b2 // indirect
228+
github.com/soheilhy/cmux v0.1.5 // indirect
229+
github.com/spf13/afero v1.9.2 // indirect
230+
github.com/spf13/cast v1.5.0 // indirect
231+
github.com/spf13/jwalterweatherman v1.1.0 // indirect
232+
github.com/spf13/viper v1.13.0 // indirect
171233
github.com/src-d/gcfg v1.4.0 // indirect
234+
github.com/subosito/gotenv v1.4.1 // indirect
235+
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
236+
github.com/tent/canonical-json-go v0.0.0-20130607151641-96e4ba3a7613 // indirect
237+
github.com/thales-e-security/pool v0.0.2 // indirect
238+
github.com/theupdateframework/go-tuf v0.5.2-0.20220930112810-3890c1e7ace4 // indirect
239+
github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
240+
github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect
172241
github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea // indirect
173242
github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f // indirect
243+
github.com/transparency-dev/merkle v0.0.1 // indirect
244+
github.com/urfave/cli v1.22.7 // indirect
174245
github.com/vbatts/tar-split v0.11.2 // indirect
246+
github.com/xanzy/go-gitlab v0.73.1 // indirect
175247
github.com/xanzy/ssh-agent v0.2.1 // indirect
248+
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect
176249
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect
177-
go.etcd.io/etcd/api/v3 v3.5.4 // indirect
178-
go.etcd.io/etcd/client/pkg/v3 v3.5.4 // indirect
179-
go.etcd.io/etcd/client/v3 v3.5.4 // indirect
250+
go.etcd.io/bbolt v1.3.6 // indirect
251+
go.etcd.io/etcd/api/v3 v3.6.0-alpha.0 // indirect
252+
go.etcd.io/etcd/client/pkg/v3 v3.6.0-alpha.0 // indirect
253+
go.etcd.io/etcd/client/v2 v2.306.0-alpha.0 // indirect
254+
go.etcd.io/etcd/client/v3 v3.6.0-alpha.0 // indirect
255+
go.etcd.io/etcd/etcdctl/v3 v3.6.0-alpha.0 // indirect
256+
go.etcd.io/etcd/etcdutl/v3 v3.6.0-alpha.0 // indirect
257+
go.etcd.io/etcd/pkg/v3 v3.6.0-alpha.0 // indirect
258+
go.etcd.io/etcd/raft/v3 v3.6.0-alpha.0 // indirect
259+
go.etcd.io/etcd/server/v3 v3.6.0-alpha.0 // indirect
260+
go.etcd.io/etcd/tests/v3 v3.6.0-alpha.0 // indirect
261+
go.etcd.io/etcd/v3 v3.6.0-alpha.0 // indirect
262+
go.mongodb.org/mongo-driver v1.10.0 // indirect
180263
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0 // indirect
181264
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.32.0 // indirect
182265
go.opentelemetry.io/otel v1.7.0 // indirect
@@ -187,21 +270,23 @@ require (
187270
go.opentelemetry.io/otel/sdk v1.7.0 // indirect
188271
go.opentelemetry.io/otel/trace v1.7.0 // indirect
189272
go.opentelemetry.io/proto/otlp v0.16.0 // indirect
190-
go.uber.org/atomic v1.7.0 // indirect
191-
go.uber.org/multierr v1.6.0 // indirect
192-
go.uber.org/zap v1.19.1 // indirect
193-
golang.org/x/mod v0.6.0 // indirect
194-
golang.org/x/net v0.2.0 // indirect
195-
golang.org/x/oauth2 v0.1.0 // indirect
196-
golang.org/x/sys v0.2.0 // indirect
197-
golang.org/x/term v0.2.0 // indirect
198-
golang.org/x/text v0.4.0 // indirect
199-
golang.org/x/time v0.1.0 // indirect
200-
golang.org/x/tools v0.2.0 // indirect
273+
go.uber.org/atomic v1.10.0 // indirect
274+
go.uber.org/multierr v1.8.0 // indirect
275+
go.uber.org/zap v1.23.0 // indirect
276+
golang.org/x/mod v0.7.0 // indirect
277+
golang.org/x/net v0.7.0 // indirect
278+
golang.org/x/oauth2 v0.5.0 // indirect
279+
golang.org/x/sys v0.5.0 // indirect
280+
golang.org/x/term v0.5.0 // indirect
281+
golang.org/x/text v0.7.0 // indirect
282+
golang.org/x/time v0.2.0 // indirect
283+
golang.org/x/tools v0.3.0 // indirect
201284
google.golang.org/appengine v1.6.7 // indirect
202-
google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de // indirect
285+
google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc // indirect
203286
google.golang.org/protobuf v1.28.1 // indirect
287+
gopkg.in/cheggaaa/pb.v1 v1.0.28 // indirect
204288
gopkg.in/inf.v0 v0.9.1 // indirect
289+
gopkg.in/ini.v1 v1.67.0 // indirect
205290
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
206291
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
207292
gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect

0 commit comments

Comments
 (0)