Skip to content

Commit 05f93b1

Browse files
Merge pull request #239 from smallstep/Linda-Ikechukwu-patch-2
Update provisioners.mdx
2 parents 0b05934 + 7172839 commit 05f93b1

File tree

1 file changed

+29
-23
lines changed

1 file changed

+29
-23
lines changed

step-ca/provisioners.mdx

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -86,37 +86,41 @@ It's important to understand the capabilities and limitations when selecting a
8686
provisioner for a given workload.
8787

8888
## 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.
8998

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,
93102
as they need to modify the `$(step path)/config/ca.json` configuration file.
94103

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+
95108
<Alert severity="warning">
96109
<div>
97110
<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 <a href="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 <a href="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>
100115
</div>
101116
</Alert>
102117

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.
104119
The settings defined in the `claims` property of individual provisioners under an authority
105120
override the global defaults set for that authority.
106121
For a list of global options,
107122
see the `claims` object under the authority configuration block in the [configuration guide](./configuration/#example-configuration).
108123

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-
120124
### Common Provisioner Operations
121125

122126
Common provisioner operations include:
@@ -171,7 +175,7 @@ The example above modifies the minumum, maximum, and default durations for X.509
171175
However, the `update` command can be used to modify the lifetimes, extensions, and templates of both X.509 and SSH certificates.
172176

173177
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).
175179

176180
## Remote Provisioner Management
177181

@@ -181,7 +185,7 @@ When remote provisioner management is enabled,
181185
your provisioner configuration is stored in the database instead of in ca.json.
182186
You can manage the provisioner configuration by running [`step ca provisioner`](../step-cli/reference/ca/provisioner) commands,
183187
either locally or remotely.
184-
However, you must sign in as an Admin user.
188+
However, ***you must sign in as an Admin user***.
185189

186190
### Enable Remote Provisioner Management
187191

@@ -213,7 +217,8 @@ To enable remote provisioner management on an existing CA and migrate your `ca.j
213217
When `step-ca` starts up, it will:
214218

215219
* 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.
217222
* Create an initial Super Admin user, with username `step`, and link it to the administrative provisioner.
218223

219224
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
228233

229234
### Managing Admin Users
230235

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).
234240

235241
#### Create An Admin User
236242

0 commit comments

Comments
 (0)