Git Product home page Git Product logo

Comments (21)

cb-troydai avatar cb-troydai commented on May 28, 2024 2

Provide some context on the usage in my workplace:

  • We want our SPIFFE/SPIRE infrastructure to be the single solution for certificate issuing for all workloads, both control plane date flow and data plane flow.
  • It is very easy for us to distributed keys and trust bundle since we have spire-agent everywhere.
  • We also want to control the attestation aspect, which Istio's self sign cert do not provide.
  • Kubernetes secret is a big no-no. We do not want key materials to be persisted in any where.
  • File mount offers a rudimental solution. If we have to do it, we can make spire-agent write cert into a memory dir and rotate it periodically. But it does raise the concern of inconsistency during the cut over of rotation.

from istio.

EItanya avatar EItanya commented on May 28, 2024 2

One cent from me, istiod startup should not depend on spire, fetching cert from spire api during bootstrap is risky. Can bring more dependencies on deploying

I definitely understand where you're coming from here, however if a user has decided that SPIRE is the certificate source than I think that's acceptable. In fact istiod coming up despite missing its xDS CA may mislead users. The other option I could see is failing readiness checks, but I'm not sure how much use istiod is without the xDS server, and we can't start said server without the proper certs.

from istio.

cb-troydai avatar cb-troydai commented on May 28, 2024 2

Agree on the concern of introducing a dependency during startup. And I agree with @EItanya that the reliability on that dependency is what user should be concerned about. The current approach which rely on k8s secret or a mount file arguable will have same reliability concern. It just that failures like k8s fails to provide secret or a file missing are perceived as less likely to happen.

From security perspective, no workload should start if they're not able to attest their identity. For example, it would be hazardous if a malicious actor can start their own istiod without attestation to manipulate the mesh. The workload's cert managed on a separate loop from istiod CA mitigate the risk of man in the middle attack. However, a fake istiod still can do a lot of damage by setting malicious network configurations.

We do need to ensure a correct layering of the infrastructure systems. If SPIRE lays the foundation of workload attestation, it shouldn't depends on Istio.

from istio.

nmnellis avatar nmnellis commented on May 28, 2024 1

istio-csr has this problem today and mounts the certificates manually to get around it https://raw.githubusercontent.com/cert-manager/website/master/content/docs/tutorials/istio-csr/example/istio-config-getting-started.yaml

from istio.

bleggett avatar bleggett commented on May 28, 2024

+1 on having some abstraction here that makes it easier to detangle istio CA from the rest of istiod, since absolutely nothing about how that CA works should be istio-specific, and out of everything istiod does, it's the thing that should be the easiest to replace with another non-Istio impl.

Whether that's SDS or some other interop channel doesn't matter much to me. I think it makes sense to have something here that is less crude than volume mounts, as those are not always acceptable, especially if they contain secrets.

from istio.

jaellio avatar jaellio commented on May 28, 2024

+1 on reducing the complexity of istio ca and supporting a flexible attestation model for control plane certificates.

from istio.

hzxuzhonghu avatar hzxuzhonghu commented on May 28, 2024

The current file mounted cert usage is not quite convenient, Integrate with spire agent is reasonable.
One cent from me, istiod startup should not depend on spire, fetching cert from spire api during bootstrap is risky. Can bring more dependencies on deploying

from istio.

Related Issues (20)

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.