Git Product home page Git Product logo

Comments (1)

nmanoogian avatar nmanoogian commented on May 18, 2024

Hi @NOBLES5E, thanks for bring this to our attention! You're right that the operator does allow users who can create DopplerSecret resources in any namespace to pull secrets from any token secret in the system. For example,

  • You have app1 and app2 namespaces
  • You install the Doppler operator, which adds the doppler-operator-system namespace
  • You create a token k8s secret containing your service token at doppler-operator-system/doppler-token-secret, as we recommend in our docs
  • You create a DopplerSecret at app1/doppler-secret-1 which references doppler-operator-system/doppler-token-secret and managed k8s secret app1/k8s-secret-1, the operator syncs the data to the managed secret
  • You create a DopplerSecret at app2/doppler-secret-2 which also references doppler-operator-system/doppler-token-secret, and you specify managed k8s secret app2/k8s-secret-2, the operator syncs the data to the managed secret

As a result, app2 was able to access doppler-operator-system/doppler-token-secret (and use the operator to fetch the underlying secrets) just by being able to create DopplerSecret CRDs -- even though it was created/owned by app1.

We initially intended that your clusters would be configured such that only privileged users can create DopplerSecret resources but I certainly see how it would be concerning and unintuitive to have resource creation as the gate for access to all Doppler-based secrets in your cluster.

I think a better approach here would be to require that the token k8s secret, DopplerSecret resource, and managed k8s secret must all exist in the same namespace. This will silo all data to each namespace. Does this solution sound like it would meet your requirements?

from kubernetes-operator.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.