cyberark / conjur-authn-k8s-client

Authentication sidecar for Conjur Kubernetes integration.
https://www.conjur.org
Apache License 2.0
11 stars 14 forks source link
conjbot-notify conjur core kubernetes sidecar

conjur-authn-k8s-client

Available images:

What's inside ?

The Conjur authenticator client is designed to have a light footprint both in terms of storage and memory consumption. It has very few components:

Configuration

The client is configured entirely through environment variables. These are listed below.

Using conjur-authn-k8s-client with Conjur Open Source

Are you using this project with Conjur Open Source? Then we strongly recommend choosing the version of this project to use from the latest Conjur OSS suite release. Conjur maintainers perform additional testing on the suite release versions to ensure compatibility. When possible, upgrade your Conjur version to match the latest suite release; when using integrations, choose the latest suite release that matches your Conjur version. For any questions, please contact us on Discourse.

Orchestrator

Conjur

Flow:

The client's process logs its flow to stdout and stderr.

  1. Client goes through login by presenting certificate signing request (CSR) -> Server (authn-k8s or authn-jwt running inside the Conjur Enterprise) injects signed client certificate out of band into requesting pod
  2. Client picks up signed client certificate, deletes it from disk and uses to authenticator via mutual TLS -> Server responds with auth token (retrieved via authn-local) encrypted with the public key of the client.
  3. Client decrypts the auth token and writes it to to the shared memory volume (/run/conjur/access-token)
  4. Client proceeds to authenticate time and time again

Running Authenticator Client with a Non-Default User ID in Kubernetes

By default, the Conjur Kubernetes authenticator client container runs using a default username authenticator, user ID 777, and group ID 777.

If you would like to run the authenticator client on a non-OpenShift Kubernetes platform, using a non-default user and/or group ID in a Pod that includes the authenticator client as a sidecar or init container, then you can configure your Pod manifest as follows:

NOTE: This technique is not supported on OpenShift platforms. For OpenShift platforms, the authenticator container should be run with the container's default user and group.

Contributing

We welcome contributions of all kinds to this repository. For instructions on how to get started and descriptions of our development workflows, please see our contributing guide.

Update postgresql chart for testing

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm pull bitnami/postgresql --version <version to update to>
cp postgresql-<version>.tgz vendor_helm/.

Update bin/test-workflow/6_app_deploy_backend.sh to reference the new file