You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ad30827
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: charts/s3proxy/README.md.gotmpl
+36-1Lines changed: 36 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -236,6 +236,41 @@ persistence:
236
236
enabled: false
237
237
```
238
238
239
+
## Client authentication credentials
240
+
241
+
`config.auth.identity` / `config.auth.secret` are the S3 Access Key ID and Secret
242
+
Access Key that *clients* present to S3Proxy.
243
+
244
+
### Option A: existing Secret (recommended)
245
+
246
+
Point `config.auth.existingSecret` at a Secret you manage yourself, so the credentials
247
+
never appear in the values file (e.g. in GitOps). It takes precedence over inline
248
+
`identity`/`secret`; both credentials are read from it:
249
+
250
+
```yaml
251
+
config:
252
+
auth:
253
+
type: "aws-v4"
254
+
existingSecret: my-s3proxy-auth
255
+
identityKey: accessKeyId # default; key holding the Access Key ID
256
+
secretKey: secretAccessKey # default; key holding the Secret Access Key
257
+
```
258
+
259
+
```bash
260
+
kubectl create secret generic my-s3proxy-auth \
261
+
--from-literal=accessKeyId='myaccesskey' \
262
+
--from-literal=secretAccessKey='mysecretkey'
263
+
```
264
+
265
+
Rotating the Secret does not restart the pod — roll the Deployment yourself, since the
266
+
credentials are read once at startup.
267
+
268
+
### Option B: inline credentials
269
+
270
+
Set `config.auth.identity` / `config.auth.secret` directly, as in
271
+
[Example 1](#example-1-filesystem-backend-with-authentication). Convenient for
272
+
testing; both values are stored in plaintext in the chart's own Secret.
273
+
239
274
## Testing the Installation
240
275
241
276
Once deployed, you can test S3Proxy using the AWS CLI:
@@ -426,7 +461,7 @@ This will remove all resources created by the chart. If using persistence, the P
426
461
427
462
### Common Issues
428
463
429
-
1. **Authentication failures**: Ensure `config.auth.identity`and`config.auth.secret` are set correctly for client authentication.
464
+
1. **Authentication failures**: Ensure `config.auth.identity`and`config.auth.secret` are set correctly (or, with`config.auth.existingSecret`, that the Secret exists and its `identityKey`/`secretKey` entries are present) for client authentication.
430
465
431
466
2. **Backend connection issues**: Verify backend credentials are correctly configured in the appropriate section (e.g., `config.backend.awsS3.*`).
Copy file name to clipboardExpand all lines: charts/s3proxy/templates/NOTES.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -106,8 +106,8 @@
106
106
{{- if .Values.config.backends.filesystem.enabled }}
107
107
- Using filesystem backend at: {{ .Values.config.backends.filesystem.basedir }}
108
108
{{- end }}
109
-
{{- if not .Values.config.auth.identity }}
110
-
- WARNING: S3Proxy identity not configured. Remember to set config.auth.identity and config.auth.secret for authentication.
109
+
{{- if and (not .Values.config.auth.identity) (not .Values.config.auth.existingSecret) }}
110
+
- WARNING: S3Proxy identity not configured. Remember to set config.auth.identity and config.auth.secret (or config.auth.existingSecret) for authentication.
Copy file name to clipboardExpand all lines: charts/s3proxy/values.yaml
+8-2Lines changed: 8 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -122,10 +122,16 @@ config:
122
122
auth:
123
123
# -- Authorization type (none, aws-v2, aws-v4, aws-v2-or-v4)
124
124
type: "aws-v4"
125
-
# -- S3 Access Key ID for client authentication
125
+
# -- S3 Access Key ID for client authentication, stored in the chart-owned Secret. Ignored when `existingSecret` is set.
126
126
identity: ""
127
-
# -- S3 Secret Access Key for client authentication
127
+
# -- S3 Secret Access Key for client authentication, stored in the chart-owned Secret. Ignored when `existingSecret` is set.
128
128
secret: ""
129
+
# -- Name of an existing Secret holding both client authentication credentials (see `identityKey`/`secretKey`). Takes precedence over `identity`/`secret`, which are otherwise stored in plaintext in the chart-owned Secret; prefer this when the values file lives in Git.
130
+
existingSecret: ""
131
+
# -- Key within `existingSecret` that holds the S3 Access Key ID
132
+
identityKey: "accessKeyId"
133
+
# -- Key within `existingSecret` that holds the S3 Secret Access Key
134
+
secretKey: "secretAccessKey"
129
135
130
136
tls:
131
137
# -- Enable native in-pod HTTPS (S3Proxy `secure-endpoint`). When enabled, S3Proxy serves HTTPS only on `service.targetPort` (the plaintext endpoint is not bound), so TLS is terminated in the pod rather than at the ingress. Requires a PKCS12 (or JKS) keystore and its password. `tcpSocket` health probes are unaffected (they do not perform a TLS handshake).
0 commit comments