-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Proposal Secert Manager sub-task: Obtain startup-time sensitive information from the vault #10221
Comments
we have a PR for the orginal version #9930 cc @rodman10 thx you contribute and @monkeyDluffy6017 @leslie-tsang pls help me to review this desgin. |
Can the secret manager configuration here be used in the authentication plugin? |
From a design perspective, the configuration file discussed in the current proposal or the vault specified by the environment variable cannot be used to configure and store sensitive information of the plugin. It is only used to store sensitive information at startup. The main reason is that the vault referenced in the authentication plugin has a multi-instance concept. For example, vault1 and vault2 correspond to different vault backends. This in turn requires the configuration file to support the connection of multiple vault instances. |
This function will be useful in production, so does it has any progress? @Sn0rt |
@ssignik Sorry, I haven't had the time to work on this feature lately. |
Description
this proposal base on #9915, Adjust the field's design.
this part of #8319
Description
As we know the APISIX support 3 mode for starting: Traditional, Decoupled, Standalone. this proposal mainly for the Traditional mode and Decoupled mode .
Under this 2 mode the APISIX requires 2 core configurations when starting up
The original configuration method
The admin key and etcd password are configured in clear text, and the certificate is the path
Among them, in the plugin_attr of config-default, there is no special need to be stored in vault for the time being. If there is, add it later.
Add configuration items
An example is as follows:
The above configuration file is equivalent to the following environment variable configuration.
When the configuration file and environment variables are configured at the same time, the environment variables have higher priority
Scope definition of sensitive data required for startup
deployment section
The specific configuration items are as follows
Some parameters were lost in the previous proposal. For completeness, we need these parameters.
But it doesn't have to be implemented in one PR. I think
The above-mentioned sensitive information needs to be designed and implemented according to priority, and stored in the
vault
.Example of connecting to secret manager's vault backend through configuration file
APISIX section
APISIX itself also provides encryption of core data. APISIX uses symmetric encryption to encrypt some sensitive data and store it in ETCD.
more info : https://github.com/apache/apisix/pull/8487/files#diff-ffcc5f951f0adfe5baeabfcd28555c3c148d87a58d475c6e2239344426795ebf
There is a scenario: when the user expects to use symmetric encryption to encrypt and store sensitive data in etcd instead of storing it in the vault backend of secert manager.
But this encrypted key is expected to be stored in the secert manager's backend vault.
anyway. the APISIX section is with a lower priority.
discovery section
The
discovery
field in the configuration file is mainly used for service discovery and is not the core of APISIX. this is not a core field, so it has a lower priority.If any vault blank is obtained in the vault instance, the startup fails and an obvious error is given.
APISIX Standalone
If you use standalone mode to start APISIX, you cannot start the admin API. The configuration backend is also based on yaml.
There will be no sensitive information at startup.
The text was updated successfully, but these errors were encountered: