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,6 +18,7 @@ class SecretBackendRoleArgs:
|
|
18
18
|
credential_type: pulumi.Input[str],
|
19
19
|
default_sts_ttl: Optional[pulumi.Input[int]] = None,
|
20
20
|
iam_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
21
|
+
iam_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
21
22
|
max_sts_ttl: Optional[pulumi.Input[int]] = None,
|
22
23
|
name: Optional[pulumi.Input[str]] = None,
|
23
24
|
namespace: Optional[pulumi.Input[str]] = None,
|
@@ -44,6 +45,8 @@ class SecretBackendRoleArgs:
|
|
44
45
|
corresponding AWS call (sts:AssumeRole or sts:GetFederation) will be the
|
45
46
|
policies from each group in `iam_groups` combined with the `policy_document`
|
46
47
|
and `policy_arns` parameters.
|
48
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] iam_tags: A map of strings representing key/value pairs
|
49
|
+
to be used as tags for any IAM user that is created by this role.
|
47
50
|
:param pulumi.Input[int] max_sts_ttl: The max allowed TTL in seconds for STS credentials
|
48
51
|
(credentials TTL are capped to `max_sts_ttl`). Valid only when `credential_type` is
|
49
52
|
one of `assumed_role` or `federation_token`.
|
@@ -81,6 +84,8 @@ class SecretBackendRoleArgs:
|
|
81
84
|
pulumi.set(__self__, "default_sts_ttl", default_sts_ttl)
|
82
85
|
if iam_groups is not None:
|
83
86
|
pulumi.set(__self__, "iam_groups", iam_groups)
|
87
|
+
if iam_tags is not None:
|
88
|
+
pulumi.set(__self__, "iam_tags", iam_tags)
|
84
89
|
if max_sts_ttl is not None:
|
85
90
|
pulumi.set(__self__, "max_sts_ttl", max_sts_ttl)
|
86
91
|
if name is not None:
|
@@ -158,6 +163,19 @@ class SecretBackendRoleArgs:
|
|
158
163
|
def iam_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
159
164
|
pulumi.set(self, "iam_groups", value)
|
160
165
|
|
166
|
+
@property
|
167
|
+
@pulumi.getter(name="iamTags")
|
168
|
+
def iam_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
169
|
+
"""
|
170
|
+
A map of strings representing key/value pairs
|
171
|
+
to be used as tags for any IAM user that is created by this role.
|
172
|
+
"""
|
173
|
+
return pulumi.get(self, "iam_tags")
|
174
|
+
|
175
|
+
@iam_tags.setter
|
176
|
+
def iam_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
177
|
+
pulumi.set(self, "iam_tags", value)
|
178
|
+
|
161
179
|
@property
|
162
180
|
@pulumi.getter(name="maxStsTtl")
|
163
181
|
def max_sts_ttl(self) -> Optional[pulumi.Input[int]]:
|
@@ -284,6 +302,7 @@ class _SecretBackendRoleState:
|
|
284
302
|
credential_type: Optional[pulumi.Input[str]] = None,
|
285
303
|
default_sts_ttl: Optional[pulumi.Input[int]] = None,
|
286
304
|
iam_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
305
|
+
iam_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
287
306
|
max_sts_ttl: Optional[pulumi.Input[int]] = None,
|
288
307
|
name: Optional[pulumi.Input[str]] = None,
|
289
308
|
namespace: Optional[pulumi.Input[str]] = None,
|
@@ -310,6 +329,8 @@ class _SecretBackendRoleState:
|
|
310
329
|
corresponding AWS call (sts:AssumeRole or sts:GetFederation) will be the
|
311
330
|
policies from each group in `iam_groups` combined with the `policy_document`
|
312
331
|
and `policy_arns` parameters.
|
332
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] iam_tags: A map of strings representing key/value pairs
|
333
|
+
to be used as tags for any IAM user that is created by this role.
|
313
334
|
:param pulumi.Input[int] max_sts_ttl: The max allowed TTL in seconds for STS credentials
|
314
335
|
(credentials TTL are capped to `max_sts_ttl`). Valid only when `credential_type` is
|
315
336
|
one of `assumed_role` or `federation_token`.
|
@@ -349,6 +370,8 @@ class _SecretBackendRoleState:
|
|
349
370
|
pulumi.set(__self__, "default_sts_ttl", default_sts_ttl)
|
350
371
|
if iam_groups is not None:
|
351
372
|
pulumi.set(__self__, "iam_groups", iam_groups)
|
373
|
+
if iam_tags is not None:
|
374
|
+
pulumi.set(__self__, "iam_tags", iam_tags)
|
352
375
|
if max_sts_ttl is not None:
|
353
376
|
pulumi.set(__self__, "max_sts_ttl", max_sts_ttl)
|
354
377
|
if name is not None:
|
@@ -426,6 +449,19 @@ class _SecretBackendRoleState:
|
|
426
449
|
def iam_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
427
450
|
pulumi.set(self, "iam_groups", value)
|
428
451
|
|
452
|
+
@property
|
453
|
+
@pulumi.getter(name="iamTags")
|
454
|
+
def iam_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
|
455
|
+
"""
|
456
|
+
A map of strings representing key/value pairs
|
457
|
+
to be used as tags for any IAM user that is created by this role.
|
458
|
+
"""
|
459
|
+
return pulumi.get(self, "iam_tags")
|
460
|
+
|
461
|
+
@iam_tags.setter
|
462
|
+
def iam_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
|
463
|
+
pulumi.set(self, "iam_tags", value)
|
464
|
+
|
429
465
|
@property
|
430
466
|
@pulumi.getter(name="maxStsTtl")
|
431
467
|
def max_sts_ttl(self) -> Optional[pulumi.Input[int]]:
|
@@ -554,6 +590,7 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
554
590
|
credential_type: Optional[pulumi.Input[str]] = None,
|
555
591
|
default_sts_ttl: Optional[pulumi.Input[int]] = None,
|
556
592
|
iam_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
593
|
+
iam_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
557
594
|
max_sts_ttl: Optional[pulumi.Input[int]] = None,
|
558
595
|
name: Optional[pulumi.Input[str]] = None,
|
559
596
|
namespace: Optional[pulumi.Input[str]] = None,
|
@@ -616,6 +653,8 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
616
653
|
corresponding AWS call (sts:AssumeRole or sts:GetFederation) will be the
|
617
654
|
policies from each group in `iam_groups` combined with the `policy_document`
|
618
655
|
and `policy_arns` parameters.
|
656
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] iam_tags: A map of strings representing key/value pairs
|
657
|
+
to be used as tags for any IAM user that is created by this role.
|
619
658
|
:param pulumi.Input[int] max_sts_ttl: The max allowed TTL in seconds for STS credentials
|
620
659
|
(credentials TTL are capped to `max_sts_ttl`). Valid only when `credential_type` is
|
621
660
|
one of `assumed_role` or `federation_token`.
|
@@ -707,6 +746,7 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
707
746
|
credential_type: Optional[pulumi.Input[str]] = None,
|
708
747
|
default_sts_ttl: Optional[pulumi.Input[int]] = None,
|
709
748
|
iam_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
749
|
+
iam_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
710
750
|
max_sts_ttl: Optional[pulumi.Input[int]] = None,
|
711
751
|
name: Optional[pulumi.Input[str]] = None,
|
712
752
|
namespace: Optional[pulumi.Input[str]] = None,
|
@@ -732,6 +772,7 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
732
772
|
__props__.__dict__["credential_type"] = credential_type
|
733
773
|
__props__.__dict__["default_sts_ttl"] = default_sts_ttl
|
734
774
|
__props__.__dict__["iam_groups"] = iam_groups
|
775
|
+
__props__.__dict__["iam_tags"] = iam_tags
|
735
776
|
__props__.__dict__["max_sts_ttl"] = max_sts_ttl
|
736
777
|
__props__.__dict__["name"] = name
|
737
778
|
__props__.__dict__["namespace"] = namespace
|
@@ -754,6 +795,7 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
754
795
|
credential_type: Optional[pulumi.Input[str]] = None,
|
755
796
|
default_sts_ttl: Optional[pulumi.Input[int]] = None,
|
756
797
|
iam_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
798
|
+
iam_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
|
757
799
|
max_sts_ttl: Optional[pulumi.Input[int]] = None,
|
758
800
|
name: Optional[pulumi.Input[str]] = None,
|
759
801
|
namespace: Optional[pulumi.Input[str]] = None,
|
@@ -785,6 +827,8 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
785
827
|
corresponding AWS call (sts:AssumeRole or sts:GetFederation) will be the
|
786
828
|
policies from each group in `iam_groups` combined with the `policy_document`
|
787
829
|
and `policy_arns` parameters.
|
830
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] iam_tags: A map of strings representing key/value pairs
|
831
|
+
to be used as tags for any IAM user that is created by this role.
|
788
832
|
:param pulumi.Input[int] max_sts_ttl: The max allowed TTL in seconds for STS credentials
|
789
833
|
(credentials TTL are capped to `max_sts_ttl`). Valid only when `credential_type` is
|
790
834
|
one of `assumed_role` or `federation_token`.
|
@@ -824,6 +868,7 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
824
868
|
__props__.__dict__["credential_type"] = credential_type
|
825
869
|
__props__.__dict__["default_sts_ttl"] = default_sts_ttl
|
826
870
|
__props__.__dict__["iam_groups"] = iam_groups
|
871
|
+
__props__.__dict__["iam_tags"] = iam_tags
|
827
872
|
__props__.__dict__["max_sts_ttl"] = max_sts_ttl
|
828
873
|
__props__.__dict__["name"] = name
|
829
874
|
__props__.__dict__["namespace"] = namespace
|
@@ -878,6 +923,15 @@ class SecretBackendRole(pulumi.CustomResource):
|
|
878
923
|
"""
|
879
924
|
return pulumi.get(self, "iam_groups")
|
880
925
|
|
926
|
+
@property
|
927
|
+
@pulumi.getter(name="iamTags")
|
928
|
+
def iam_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
|
929
|
+
"""
|
930
|
+
A map of strings representing key/value pairs
|
931
|
+
to be used as tags for any IAM user that is created by this role.
|
932
|
+
"""
|
933
|
+
return pulumi.get(self, "iam_tags")
|
934
|
+
|
881
935
|
@property
|
882
936
|
@pulumi.getter(name="maxStsTtl")
|
883
937
|
def max_sts_ttl(self) -> pulumi.Output[int]:
|
@@ -20,6 +20,8 @@ class AuthBackendConfigArgs:
|
|
20
20
|
client_id: Optional[pulumi.Input[str]] = None,
|
21
21
|
client_secret: Optional[pulumi.Input[str]] = None,
|
22
22
|
environment: Optional[pulumi.Input[str]] = None,
|
23
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
24
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
23
25
|
namespace: Optional[pulumi.Input[str]] = None):
|
24
26
|
"""
|
25
27
|
The set of arguments for constructing a AuthBackendConfig resource.
|
@@ -36,6 +38,9 @@ class AuthBackendConfigArgs:
|
|
36
38
|
:param pulumi.Input[str] environment: The Azure cloud environment. Valid values:
|
37
39
|
AzurePublicCloud, AzureUSGovernmentCloud, AzureChinaCloud,
|
38
40
|
AzureGermanCloud. Defaults to `AzurePublicCloud`.
|
41
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
42
|
+
*Available only for Vault Enterprise*
|
43
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated identity tokens in seconds.
|
39
44
|
:param pulumi.Input[str] namespace: The namespace to provision the resource in.
|
40
45
|
The value should not contain leading or trailing forward slashes.
|
41
46
|
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
@@ -51,6 +56,10 @@ class AuthBackendConfigArgs:
|
|
51
56
|
pulumi.set(__self__, "client_secret", client_secret)
|
52
57
|
if environment is not None:
|
53
58
|
pulumi.set(__self__, "environment", environment)
|
59
|
+
if identity_token_audience is not None:
|
60
|
+
pulumi.set(__self__, "identity_token_audience", identity_token_audience)
|
61
|
+
if identity_token_ttl is not None:
|
62
|
+
pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
|
54
63
|
if namespace is not None:
|
55
64
|
pulumi.set(__self__, "namespace", namespace)
|
56
65
|
|
@@ -133,6 +142,31 @@ class AuthBackendConfigArgs:
|
|
133
142
|
def environment(self, value: Optional[pulumi.Input[str]]):
|
134
143
|
pulumi.set(self, "environment", value)
|
135
144
|
|
145
|
+
@property
|
146
|
+
@pulumi.getter(name="identityTokenAudience")
|
147
|
+
def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
|
148
|
+
"""
|
149
|
+
The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
150
|
+
*Available only for Vault Enterprise*
|
151
|
+
"""
|
152
|
+
return pulumi.get(self, "identity_token_audience")
|
153
|
+
|
154
|
+
@identity_token_audience.setter
|
155
|
+
def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
|
156
|
+
pulumi.set(self, "identity_token_audience", value)
|
157
|
+
|
158
|
+
@property
|
159
|
+
@pulumi.getter(name="identityTokenTtl")
|
160
|
+
def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
|
161
|
+
"""
|
162
|
+
The TTL of generated identity tokens in seconds.
|
163
|
+
"""
|
164
|
+
return pulumi.get(self, "identity_token_ttl")
|
165
|
+
|
166
|
+
@identity_token_ttl.setter
|
167
|
+
def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
|
168
|
+
pulumi.set(self, "identity_token_ttl", value)
|
169
|
+
|
136
170
|
@property
|
137
171
|
@pulumi.getter
|
138
172
|
def namespace(self) -> Optional[pulumi.Input[str]]:
|
@@ -156,6 +190,8 @@ class _AuthBackendConfigState:
|
|
156
190
|
client_id: Optional[pulumi.Input[str]] = None,
|
157
191
|
client_secret: Optional[pulumi.Input[str]] = None,
|
158
192
|
environment: Optional[pulumi.Input[str]] = None,
|
193
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
194
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
159
195
|
namespace: Optional[pulumi.Input[str]] = None,
|
160
196
|
resource: Optional[pulumi.Input[str]] = None,
|
161
197
|
tenant_id: Optional[pulumi.Input[str]] = None):
|
@@ -170,6 +206,9 @@ class _AuthBackendConfigState:
|
|
170
206
|
:param pulumi.Input[str] environment: The Azure cloud environment. Valid values:
|
171
207
|
AzurePublicCloud, AzureUSGovernmentCloud, AzureChinaCloud,
|
172
208
|
AzureGermanCloud. Defaults to `AzurePublicCloud`.
|
209
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
210
|
+
*Available only for Vault Enterprise*
|
211
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated identity tokens in seconds.
|
173
212
|
:param pulumi.Input[str] namespace: The namespace to provision the resource in.
|
174
213
|
The value should not contain leading or trailing forward slashes.
|
175
214
|
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
@@ -187,6 +226,10 @@ class _AuthBackendConfigState:
|
|
187
226
|
pulumi.set(__self__, "client_secret", client_secret)
|
188
227
|
if environment is not None:
|
189
228
|
pulumi.set(__self__, "environment", environment)
|
229
|
+
if identity_token_audience is not None:
|
230
|
+
pulumi.set(__self__, "identity_token_audience", identity_token_audience)
|
231
|
+
if identity_token_ttl is not None:
|
232
|
+
pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
|
190
233
|
if namespace is not None:
|
191
234
|
pulumi.set(__self__, "namespace", namespace)
|
192
235
|
if resource is not None:
|
@@ -247,6 +290,31 @@ class _AuthBackendConfigState:
|
|
247
290
|
def environment(self, value: Optional[pulumi.Input[str]]):
|
248
291
|
pulumi.set(self, "environment", value)
|
249
292
|
|
293
|
+
@property
|
294
|
+
@pulumi.getter(name="identityTokenAudience")
|
295
|
+
def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
|
296
|
+
"""
|
297
|
+
The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
298
|
+
*Available only for Vault Enterprise*
|
299
|
+
"""
|
300
|
+
return pulumi.get(self, "identity_token_audience")
|
301
|
+
|
302
|
+
@identity_token_audience.setter
|
303
|
+
def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
|
304
|
+
pulumi.set(self, "identity_token_audience", value)
|
305
|
+
|
306
|
+
@property
|
307
|
+
@pulumi.getter(name="identityTokenTtl")
|
308
|
+
def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
|
309
|
+
"""
|
310
|
+
The TTL of generated identity tokens in seconds.
|
311
|
+
"""
|
312
|
+
return pulumi.get(self, "identity_token_ttl")
|
313
|
+
|
314
|
+
@identity_token_ttl.setter
|
315
|
+
def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
|
316
|
+
pulumi.set(self, "identity_token_ttl", value)
|
317
|
+
|
250
318
|
@property
|
251
319
|
@pulumi.getter
|
252
320
|
def namespace(self) -> Optional[pulumi.Input[str]]:
|
@@ -298,6 +366,8 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
298
366
|
client_id: Optional[pulumi.Input[str]] = None,
|
299
367
|
client_secret: Optional[pulumi.Input[str]] = None,
|
300
368
|
environment: Optional[pulumi.Input[str]] = None,
|
369
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
370
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
301
371
|
namespace: Optional[pulumi.Input[str]] = None,
|
302
372
|
resource: Optional[pulumi.Input[str]] = None,
|
303
373
|
tenant_id: Optional[pulumi.Input[str]] = None,
|
@@ -305,6 +375,22 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
305
375
|
"""
|
306
376
|
## Example Usage
|
307
377
|
|
378
|
+
You can setup the Azure auth engine with Workload Identity Federation (WIF) for a secret-less configuration:
|
379
|
+
```python
|
380
|
+
import pulumi
|
381
|
+
import pulumi_vault as vault
|
382
|
+
|
383
|
+
example = vault.AuthBackend("example",
|
384
|
+
type="azure",
|
385
|
+
identity_token_key="example-key")
|
386
|
+
example_auth_backend_config = vault.azure.AuthBackendConfig("example",
|
387
|
+
backend=example.path,
|
388
|
+
tenant_id="11111111-2222-3333-4444-555555555555",
|
389
|
+
client_id="11111111-2222-3333-4444-555555555555",
|
390
|
+
identity_token_audience="<TOKEN_AUDIENCE>",
|
391
|
+
identity_token_ttl="<TOKEN_TTL>")
|
392
|
+
```
|
393
|
+
|
308
394
|
```python
|
309
395
|
import pulumi
|
310
396
|
import pulumi_vault as vault
|
@@ -337,6 +423,9 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
337
423
|
:param pulumi.Input[str] environment: The Azure cloud environment. Valid values:
|
338
424
|
AzurePublicCloud, AzureUSGovernmentCloud, AzureChinaCloud,
|
339
425
|
AzureGermanCloud. Defaults to `AzurePublicCloud`.
|
426
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
427
|
+
*Available only for Vault Enterprise*
|
428
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated identity tokens in seconds.
|
340
429
|
:param pulumi.Input[str] namespace: The namespace to provision the resource in.
|
341
430
|
The value should not contain leading or trailing forward slashes.
|
342
431
|
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
@@ -355,6 +444,22 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
355
444
|
"""
|
356
445
|
## Example Usage
|
357
446
|
|
447
|
+
You can setup the Azure auth engine with Workload Identity Federation (WIF) for a secret-less configuration:
|
448
|
+
```python
|
449
|
+
import pulumi
|
450
|
+
import pulumi_vault as vault
|
451
|
+
|
452
|
+
example = vault.AuthBackend("example",
|
453
|
+
type="azure",
|
454
|
+
identity_token_key="example-key")
|
455
|
+
example_auth_backend_config = vault.azure.AuthBackendConfig("example",
|
456
|
+
backend=example.path,
|
457
|
+
tenant_id="11111111-2222-3333-4444-555555555555",
|
458
|
+
client_id="11111111-2222-3333-4444-555555555555",
|
459
|
+
identity_token_audience="<TOKEN_AUDIENCE>",
|
460
|
+
identity_token_ttl="<TOKEN_TTL>")
|
461
|
+
```
|
462
|
+
|
358
463
|
```python
|
359
464
|
import pulumi
|
360
465
|
import pulumi_vault as vault
|
@@ -395,6 +500,8 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
395
500
|
client_id: Optional[pulumi.Input[str]] = None,
|
396
501
|
client_secret: Optional[pulumi.Input[str]] = None,
|
397
502
|
environment: Optional[pulumi.Input[str]] = None,
|
503
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
504
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
398
505
|
namespace: Optional[pulumi.Input[str]] = None,
|
399
506
|
resource: Optional[pulumi.Input[str]] = None,
|
400
507
|
tenant_id: Optional[pulumi.Input[str]] = None,
|
@@ -411,6 +518,8 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
411
518
|
__props__.__dict__["client_id"] = None if client_id is None else pulumi.Output.secret(client_id)
|
412
519
|
__props__.__dict__["client_secret"] = None if client_secret is None else pulumi.Output.secret(client_secret)
|
413
520
|
__props__.__dict__["environment"] = environment
|
521
|
+
__props__.__dict__["identity_token_audience"] = identity_token_audience
|
522
|
+
__props__.__dict__["identity_token_ttl"] = identity_token_ttl
|
414
523
|
__props__.__dict__["namespace"] = namespace
|
415
524
|
if resource is None and not opts.urn:
|
416
525
|
raise TypeError("Missing required property 'resource'")
|
@@ -434,6 +543,8 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
434
543
|
client_id: Optional[pulumi.Input[str]] = None,
|
435
544
|
client_secret: Optional[pulumi.Input[str]] = None,
|
436
545
|
environment: Optional[pulumi.Input[str]] = None,
|
546
|
+
identity_token_audience: Optional[pulumi.Input[str]] = None,
|
547
|
+
identity_token_ttl: Optional[pulumi.Input[int]] = None,
|
437
548
|
namespace: Optional[pulumi.Input[str]] = None,
|
438
549
|
resource: Optional[pulumi.Input[str]] = None,
|
439
550
|
tenant_id: Optional[pulumi.Input[str]] = None) -> 'AuthBackendConfig':
|
@@ -453,6 +564,9 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
453
564
|
:param pulumi.Input[str] environment: The Azure cloud environment. Valid values:
|
454
565
|
AzurePublicCloud, AzureUSGovernmentCloud, AzureChinaCloud,
|
455
566
|
AzureGermanCloud. Defaults to `AzurePublicCloud`.
|
567
|
+
:param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
568
|
+
*Available only for Vault Enterprise*
|
569
|
+
:param pulumi.Input[int] identity_token_ttl: The TTL of generated identity tokens in seconds.
|
456
570
|
:param pulumi.Input[str] namespace: The namespace to provision the resource in.
|
457
571
|
The value should not contain leading or trailing forward slashes.
|
458
572
|
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
@@ -470,6 +584,8 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
470
584
|
__props__.__dict__["client_id"] = client_id
|
471
585
|
__props__.__dict__["client_secret"] = client_secret
|
472
586
|
__props__.__dict__["environment"] = environment
|
587
|
+
__props__.__dict__["identity_token_audience"] = identity_token_audience
|
588
|
+
__props__.__dict__["identity_token_ttl"] = identity_token_ttl
|
473
589
|
__props__.__dict__["namespace"] = namespace
|
474
590
|
__props__.__dict__["resource"] = resource
|
475
591
|
__props__.__dict__["tenant_id"] = tenant_id
|
@@ -512,6 +628,23 @@ class AuthBackendConfig(pulumi.CustomResource):
|
|
512
628
|
"""
|
513
629
|
return pulumi.get(self, "environment")
|
514
630
|
|
631
|
+
@property
|
632
|
+
@pulumi.getter(name="identityTokenAudience")
|
633
|
+
def identity_token_audience(self) -> pulumi.Output[Optional[str]]:
|
634
|
+
"""
|
635
|
+
The audience claim value for plugin identity tokens. Requires Vault 1.17+.
|
636
|
+
*Available only for Vault Enterprise*
|
637
|
+
"""
|
638
|
+
return pulumi.get(self, "identity_token_audience")
|
639
|
+
|
640
|
+
@property
|
641
|
+
@pulumi.getter(name="identityTokenTtl")
|
642
|
+
def identity_token_ttl(self) -> pulumi.Output[int]:
|
643
|
+
"""
|
644
|
+
The TTL of generated identity tokens in seconds.
|
645
|
+
"""
|
646
|
+
return pulumi.get(self, "identity_token_ttl")
|
647
|
+
|
515
648
|
@property
|
516
649
|
@pulumi.getter
|
517
650
|
def namespace(self) -> pulumi.Output[Optional[str]]:
|