Giter Club home page Giter Club logo

aws-signing-proxy's People

Contributors

andrew-d avatar bluegaspode avatar cllunsford avatar dependabot[bot] avatar hairyhenderson avatar macat avatar mariux avatar phiros avatar queeno avatar roechi avatar theurichde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aws-signing-proxy's Issues

Support Auth Method: Kubernetes

In some use-cases it might be very convenient to authenticate towards vault via a Kubernetes namespace.
Any Kubernetes Pod has access to an account JSON Web Token (JWT). The token is issued for a service account, if no service account is given, a default account will be created. Anyhow, the token can be found at a specific mount point:
/var/run/secrets/kubernetes.io/serviceaccount/token

The Vault Kubernetes Auth plugin allows it, to configure access for specific accounts and namespaces. We can leverage this, to exchange the Service Account JWT for a Vault Access Token. See: https://www.vaultproject.io/docs/auth/kubernetes

I guess this is obviously a great addition for the aws-signing-proxy Docker image but it might also be useful for the vault-env-cred-provider.

Static environment based AWS credentials not working

Hi,

i set in the docker container (v1.1.0) the env variables:
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_REGION
(and ASP_TARGET_URL )

but I get "No valid credentials provider given! Valid providers are: oidc, vault"

I would have expected that this would work only with these Environment Variables.

Thanks

Collect & Expose Usage Metrics via Prometheus

As ASP User
I want to have metrics about the ASP usage and timings
So that I can have a transparent overview of the ASP's request timings

  • Currently it is non-transparent to users how long several tasks take:

    • signing a request
    • fetching credentials via vault
    • fetching a JWT token via OIDC
    • fetching credentials via AssumeRoleWebIdentity
  • The idea is to collect those metrics and expose them in Prometheus format via a /status/metrics or /metrics endpoint

Missing Test Coverage

The ASP lacks a ton of tests and according test coverage.
We can't be sure that everything works as expected when a refactoring is done or a new feature is implemented.

  • At minimum, we should have an integration test to verify that incoming requests are signed properly, either with vault or oidc as credentials provider
  • Proper interfaces are used to mock AWS / Vault / OIDC interaction

File Logging

Current behaviour

  • The ASP logs to stdout which makes it difficult to collect the log messages and persist them in my log viewer of choice

Wanted behaviour

  • Write log messages to a specific file
    • have the target file configurable
    • (optional) in json format
  • (optional) support logging to stdout & file

[feature] If connection to the OIDC provider is gone use a backoff-policy instead restart

Is your feature request related to a problem? Please describe.
If the proxy doesn't can connect to the OIDC provider, the proxy fails and restart. This behavior leads to a lot of unspecific crash-loop alarms.

Describe the solution you'd like
If the connection doesn't work the proxy should retry it with a backoff policy. The failed connection should be logged and provided as a metric that can be collected by Prometheus.
This behavior prevents restarting and offers the possibility to stabilize the connection in between. And for the OIDC provider is it a better behavior than a "DDOS" of requests after the connection goes lost.

Additional context
It would be cool if the feature is implemented with a feature toggle, so the behavior is as before, and only if you like you could switch to the new behavior. And it would be great if the backoff interval could be configurable. Thanks. :-)

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.