You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: step-ca/provisioners.mdx
+29-23Lines changed: 29 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,37 +86,41 @@ It's important to understand the capabilities and limitations when selecting a
86
86
provisioner for a given workload.
87
87
88
88
## Provisioner Management
89
+
By default, provisioner configurations reside in the `$(step path)/config/ca.json` file.
90
+
However, if Remote Provisioner Management is enabled,
91
+
provisioner configurations are stored in the database instead of `ca.json`,
92
+
while the global CA configuration remains in `ca.json`.
93
+
94
+
Remote Provisioner Management is ideal if you have multiple CA administrators,
95
+
[run several load-balanced](./certificate-authority-server-production.mdx#load-balancing-or-proxying-step-ca-traffic)`step-ca` instances,
96
+
or if you want to manage your provisioners remotely (eg. with Infrastructure as Code (IaC) tools; [see below](#unattended-remote-provisioner-management)).
97
+
See [Remote Provisioner Management](#remote-provisioner-management) for more info on tradeoofs and benefits.
89
98
90
-
To add, remove, or modify provisioner configurations,
91
-
use the [`step ca provisioner`](../step-cli/reference/ca/provisioner) command group.
92
-
You must run these commands directly on your CA machine,
99
+
The [`step ca provisioner`](../step-cli/reference/ca/provisioner) command group are used for provisioner management.
100
+
They can be used to add, remove, or modify provisioner configurations.
101
+
Note, you must run these commands directly on your CA machine,
93
102
as they need to modify the `$(step path)/config/ca.json` configuration file.
94
103
104
+
When you run any step ca provisioner command, it will try to detect where the provisioner configuration is stored.
105
+
It will either modify the `ca.json` file or it will update the database,
106
+
depending on whether you have enabled Remote Provisioner Management.
107
+
95
108
<Alertseverity="warning">
96
109
<div>
97
110
<p><b>May I edit <Code>ca.json</Code> directly?</b></p>
98
-
<p>You may edit your <Code>ca.json</Code> configuration file directly, but we strongly recommend using <ahref="https://smallstep.com/docs/step-cli/reference/ca/provisioner"><Code>step ca provisioner</Code></a> commands instead.
99
-
Fields in <Code>ca.json</Code> may be encoded differently than you expect.</p>
111
+
<p>You may edit your <Code>ca.json</Code> configuration file directly,
112
+
but we strongly recommend using <ahref="https://smallstep.com/docs/step-cli/reference/ca/provisioner"><Code>step ca provisioner</Code></a> commands instead.
113
+
Fields in <Code>ca.json</Code> may be encoded differently than you expect.
114
+
</p>
100
115
</div>
101
116
</Alert>
102
117
103
-
Within `ca.json` you can define an optional claims property for each provisioner.
118
+
Within `ca.json` you can define an optional `claims` property for each provisioner.
104
119
The settings defined in the `claims` property of individual provisioners under an authority
105
120
override the global defaults set for that authority.
106
121
For a list of global options,
107
122
see the `claims` object under the authority configuration block in the [configuration guide](./configuration/#example-configuration).
108
123
109
-
If you
110
-
have multiple CA administrators,
111
-
[run several load-balanced](./certificate-authority-server-production.mdx#load-balancing-or-proxying-step-ca-traffic)`step-ca` instances,
112
-
or if you want to manage your provisioners remotely (eg. with Infrastructure as Code (IaC) tools; [see below](#unattended-remote-provisioner-management)), you can enable the remote provisioner management API, which is disabled by default.
113
-
114
-
With remote provisioner management enabled,
115
-
provisioner configurations are stored in the database instead of `ca.json`,
116
-
while the global CA configuration remains in `ca.json`.
117
-
118
-
See [Remote Provisioner Management](#remote-provisioner-management) for more.
119
-
120
124
### Common Provisioner Operations
121
125
122
126
Common provisioner operations include:
@@ -171,7 +175,7 @@ The example above modifies the minumum, maximum, and default durations for X.509
171
175
However, the `update` command can be used to modify the lifetimes, extensions, and templates of both X.509 and SSH certificates.
172
176
173
177
Additionally, there are some provisioner-specific options,
174
-
which are covered by the documentation for each provisioner type[below](./provisioners/#provisioner-types).
178
+
which are covered by the [documentation for each provisioner type](./provisioners/#provisioner-types).
175
179
176
180
## Remote Provisioner Management
177
181
@@ -181,7 +185,7 @@ When remote provisioner management is enabled,
181
185
your provisioner configuration is stored in the database instead of in ca.json.
182
186
You can manage the provisioner configuration by running [`step ca provisioner`](../step-cli/reference/ca/provisioner) commands,
183
187
either locally or remotely.
184
-
However, you must sign in as an Admin user.
188
+
However, ***you must sign in as an Admin user***.
185
189
186
190
### Enable Remote Provisioner Management
187
191
@@ -213,7 +217,8 @@ To enable remote provisioner management on an existing CA and migrate your `ca.j
213
217
When `step-ca` starts up, it will:
214
218
215
219
* Migrate the provisioners from your `ca.json` to the database
216
-
* Repurpose the first JWK provisioner in your `ca.json` as an administrative provisioner. If no JWK provisioner exists, it will add a [JWK](#jwk) provisioner called Admin JWK to the database. You will be prompted for a password that will encrypt the new provisioner key.
220
+
* Repurpose the first JWK provisioner in your `ca.json` as an administrative provisioner.
221
+
If no JWK provisioner exists, it will add a [JWK](#jwk) provisioner called Admin JWK to the database. You will be prompted for a password that will encrypt the new provisioner key.
217
222
* Create an initial Super Admin user, with username `step`, and link it to the administrative provisioner.
218
223
219
224
4. Remove old provisioner configurations from `ca.json`.
@@ -228,9 +233,10 @@ To enable remote provisioner management on an existing CA and migrate your `ca.j
228
233
229
234
### Managing Admin Users
230
235
231
-
With remote provisioner management,
232
-
"Admins" can remotely manage provisioners.
233
-
"Super Admins" are Admins that can also manage the list of Admins for the CA using [`step ca admin`](../step-cli/reference/ca/admin).
236
+
With remote provisioner management, there are two categories of admin users: "Admins" and "Super Admins".
237
+
238
+
"Admins" can remotely manage provisioners.
239
+
Then, "Super Admins" are Admins that can also manage the list of Admins for the CA using [`step ca admin`](../step-cli/reference/ca/admin).
0 commit comments