@@ -41,9 +41,6 @@ Why another new security tool when there are many tools available already, like
41
41
42
42
A kubernetes cluster that supports running [ Falco] ( https://falco.org/docs/getting-started/ )
43
43
44
- ## Install
45
-
46
- Tarian integrates with Falco by subscribing Falco Alerts via [ gRPC API] ( https://falco.org/docs/grpc/ ) . Falco support running gRPC API with mandatory mutual TLS (mTLS). So, firstly we need to prepare the certificates.
47
44
48
45
### Prepare Namespaces
49
46
@@ -52,185 +49,16 @@ kubectl create namespace tarian-system
52
49
kubectl create namespace falco
53
50
```
54
51
55
- ### Prepare Certificate for mTLS
56
-
57
- #### With Cert Manager
58
-
59
- You can setup certificates manually and save those certs to secrets accessible from Falco and Tarian pods. For convenient, you can use Cert Manager to manage the certs.
60
-
61
- 1 . Install Cert Manager by following this guide https://cert-manager.io/docs/installation/
62
- 2 . Wait for cert manager pods to be ready
63
-
64
- ``` bash
65
- kubectl wait --for=condition=ready pods --all -n cert-manager --timeout=3m
66
- ```
67
-
68
- 3 . Setup certs
69
-
70
- ##### A. If you don't have an existing cluster issuer, you can create one using a self-signed issuer
71
-
72
- Save this to ` tarian-falco-certs.yaml ` , then run ` kubectl apply -f tarian-falco-certs.yaml ` .
73
-
74
- ``` yaml
75
- apiVersion : cert-manager.io/v1
76
- kind : ClusterIssuer
77
- metadata :
78
- name : selfsigned-issuer
79
- spec :
80
- selfSigned : {}
81
- ---
82
- apiVersion : cert-manager.io/v1
83
- kind : Certificate
84
- metadata :
85
- name : root-ca
86
- namespace : cert-manager
87
- spec :
88
- isCA : true
89
- commonName : root-ca
90
- secretName : root-secret
91
- privateKey :
92
- algorithm : ECDSA
93
- size : 256
94
- issuerRef :
95
- name : selfsigned-issuer
96
- kind : ClusterIssuer
97
- group : cert-manager.io
98
- ---
99
- apiVersion : cert-manager.io/v1
100
- kind : ClusterIssuer
101
- metadata :
102
- name : ca-issuer
103
- spec :
104
- ca :
105
- secretName : root-secret
106
- ---
107
- apiVersion : cert-manager.io/v1
108
- kind : Certificate
109
- metadata :
110
- name : falco-grpc-server
111
- namespace : falco
112
- spec :
113
- isCA : false
114
- commonName : falco-grpc
115
- dnsNames :
116
- - falco-grpc.falco.svc
117
- - falco-grpc
118
- secretName : falco-grpc-server-cert
119
- usages :
120
- - server auth
121
- privateKey :
122
- algorithm : ECDSA
123
- size : 256
124
- issuerRef :
125
- name : ca-issuer
126
- kind : ClusterIssuer
127
- group : cert-manager.io
128
- ---
129
- apiVersion : cert-manager.io/v1
130
- kind : Certificate
131
- metadata :
132
- name : falco-integration-cert
133
- namespace : tarian-system
134
- spec :
135
- isCA : false
136
- commonName : tarian-falco-integration
137
- dnsNames :
138
- - tarian-falco-integration
139
- usages :
140
- - client auth
141
- secretName : tarian-falco-integration
142
- privateKey :
143
- algorithm : ECDSA
144
- size : 256
145
- issuerRef :
146
- name : ca-issuer
147
- kind : ClusterIssuer
148
- group : cert-manager.io
149
- ` ` `
150
-
151
- ##### B. If you have an existing cluster issuer
152
-
153
- Save this to ` tarian-falco-certs.yaml`, then run `kubectl apply -f tarian-falco-certs.yaml`.
154
-
155
- ` ` ` yaml
156
- apiVersion: cert-manager.io/v1
157
- kind: Certificate
158
- metadata:
159
- name: falco-grpc-server
160
- namespace: falco
161
- spec:
162
- isCA: false
163
- commonName: falco-grpc
164
- dnsNames:
165
- - falco-grpc.falco.svc
166
- - falco-grpc
167
- secretName: falco-grpc-server-cert
168
- usages:
169
- - server auth
170
- privateKey:
171
- algorithm: ECDSA
172
- size: 256
173
- issuerRef:
174
- name: your-issuer # change this to yours
175
- kind: ClusterIssuer
176
- group: cert-manager.io
177
- ---
178
- apiVersion: cert-manager.io/v1
179
- kind: Certificate
180
- metadata:
181
- name: falco-integration-cert
182
- namespace: tarian-system
183
- spec:
184
- isCA: false
185
- commonName: tarian-falco-integration
186
- dnsNames:
187
- - tarian-falco-integration
188
- usages:
189
- - client auth
190
- secretName: tarian-falco-integration
191
- privateKey:
192
- algorithm: ECDSA
193
- size: 256
194
- issuerRef:
195
- name: your-issuer # change this to yours
196
- kind: ClusterIssuer
197
- group: cert-manager.io
198
- ` ` `
199
-
200
- # ### Setup certificates manually
201
-
202
- If you have other ways to setup the certificates, that would work too. You can create kubernetes secrets containing those certificates.
203
- The following steps expect that the secrets are named :
204
-
205
- - ` tarian-falco-integration` in namespace `tarian-system`
206
- - ` falco-grpc-server-cert` in namespace `falco`
207
-
208
- For mTLS to work, those certificates need to be signed by the same CA.
209
-
210
-
211
52
### Install Falco with custom rules from Tarian
212
53
213
54
Save this to ` falco-values.yaml `
214
55
215
56
``` yaml
216
- extraVolumes:
217
- - name: grpc-cert
218
- secret:
219
- secretName: falco-grpc-server-cert
220
- extraVolumeMounts:
221
- - name: grpc-cert
222
- mountPath: /etc/falco/grpc-cert
223
- falco:
224
- grpc:
225
- enabled: true
226
- unixSocketPath: ""
227
- threadiness: 1
228
- listenPort: 5060
229
- privateKey: /etc/falco/grpc-cert/tls.key
230
- certChain: /etc/falco/grpc-cert/tls.crt
231
- rootCerts: /etc/falco/grpc-cert/ca.crt
232
- grpcOutput:
233
- enabled: true
57
+ falcosidekick :
58
+ enabled : true
59
+ config :
60
+ webhook :
61
+ address : http://tarian-cluster-agent.tarian-system.svc:8088
234
62
` ` `
235
63
236
64
Then install Falco using Helm:
0 commit comments