The kube-rbac-proxy is a small HTTP proxy for a single upstream
that can perform RBAC authorization against the Kubernetes API using SubjectAccessReview.
Usage:
kube-rbac-proxy [flags]
Kube-rbac-proxy flags:
--allow-paths strings Comma-separated list of paths against which kube-rbac-proxy pattern-matches the incoming request. If the request doesn't match, kube-rbac-proxy responds with a 404 status code. If omitted, the incoming request path isn't checked. Cannot be used with --ignore-paths.
--auth-header-fields-enabled When set to true, kube-rbac-proxy adds auth-related fields to the headers of http requests sent to the upstream
--auth-header-groups-field-name string The name of the field inside a http(2) request header to tell the upstream server about the user's groups (default "x-remote-groups")
--auth-header-groups-field-separator string The separator string used for concatenating multiple group names in a groups header field's value (default "|")
--auth-header-user-field-name string The name of the field inside a http(2) request header to tell the upstream server about the user's name (default "x-remote-user")
--auth-token-audiences strings Comma-separated list of token audiences to accept. By default a token does not have to have any specific audience. It is recommended to set a specific audience.
--client-ca-file string If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate.
--config-file string Configuration file to configure kube-rbac-proxy.
--http2-disable Disable HTTP/2 support
--http2-max-concurrent-streams uint32 The maximum number of concurrent streams per HTTP/2 connection. (default 100)
--http2-max-size uint32 The maximum number of bytes that the server will accept for frame size and buffer per stream in a HTTP/2 request. (default 262144)
--ignore-paths strings Comma-separated list of paths against which kube-rbac-proxy pattern-matches the incoming request. If the requst matches, it will proxy the request without performing an authentication or authorization check. Cannot be used with --allow-paths.
--insecure-listen-address string [DEPRECATED] The address the kube-rbac-proxy HTTP server should listen on.
--kube-api-burst int kube-api burst value; needed when kube-api-qps is set
--kube-api-qps float32 queries per second to the api, kube-client starts client-side throttling, when breached
--kubeconfig string Path to a kubeconfig file, specifying how to connect to the API server. If unset, in-cluster configuration will be used
--oidc-ca-file string If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used.
--oidc-clientID string The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set.
--oidc-groups-claim string Identifier of groups in JWT claim, by default set to 'groups' (default "groups")
--oidc-groups-prefix string If provided, all groups will be prefixed with this value to prevent conflicts with other authentication strategies.
--oidc-issuer string The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT).
--oidc-sign-alg stringArray Supported signing algorithms, default RS256 (default [RS256])
--oidc-username-claim string Identifier of the user in JWT claim, by default set to 'email' (default "email")
--oidc-username-prefix string If provided, the username will be prefixed with this value to prevent conflicts with other authentication strategies.
--proxy-endpoints-port int The port to securely serve proxy-specific endpoints (such as '/healthz'). Uses the host from the '--secure-listen-address'.
--secure-listen-address string The address the kube-rbac-proxy HTTPs server should listen on.
--tls-cert-file string File containing the default x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert)
--tls-cipher-suites strings Comma-separated list of cipher suites for the server. Values are from tls package constants (https://golang.org/pkg/crypto/tls/#pkg-constants). If omitted, the default Go cipher suites will be used
--tls-curve-preferences int32Slice Comma-separated list of numeric Go crypto/tls CurveID values, as the allowed key exchange mechanisms for the server. The supported values depend on the Go version used. See https://pkg.go.dev/crypto/tls#CurveID for values supported for each Go version. The order of the list is ignored, and key exchange mechanisms are chosen by Go from this list using an internal preference order. If omitted, the default Go curves will be used. (default [])
--tls-min-version string Minimum TLS version supported. Value must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants. (default "VersionTLS12")
--tls-private-key-file string File containing the default x509 private key matching --tls-cert-file.
--tls-reload-interval duration [DEPRECATED] The interval at which to watch for TLS certificate changes, by default set to 1 minute. (default 1m0s)
--upstream string The upstream URL to proxy to once requests have successfully been authenticated and authorized.
--upstream-ca-file string The CA the upstream uses for TLS connection. This is required when the upstream uses TLS and its own CA certificate
--upstream-client-cert-file string If set, the client will be used to authenticate the proxy to upstream. Requires --upstream-client-key-file to be set, too.
--upstream-client-key-file string The key matching the certificate from --upstream-client-cert-file. If set, requires --upstream-client-cert-file to be set, too.
--upstream-force-h2c Force h2c to communiate with the upstream. This is required when the upstream speaks h2c(http/2 cleartext - insecure variant of http/2) only. For example, go-grpc server in the insecure mode, such as helm's tiller w/o TLS, speaks h2c only
Global flags:
-h, --help help for kube-rbac-proxy
--version version[=true] --version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
Options (39)
| Option | Description | Source |
|---|---|---|
--allow-paths strings | Comma-separated list of paths against which kube-rbac-proxy pattern-matches the incoming request. | help |
--auth-header-fields-enabled | When set to true, kube-rbac-proxy adds auth-related fields to the headers of http requests sent to the upstream | help |
--auth-header-groups-field-name string | The name of the field inside a http(2) request header to tell the upstream server about the user's groups (default "x-remote-groups") | help |
--auth-header-groups-field-separator string | The separator string used for concatenating multiple group names in a groups header field's value (default "|") | help |
--auth-header-user-field-name string | The name of the field inside a http(2) request header to tell the upstream server about the user's name (default "x-remote-user") | help |
--auth-token-audiences strings | Comma-separated list of token audiences to accept. | help |
--client-ca-file string | If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. | help |
--config-file string | Configuration file to configure kube-rbac-proxy. | help |
--http2-disable | Disable HTTP/2 support | help |
--http2-max-concurrent-streams uint32 | The maximum number of concurrent streams per HTTP/2 connection. | help |
--http2-max-size uint32 | The maximum number of bytes that the server will accept for frame size and buffer per stream in a HTTP/2 request. | help |
--ignore-paths strings | Comma-separated list of paths against which kube-rbac-proxy pattern-matches the incoming request. | help |
--insecure-listen-address string | [DEPRECATED] The address the kube-rbac-proxy HTTP server should listen on. | help |
--kube-api-burst int | kube-api burst value; | help |
--kube-api-qps float32 | queries per second to the api, kube-client starts client-side throttling, when breached | help |
--kubeconfig string | Path to a kubeconfig file, specifying how to connect to the API server. | help |
--oidc-ca-file string | If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. | help |
--oidc-clientID string | The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. | help |
--oidc-groups-claim string | Identifier of groups in JWT claim, by default set to 'groups' (default "groups") | help |
--oidc-groups-prefix string | If provided, all groups will be prefixed with this value to prevent conflicts with other authentication strategies. | help |
--oidc-issuer string | The URL of the OpenID issuer, only HTTPS scheme will be accepted. | help |
--oidc-sign-alg stringArray | Supported signing algorithms, default RS256 (default [RS256]) | help |
--oidc-username-claim string | Identifier of the user in JWT claim, by default set to 'email' (default "email") | help |
--oidc-username-prefix string | If provided, the username will be prefixed with this value to prevent conflicts with other authentication strategies. | help |
--proxy-endpoints-port int | The port to securely serve proxy-specific endpoints (such as '/healthz'). | help |
--secure-listen-address string | The address the kube-rbac-proxy HTTPs server should listen on. | help |
--tls-cert-file string | File containing the default x509 Certificate for HTTPS. | help |
--tls-cipher-suites strings | Comma-separated list of cipher suites for the server. | help |
--tls-curve-preferences int32Slice | Comma-separated list of numeric Go crypto/tls CurveID values, as the allowed key exchange mechanisms for the server. | help |
--tls-min-version string | Minimum TLS version supported. | help |
--tls-private-key-file string | File containing the default x509 private key matching --tls-cert-file. | help |
--tls-reload-interval duration | [DEPRECATED] The interval at which to watch for TLS certificate changes, by default set to 1 minute. | help |
--upstream string | The upstream URL to proxy to once requests have successfully been authenticated and authorized. | help |
--upstream-ca-file string | The CA the upstream uses for TLS connection. | help |
--upstream-client-cert-file string | If set, the client will be used to authenticate the proxy to upstream. | help |
--upstream-client-key-file string | The key matching the certificate from --upstream-client-cert-file. | help |
--upstream-force-h2c | Force h2c to communiate with the upstream. | help |
-h, --help | help for kube-rbac-proxy | help |
--version version[=true | --version, --version=raw prints version information and quits; | help |