pulumi-vault 6.1.1__py3-none-any.whl → 6.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_vault/__init__.py +26 -0
- pulumi_vault/auth_backend.py +47 -0
- pulumi_vault/aws/auth_backend_client.py +247 -7
- pulumi_vault/aws/secret_backend_role.py +54 -0
- pulumi_vault/azure/auth_backend_config.py +133 -0
- pulumi_vault/azure/backend.py +203 -0
- pulumi_vault/database/secrets_mount.py +282 -0
- pulumi_vault/gcp/auth_backend.py +244 -0
- pulumi_vault/gcp/secret_backend.py +271 -3
- pulumi_vault/jwt/auth_backend_role.py +28 -35
- pulumi_vault/kubernetes/secret_backend.py +282 -0
- pulumi_vault/ldap/secret_backend.py +282 -0
- pulumi_vault/mount.py +324 -0
- pulumi_vault/okta/auth_backend.py +453 -0
- pulumi_vault/pkisecret/__init__.py +2 -0
- pulumi_vault/pkisecret/_inputs.py +30 -0
- pulumi_vault/pkisecret/backend_config_est.py +614 -0
- pulumi_vault/pkisecret/get_backend_config_est.py +233 -0
- pulumi_vault/pkisecret/outputs.py +54 -0
- pulumi_vault/plugin.py +590 -0
- pulumi_vault/plugin_pinned_version.py +293 -0
- pulumi_vault/pulumi-plugin.json +1 -1
- pulumi_vault/quota_lease_count.py +47 -0
- pulumi_vault/quota_rate_limit.py +47 -0
- pulumi_vault/ssh/secret_backend_ca.py +94 -0
- {pulumi_vault-6.1.1.dist-info → pulumi_vault-6.2.0.dist-info}/METADATA +1 -1
- {pulumi_vault-6.1.1.dist-info → pulumi_vault-6.2.0.dist-info}/RECORD +29 -25
- {pulumi_vault-6.1.1.dist-info → pulumi_vault-6.2.0.dist-info}/WHEEL +1 -1
- {pulumi_vault-6.1.1.dist-info → pulumi_vault-6.2.0.dist-info}/top_level.txt +0 -0
@@ -18,10 +18,14 @@ class SecretBackendArgs:
|
|
18
18
|
default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
19
19
|
description: Optional[pulumi.Input[str]] = None,
|
20
20
|
disable_remount: Optional[pulumi.Input[bool]] = None,
|
21
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
22
|
+
identity_token_key: Optional[pulumi.Input[str]] = None,
|
23
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
21
24
|
local: Optional[pulumi.Input[bool]] = None,
|
22
25
|
max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
23
26
|
namespace: Optional[pulumi.Input[str]] = None,
|
24
|
-
path: Optional[pulumi.Input[str]] = None
|
27
|
+
path: Optional[pulumi.Input[str]] = None,
|
28
|
+
service_account_email: Optional[pulumi.Input[str]] = None):
|
25
29
|
"""
|
26
30
|
The set of arguments for constructing a SecretBackend resource.
|
27
31
|
:param pulumi.Input[str] credentials: JSON-encoded credentials to use to connect to GCP
|
@@ -30,6 +34,12 @@ class SecretBackendArgs:
|
|
30
34
|
:param pulumi.Input[str] description: A human-friendly description for this backend.
|
31
35
|
:param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
|
32
36
|
See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
|
37
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
|
38
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
39
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
40
|
+
:param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
|
41
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
42
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
|
33
43
|
:param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
|
34
44
|
:param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
|
35
45
|
for credentials issued by this backend. Defaults to '0'.
|
@@ -39,6 +49,8 @@ class SecretBackendArgs:
|
|
39
49
|
*Available only for Vault Enterprise*.
|
40
50
|
:param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
|
41
51
|
not begin or end with a `/`. Defaults to `gcp`.
|
52
|
+
:param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
|
53
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
42
54
|
"""
|
43
55
|
if credentials is not None:
|
44
56
|
pulumi.set(__self__, "credentials", credentials)
|
@@ -48,6 +60,12 @@ class SecretBackendArgs:
|
|
48
60
|
pulumi.set(__self__, "description", description)
|
49
61
|
if disable_remount is not None:
|
50
62
|
pulumi.set(__self__, "disable_remount", disable_remount)
|
63
|
+
if identity_token_audience is not None:
|
64
|
+
pulumi.set(__self__, "identity_token_audience", identity_token_audience)
|
65
|
+
if identity_token_key is not None:
|
66
|
+
pulumi.set(__self__, "identity_token_key", identity_token_key)
|
67
|
+
if identity_token_ttl is not None:
|
68
|
+
pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
|
51
69
|
if local is not None:
|
52
70
|
pulumi.set(__self__, "local", local)
|
53
71
|
if max_lease_ttl_seconds is not None:
|
@@ -56,6 +74,8 @@ class SecretBackendArgs:
|
|
56
74
|
pulumi.set(__self__, "namespace", namespace)
|
57
75
|
if path is not None:
|
58
76
|
pulumi.set(__self__, "path", path)
|
77
|
+
if service_account_email is not None:
|
78
|
+
pulumi.set(__self__, "service_account_email", service_account_email)
|
59
79
|
|
60
80
|
@property
|
61
81
|
@pulumi.getter
|
@@ -107,6 +127,45 @@ class SecretBackendArgs:
|
|
107
127
|
def disable_remount(self, value: Optional[pulumi.Input[bool]]):
|
108
128
|
pulumi.set(self, "disable_remount", value)
|
109
129
|
|
130
|
+
@property
|
131
|
+
@pulumi.getter(name="identityTokenAudience")
|
132
|
+
def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
|
133
|
+
"""
|
134
|
+
The audience claim value for plugin identity
|
135
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
136
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
137
|
+
"""
|
138
|
+
return pulumi.get(self, "identity_token_audience")
|
139
|
+
|
140
|
+
@identity_token_audience.setter
|
141
|
+
def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
|
142
|
+
pulumi.set(self, "identity_token_audience", value)
|
143
|
+
|
144
|
+
@property
|
145
|
+
@pulumi.getter(name="identityTokenKey")
|
146
|
+
def identity_token_key(self) -> Optional[pulumi.Input[str]]:
|
147
|
+
"""
|
148
|
+
The key to use for signing plugin identity
|
149
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
150
|
+
"""
|
151
|
+
return pulumi.get(self, "identity_token_key")
|
152
|
+
|
153
|
+
@identity_token_key.setter
|
154
|
+
def identity_token_key(self, value: Optional[pulumi.Input[str]]):
|
155
|
+
pulumi.set(self, "identity_token_key", value)
|
156
|
+
|
157
|
+
@property
|
158
|
+
@pulumi.getter(name="identityTokenTtl")
|
159
|
+
def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
|
160
|
+
"""
|
161
|
+
The TTL of generated tokens.
|
162
|
+
"""
|
163
|
+
return pulumi.get(self, "identity_token_ttl")
|
164
|
+
|
165
|
+
@identity_token_ttl.setter
|
166
|
+
def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
|
167
|
+
pulumi.set(self, "identity_token_ttl", value)
|
168
|
+
|
110
169
|
@property
|
111
170
|
@pulumi.getter
|
112
171
|
def local(self) -> Optional[pulumi.Input[bool]]:
|
@@ -160,26 +219,51 @@ class SecretBackendArgs:
|
|
160
219
|
def path(self, value: Optional[pulumi.Input[str]]):
|
161
220
|
pulumi.set(self, "path", value)
|
162
221
|
|
222
|
+
@property
|
223
|
+
@pulumi.getter(name="serviceAccountEmail")
|
224
|
+
def service_account_email(self) -> Optional[pulumi.Input[str]]:
|
225
|
+
"""
|
226
|
+
Service Account to impersonate for plugin workload identity federation.
|
227
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
228
|
+
"""
|
229
|
+
return pulumi.get(self, "service_account_email")
|
230
|
+
|
231
|
+
@service_account_email.setter
|
232
|
+
def service_account_email(self, value: Optional[pulumi.Input[str]]):
|
233
|
+
pulumi.set(self, "service_account_email", value)
|
234
|
+
|
163
235
|
|
164
236
|
@pulumi.input_type
|
165
237
|
class _SecretBackendState:
|
166
238
|
def __init__(__self__, *,
|
239
|
+
accessor: Optional[pulumi.Input[str]] = None,
|
167
240
|
credentials: Optional[pulumi.Input[str]] = None,
|
168
241
|
default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
169
242
|
description: Optional[pulumi.Input[str]] = None,
|
170
243
|
disable_remount: Optional[pulumi.Input[bool]] = None,
|
244
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
245
|
+
identity_token_key: Optional[pulumi.Input[str]] = None,
|
246
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
171
247
|
local: Optional[pulumi.Input[bool]] = None,
|
172
248
|
max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
173
249
|
namespace: Optional[pulumi.Input[str]] = None,
|
174
|
-
path: Optional[pulumi.Input[str]] = None
|
250
|
+
path: Optional[pulumi.Input[str]] = None,
|
251
|
+
service_account_email: Optional[pulumi.Input[str]] = None):
|
175
252
|
"""
|
176
253
|
Input properties used for looking up and filtering SecretBackend resources.
|
254
|
+
:param pulumi.Input[str] accessor: The accessor of the created GCP mount.
|
177
255
|
:param pulumi.Input[str] credentials: JSON-encoded credentials to use to connect to GCP
|
178
256
|
:param pulumi.Input[int] default_lease_ttl_seconds: The default TTL for credentials
|
179
257
|
issued by this backend. Defaults to '0'.
|
180
258
|
:param pulumi.Input[str] description: A human-friendly description for this backend.
|
181
259
|
:param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
|
182
260
|
See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
|
261
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
|
262
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
263
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
264
|
+
:param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
|
265
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
266
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
|
183
267
|
:param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
|
184
268
|
:param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
|
185
269
|
for credentials issued by this backend. Defaults to '0'.
|
@@ -189,7 +273,11 @@ class _SecretBackendState:
|
|
189
273
|
*Available only for Vault Enterprise*.
|
190
274
|
:param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
|
191
275
|
not begin or end with a `/`. Defaults to `gcp`.
|
276
|
+
:param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
|
277
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
192
278
|
"""
|
279
|
+
if accessor is not None:
|
280
|
+
pulumi.set(__self__, "accessor", accessor)
|
193
281
|
if credentials is not None:
|
194
282
|
pulumi.set(__self__, "credentials", credentials)
|
195
283
|
if default_lease_ttl_seconds is not None:
|
@@ -198,6 +286,12 @@ class _SecretBackendState:
|
|
198
286
|
pulumi.set(__self__, "description", description)
|
199
287
|
if disable_remount is not None:
|
200
288
|
pulumi.set(__self__, "disable_remount", disable_remount)
|
289
|
+
if identity_token_audience is not None:
|
290
|
+
pulumi.set(__self__, "identity_token_audience", identity_token_audience)
|
291
|
+
if identity_token_key is not None:
|
292
|
+
pulumi.set(__self__, "identity_token_key", identity_token_key)
|
293
|
+
if identity_token_ttl is not None:
|
294
|
+
pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
|
201
295
|
if local is not None:
|
202
296
|
pulumi.set(__self__, "local", local)
|
203
297
|
if max_lease_ttl_seconds is not None:
|
@@ -206,6 +300,20 @@ class _SecretBackendState:
|
|
206
300
|
pulumi.set(__self__, "namespace", namespace)
|
207
301
|
if path is not None:
|
208
302
|
pulumi.set(__self__, "path", path)
|
303
|
+
if service_account_email is not None:
|
304
|
+
pulumi.set(__self__, "service_account_email", service_account_email)
|
305
|
+
|
306
|
+
@property
|
307
|
+
@pulumi.getter
|
308
|
+
def accessor(self) -> Optional[pulumi.Input[str]]:
|
309
|
+
"""
|
310
|
+
The accessor of the created GCP mount.
|
311
|
+
"""
|
312
|
+
return pulumi.get(self, "accessor")
|
313
|
+
|
314
|
+
@accessor.setter
|
315
|
+
def accessor(self, value: Optional[pulumi.Input[str]]):
|
316
|
+
pulumi.set(self, "accessor", value)
|
209
317
|
|
210
318
|
@property
|
211
319
|
@pulumi.getter
|
@@ -257,6 +365,45 @@ class _SecretBackendState:
|
|
257
365
|
def disable_remount(self, value: Optional[pulumi.Input[bool]]):
|
258
366
|
pulumi.set(self, "disable_remount", value)
|
259
367
|
|
368
|
+
@property
|
369
|
+
@pulumi.getter(name="identityTokenAudience")
|
370
|
+
def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
|
371
|
+
"""
|
372
|
+
The audience claim value for plugin identity
|
373
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
374
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
375
|
+
"""
|
376
|
+
return pulumi.get(self, "identity_token_audience")
|
377
|
+
|
378
|
+
@identity_token_audience.setter
|
379
|
+
def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
|
380
|
+
pulumi.set(self, "identity_token_audience", value)
|
381
|
+
|
382
|
+
@property
|
383
|
+
@pulumi.getter(name="identityTokenKey")
|
384
|
+
def identity_token_key(self) -> Optional[pulumi.Input[str]]:
|
385
|
+
"""
|
386
|
+
The key to use for signing plugin identity
|
387
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
388
|
+
"""
|
389
|
+
return pulumi.get(self, "identity_token_key")
|
390
|
+
|
391
|
+
@identity_token_key.setter
|
392
|
+
def identity_token_key(self, value: Optional[pulumi.Input[str]]):
|
393
|
+
pulumi.set(self, "identity_token_key", value)
|
394
|
+
|
395
|
+
@property
|
396
|
+
@pulumi.getter(name="identityTokenTtl")
|
397
|
+
def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
|
398
|
+
"""
|
399
|
+
The TTL of generated tokens.
|
400
|
+
"""
|
401
|
+
return pulumi.get(self, "identity_token_ttl")
|
402
|
+
|
403
|
+
@identity_token_ttl.setter
|
404
|
+
def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
|
405
|
+
pulumi.set(self, "identity_token_ttl", value)
|
406
|
+
|
260
407
|
@property
|
261
408
|
@pulumi.getter
|
262
409
|
def local(self) -> Optional[pulumi.Input[bool]]:
|
@@ -310,6 +457,19 @@ class _SecretBackendState:
|
|
310
457
|
def path(self, value: Optional[pulumi.Input[str]]):
|
311
458
|
pulumi.set(self, "path", value)
|
312
459
|
|
460
|
+
@property
|
461
|
+
@pulumi.getter(name="serviceAccountEmail")
|
462
|
+
def service_account_email(self) -> Optional[pulumi.Input[str]]:
|
463
|
+
"""
|
464
|
+
Service Account to impersonate for plugin workload identity federation.
|
465
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
466
|
+
"""
|
467
|
+
return pulumi.get(self, "service_account_email")
|
468
|
+
|
469
|
+
@service_account_email.setter
|
470
|
+
def service_account_email(self, value: Optional[pulumi.Input[str]]):
|
471
|
+
pulumi.set(self, "service_account_email", value)
|
472
|
+
|
313
473
|
|
314
474
|
class SecretBackend(pulumi.CustomResource):
|
315
475
|
@overload
|
@@ -320,14 +480,30 @@ class SecretBackend(pulumi.CustomResource):
|
|
320
480
|
default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
321
481
|
description: Optional[pulumi.Input[str]] = None,
|
322
482
|
disable_remount: Optional[pulumi.Input[bool]] = None,
|
483
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
484
|
+
identity_token_key: Optional[pulumi.Input[str]] = None,
|
485
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
323
486
|
local: Optional[pulumi.Input[bool]] = None,
|
324
487
|
max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
325
488
|
namespace: Optional[pulumi.Input[str]] = None,
|
326
489
|
path: Optional[pulumi.Input[str]] = None,
|
490
|
+
service_account_email: Optional[pulumi.Input[str]] = None,
|
327
491
|
__props__=None):
|
328
492
|
"""
|
329
493
|
## Example Usage
|
330
494
|
|
495
|
+
You can setup the GCP secret backend with Workload Identity Federation (WIF) for a secret-less configuration:
|
496
|
+
```python
|
497
|
+
import pulumi
|
498
|
+
import pulumi_vault as vault
|
499
|
+
|
500
|
+
gcp = vault.gcp.SecretBackend("gcp",
|
501
|
+
identity_token_key="example-key",
|
502
|
+
identity_token_ttl=1800,
|
503
|
+
identity_token_audience="<TOKEN_AUDIENCE>",
|
504
|
+
service_account_email="<SERVICE_ACCOUNT_EMAIL>")
|
505
|
+
```
|
506
|
+
|
331
507
|
```python
|
332
508
|
import pulumi
|
333
509
|
import pulumi_std as std
|
@@ -344,6 +520,12 @@ class SecretBackend(pulumi.CustomResource):
|
|
344
520
|
:param pulumi.Input[str] description: A human-friendly description for this backend.
|
345
521
|
:param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
|
346
522
|
See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
|
523
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
|
524
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
525
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
526
|
+
:param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
|
527
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
528
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
|
347
529
|
:param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
|
348
530
|
:param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
|
349
531
|
for credentials issued by this backend. Defaults to '0'.
|
@@ -353,6 +535,8 @@ class SecretBackend(pulumi.CustomResource):
|
|
353
535
|
*Available only for Vault Enterprise*.
|
354
536
|
:param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
|
355
537
|
not begin or end with a `/`. Defaults to `gcp`.
|
538
|
+
:param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
|
539
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
356
540
|
"""
|
357
541
|
...
|
358
542
|
@overload
|
@@ -363,6 +547,18 @@ class SecretBackend(pulumi.CustomResource):
|
|
363
547
|
"""
|
364
548
|
## Example Usage
|
365
549
|
|
550
|
+
You can setup the GCP secret backend with Workload Identity Federation (WIF) for a secret-less configuration:
|
551
|
+
```python
|
552
|
+
import pulumi
|
553
|
+
import pulumi_vault as vault
|
554
|
+
|
555
|
+
gcp = vault.gcp.SecretBackend("gcp",
|
556
|
+
identity_token_key="example-key",
|
557
|
+
identity_token_ttl=1800,
|
558
|
+
identity_token_audience="<TOKEN_AUDIENCE>",
|
559
|
+
service_account_email="<SERVICE_ACCOUNT_EMAIL>")
|
560
|
+
```
|
561
|
+
|
366
562
|
```python
|
367
563
|
import pulumi
|
368
564
|
import pulumi_std as std
|
@@ -390,10 +586,14 @@ class SecretBackend(pulumi.CustomResource):
|
|
390
586
|
default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
391
587
|
description: Optional[pulumi.Input[str]] = None,
|
392
588
|
disable_remount: Optional[pulumi.Input[bool]] = None,
|
589
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
590
|
+
identity_token_key: Optional[pulumi.Input[str]] = None,
|
591
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
393
592
|
local: Optional[pulumi.Input[bool]] = None,
|
394
593
|
max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
395
594
|
namespace: Optional[pulumi.Input[str]] = None,
|
396
595
|
path: Optional[pulumi.Input[str]] = None,
|
596
|
+
service_account_email: Optional[pulumi.Input[str]] = None,
|
397
597
|
__props__=None):
|
398
598
|
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
399
599
|
if not isinstance(opts, pulumi.ResourceOptions):
|
@@ -407,10 +607,15 @@ class SecretBackend(pulumi.CustomResource):
|
|
407
607
|
__props__.__dict__["default_lease_ttl_seconds"] = default_lease_ttl_seconds
|
408
608
|
__props__.__dict__["description"] = description
|
409
609
|
__props__.__dict__["disable_remount"] = disable_remount
|
610
|
+
__props__.__dict__["identity_token_audience"] = identity_token_audience
|
611
|
+
__props__.__dict__["identity_token_key"] = identity_token_key
|
612
|
+
__props__.__dict__["identity_token_ttl"] = identity_token_ttl
|
410
613
|
__props__.__dict__["local"] = local
|
411
614
|
__props__.__dict__["max_lease_ttl_seconds"] = max_lease_ttl_seconds
|
412
615
|
__props__.__dict__["namespace"] = namespace
|
413
616
|
__props__.__dict__["path"] = path
|
617
|
+
__props__.__dict__["service_account_email"] = service_account_email
|
618
|
+
__props__.__dict__["accessor"] = None
|
414
619
|
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["credentials"])
|
415
620
|
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
|
416
621
|
super(SecretBackend, __self__).__init__(
|
@@ -423,14 +628,19 @@ class SecretBackend(pulumi.CustomResource):
|
|
423
628
|
def get(resource_name: str,
|
424
629
|
id: pulumi.Input[str],
|
425
630
|
opts: Optional[pulumi.ResourceOptions] = None,
|
631
|
+
accessor: Optional[pulumi.Input[str]] = None,
|
426
632
|
credentials: Optional[pulumi.Input[str]] = None,
|
427
633
|
default_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
428
634
|
description: Optional[pulumi.Input[str]] = None,
|
429
635
|
disable_remount: Optional[pulumi.Input[bool]] = None,
|
636
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
637
|
+
identity_token_key: Optional[pulumi.Input[str]] = None,
|
638
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
430
639
|
local: Optional[pulumi.Input[bool]] = None,
|
431
640
|
max_lease_ttl_seconds: Optional[pulumi.Input[int]] = None,
|
432
641
|
namespace: Optional[pulumi.Input[str]] = None,
|
433
|
-
path: Optional[pulumi.Input[str]] = None
|
642
|
+
path: Optional[pulumi.Input[str]] = None,
|
643
|
+
service_account_email: Optional[pulumi.Input[str]] = None) -> 'SecretBackend':
|
434
644
|
"""
|
435
645
|
Get an existing SecretBackend resource's state with the given name, id, and optional extra
|
436
646
|
properties used to qualify the lookup.
|
@@ -438,12 +648,19 @@ class SecretBackend(pulumi.CustomResource):
|
|
438
648
|
:param str resource_name: The unique name of the resulting resource.
|
439
649
|
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
440
650
|
:param pulumi.ResourceOptions opts: Options for the resource.
|
651
|
+
:param pulumi.Input[str] accessor: The accessor of the created GCP mount.
|
441
652
|
:param pulumi.Input[str] credentials: JSON-encoded credentials to use to connect to GCP
|
442
653
|
:param pulumi.Input[int] default_lease_ttl_seconds: The default TTL for credentials
|
443
654
|
issued by this backend. Defaults to '0'.
|
444
655
|
:param pulumi.Input[str] description: A human-friendly description for this backend.
|
445
656
|
:param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
|
446
657
|
See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
|
658
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
|
659
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
660
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
661
|
+
:param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
|
662
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
663
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
|
447
664
|
:param pulumi.Input[bool] local: Boolean flag that can be explicitly set to true to enforce local mount in HA environment
|
448
665
|
:param pulumi.Input[int] max_lease_ttl_seconds: The maximum TTL that can be requested
|
449
666
|
for credentials issued by this backend. Defaults to '0'.
|
@@ -453,21 +670,36 @@ class SecretBackend(pulumi.CustomResource):
|
|
453
670
|
*Available only for Vault Enterprise*.
|
454
671
|
:param pulumi.Input[str] path: The unique path this backend should be mounted at. Must
|
455
672
|
not begin or end with a `/`. Defaults to `gcp`.
|
673
|
+
:param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
|
674
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
456
675
|
"""
|
457
676
|
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
458
677
|
|
459
678
|
__props__ = _SecretBackendState.__new__(_SecretBackendState)
|
460
679
|
|
680
|
+
__props__.__dict__["accessor"] = accessor
|
461
681
|
__props__.__dict__["credentials"] = credentials
|
462
682
|
__props__.__dict__["default_lease_ttl_seconds"] = default_lease_ttl_seconds
|
463
683
|
__props__.__dict__["description"] = description
|
464
684
|
__props__.__dict__["disable_remount"] = disable_remount
|
685
|
+
__props__.__dict__["identity_token_audience"] = identity_token_audience
|
686
|
+
__props__.__dict__["identity_token_key"] = identity_token_key
|
687
|
+
__props__.__dict__["identity_token_ttl"] = identity_token_ttl
|
465
688
|
__props__.__dict__["local"] = local
|
466
689
|
__props__.__dict__["max_lease_ttl_seconds"] = max_lease_ttl_seconds
|
467
690
|
__props__.__dict__["namespace"] = namespace
|
468
691
|
__props__.__dict__["path"] = path
|
692
|
+
__props__.__dict__["service_account_email"] = service_account_email
|
469
693
|
return SecretBackend(resource_name, opts=opts, __props__=__props__)
|
470
694
|
|
695
|
+
@property
|
696
|
+
@pulumi.getter
|
697
|
+
def accessor(self) -> pulumi.Output[str]:
|
698
|
+
"""
|
699
|
+
The accessor of the created GCP mount.
|
700
|
+
"""
|
701
|
+
return pulumi.get(self, "accessor")
|
702
|
+
|
471
703
|
@property
|
472
704
|
@pulumi.getter
|
473
705
|
def credentials(self) -> pulumi.Output[Optional[str]]:
|
@@ -502,6 +734,33 @@ class SecretBackend(pulumi.CustomResource):
|
|
502
734
|
"""
|
503
735
|
return pulumi.get(self, "disable_remount")
|
504
736
|
|
737
|
+
@property
|
738
|
+
@pulumi.getter(name="identityTokenAudience")
|
739
|
+
def identity_token_audience(self) -> pulumi.Output[Optional[str]]:
|
740
|
+
"""
|
741
|
+
The audience claim value for plugin identity
|
742
|
+
tokens. Must match an allowed audience configured for the target [Workload Identity Pool](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-providers#prepare).
|
743
|
+
Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
744
|
+
"""
|
745
|
+
return pulumi.get(self, "identity_token_audience")
|
746
|
+
|
747
|
+
@property
|
748
|
+
@pulumi.getter(name="identityTokenKey")
|
749
|
+
def identity_token_key(self) -> pulumi.Output[Optional[str]]:
|
750
|
+
"""
|
751
|
+
The key to use for signing plugin identity
|
752
|
+
tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
753
|
+
"""
|
754
|
+
return pulumi.get(self, "identity_token_key")
|
755
|
+
|
756
|
+
@property
|
757
|
+
@pulumi.getter(name="identityTokenTtl")
|
758
|
+
def identity_token_ttl(self) -> pulumi.Output[Optional[int]]:
|
759
|
+
"""
|
760
|
+
The TTL of generated tokens.
|
761
|
+
"""
|
762
|
+
return pulumi.get(self, "identity_token_ttl")
|
763
|
+
|
505
764
|
@property
|
506
765
|
@pulumi.getter
|
507
766
|
def local(self) -> pulumi.Output[Optional[bool]]:
|
@@ -539,3 +798,12 @@ class SecretBackend(pulumi.CustomResource):
|
|
539
798
|
"""
|
540
799
|
return pulumi.get(self, "path")
|
541
800
|
|
801
|
+
@property
|
802
|
+
@pulumi.getter(name="serviceAccountEmail")
|
803
|
+
def service_account_email(self) -> pulumi.Output[Optional[str]]:
|
804
|
+
"""
|
805
|
+
Service Account to impersonate for plugin workload identity federation.
|
806
|
+
Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
|
807
|
+
"""
|
808
|
+
return pulumi.get(self, "service_account_email")
|
809
|
+
|