Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Telemetry] mTLS support for TracePipeline OTLP output #17995

Closed
a-thaler opened this issue Aug 17, 2023 · 1 comment
Closed

[Telemetry] mTLS support for TracePipeline OTLP output #17995

a-thaler opened this issue Aug 17, 2023 · 1 comment
Assignees
Labels
area/telemetry Issues or PRs related to the telemetry module kind/feature Categorizes issue or PR as related to a new feature.
Milestone

Comments

@a-thaler
Copy link
Contributor

a-thaler commented Aug 17, 2023

Description
A security best practice is to use mTLS to establish a secure connection a a remote party. Especially when integrating with 3party systems this is a common practice which should be supported by a TracePipeline.

The OTLP output of the TracePipeline supports TLS in general and a header based authentication. However, it does not provide functionality for mutual TLS yet. Also the typical settings for verifying the server-side certificate are missing.

An API to support this scenarios could look like this, which adds a general tls section introducing the missing settings for TLS and mTLS.

The related files should be provided by secrets where the secret attributes need to get mounted as files into the gateway pod.

apiVersion: telemetry.kyma-project.io/v1alpha1
kind: TracePipeline
metadata:
  name: example
spec:
  output:
    otlp:
      endpoint:
        value: https://xxx
      headers:
        ...
      authentication:
        basic:
          ...
      # TLS settings
      tls:
        # if TLS is used, the optional CA that verifies the server certificate
        ca:
          valueFrom:
            secretKeyRef:
              key: x
              name: y
              namespace: z
        # if TLS is used, wether to skip verifying the certificate or not
        insecureSkipVerify: false
        # mTLS is used, the TLS cert to use for TLS required connections
        cert:
          valueFrom:
            secretKeyRef:
              key: x
              name: y
              namespace: z
        # mTLS is used, the TLS key to use for TLS required connections
        key:
          valueFrom:
            secretKeyRef:
              key: x
              name: y
              namespace: z

Criterias:

  • Influencing the TLS Server-Side Certificate verification is possible by skipping it or providing a custom CA
  • Providing certificate and key for mTLS is possible
  • Needed Certs/keys can be provided by secret mappings
  • Rotation of certs/keys is possible dynamically
  • Documentation is updated
  • Integration test assures functionality

Reasons
It should be possible to follow security best practices using the functionality

Attachments
supported settings of the otlpexporter: https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configtls/README.md

@chrkl
Copy link
Member

chrkl commented Aug 25, 2023

mTLS for tracing has been implemented with kyma-project/telemetry-manager#347 and enabled for the telemetry component with #18035 and #18043. Support for logs and metrics will follow with separate PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/telemetry Issues or PRs related to the telemetry module kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

3 participants