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.
@@ -22,11 +22,15 @@ class AuthBackendArgs:
22
22
  custom_endpoint: Optional[pulumi.Input['AuthBackendCustomEndpointArgs']] = None,
23
23
  description: Optional[pulumi.Input[str]] = None,
24
24
  disable_remount: Optional[pulumi.Input[bool]] = None,
25
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
26
+ identity_token_key: Optional[pulumi.Input[str]] = None,
27
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
25
28
  local: Optional[pulumi.Input[bool]] = None,
26
29
  namespace: Optional[pulumi.Input[str]] = None,
27
30
  path: Optional[pulumi.Input[str]] = None,
28
31
  private_key_id: Optional[pulumi.Input[str]] = None,
29
32
  project_id: Optional[pulumi.Input[str]] = None,
33
+ service_account_email: Optional[pulumi.Input[str]] = None,
30
34
  tune: Optional[pulumi.Input['AuthBackendTuneArgs']] = None):
31
35
  """
32
36
  The set of arguments for constructing a AuthBackend resource.
@@ -43,6 +47,12 @@ class AuthBackendArgs:
43
47
  :param pulumi.Input[str] description: A description of the auth method.
44
48
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
45
49
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
50
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
51
+ 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).
52
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
53
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
54
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
55
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
46
56
  :param pulumi.Input[bool] local: Specifies if the auth method is local only.
47
57
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
48
58
  The value should not contain leading or trailing forward slashes.
@@ -51,6 +61,8 @@ class AuthBackendArgs:
51
61
  :param pulumi.Input[str] path: The path to mount the auth method — this defaults to 'gcp'.
52
62
  :param pulumi.Input[str] private_key_id: The ID of the private key from the credentials
53
63
  :param pulumi.Input[str] project_id: The GCP Project ID
64
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
65
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
54
66
  :param pulumi.Input['AuthBackendTuneArgs'] tune: Extra configuration block. Structure is documented below.
55
67
 
56
68
  The `tune` block is used to tune the auth backend:
@@ -67,6 +79,12 @@ class AuthBackendArgs:
67
79
  pulumi.set(__self__, "description", description)
68
80
  if disable_remount is not None:
69
81
  pulumi.set(__self__, "disable_remount", disable_remount)
82
+ if identity_token_audience is not None:
83
+ pulumi.set(__self__, "identity_token_audience", identity_token_audience)
84
+ if identity_token_key is not None:
85
+ pulumi.set(__self__, "identity_token_key", identity_token_key)
86
+ if identity_token_ttl is not None:
87
+ pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
70
88
  if local is not None:
71
89
  pulumi.set(__self__, "local", local)
72
90
  if namespace is not None:
@@ -77,6 +95,8 @@ class AuthBackendArgs:
77
95
  pulumi.set(__self__, "private_key_id", private_key_id)
78
96
  if project_id is not None:
79
97
  pulumi.set(__self__, "project_id", project_id)
98
+ if service_account_email is not None:
99
+ pulumi.set(__self__, "service_account_email", service_account_email)
80
100
  if tune is not None:
81
101
  pulumi.set(__self__, "tune", tune)
82
102
 
@@ -159,6 +179,45 @@ class AuthBackendArgs:
159
179
  def disable_remount(self, value: Optional[pulumi.Input[bool]]):
160
180
  pulumi.set(self, "disable_remount", value)
161
181
 
182
+ @property
183
+ @pulumi.getter(name="identityTokenAudience")
184
+ def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
185
+ """
186
+ The audience claim value for plugin identity
187
+ 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).
188
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
189
+ """
190
+ return pulumi.get(self, "identity_token_audience")
191
+
192
+ @identity_token_audience.setter
193
+ def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
194
+ pulumi.set(self, "identity_token_audience", value)
195
+
196
+ @property
197
+ @pulumi.getter(name="identityTokenKey")
198
+ def identity_token_key(self) -> Optional[pulumi.Input[str]]:
199
+ """
200
+ The key to use for signing plugin identity
201
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
202
+ """
203
+ return pulumi.get(self, "identity_token_key")
204
+
205
+ @identity_token_key.setter
206
+ def identity_token_key(self, value: Optional[pulumi.Input[str]]):
207
+ pulumi.set(self, "identity_token_key", value)
208
+
209
+ @property
210
+ @pulumi.getter(name="identityTokenTtl")
211
+ def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
212
+ """
213
+ The TTL of generated tokens.
214
+ """
215
+ return pulumi.get(self, "identity_token_ttl")
216
+
217
+ @identity_token_ttl.setter
218
+ def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
219
+ pulumi.set(self, "identity_token_ttl", value)
220
+
162
221
  @property
163
222
  @pulumi.getter
164
223
  def local(self) -> Optional[pulumi.Input[bool]]:
@@ -222,6 +281,19 @@ class AuthBackendArgs:
222
281
  def project_id(self, value: Optional[pulumi.Input[str]]):
223
282
  pulumi.set(self, "project_id", value)
224
283
 
284
+ @property
285
+ @pulumi.getter(name="serviceAccountEmail")
286
+ def service_account_email(self) -> Optional[pulumi.Input[str]]:
287
+ """
288
+ Service Account to impersonate for plugin workload identity federation.
289
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
290
+ """
291
+ return pulumi.get(self, "service_account_email")
292
+
293
+ @service_account_email.setter
294
+ def service_account_email(self, value: Optional[pulumi.Input[str]]):
295
+ pulumi.set(self, "service_account_email", value)
296
+
225
297
  @property
226
298
  @pulumi.getter
227
299
  def tune(self) -> Optional[pulumi.Input['AuthBackendTuneArgs']]:
@@ -247,11 +319,15 @@ class _AuthBackendState:
247
319
  custom_endpoint: Optional[pulumi.Input['AuthBackendCustomEndpointArgs']] = None,
248
320
  description: Optional[pulumi.Input[str]] = None,
249
321
  disable_remount: Optional[pulumi.Input[bool]] = None,
322
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
323
+ identity_token_key: Optional[pulumi.Input[str]] = None,
324
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
250
325
  local: Optional[pulumi.Input[bool]] = None,
251
326
  namespace: Optional[pulumi.Input[str]] = None,
252
327
  path: Optional[pulumi.Input[str]] = None,
253
328
  private_key_id: Optional[pulumi.Input[str]] = None,
254
329
  project_id: Optional[pulumi.Input[str]] = None,
330
+ service_account_email: Optional[pulumi.Input[str]] = None,
255
331
  tune: Optional[pulumi.Input['AuthBackendTuneArgs']] = None):
256
332
  """
257
333
  Input properties used for looking up and filtering AuthBackend resources.
@@ -269,6 +345,12 @@ class _AuthBackendState:
269
345
  :param pulumi.Input[str] description: A description of the auth method.
270
346
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
271
347
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
348
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
349
+ 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).
350
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
351
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
352
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
353
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
272
354
  :param pulumi.Input[bool] local: Specifies if the auth method is local only.
273
355
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
274
356
  The value should not contain leading or trailing forward slashes.
@@ -277,6 +359,8 @@ class _AuthBackendState:
277
359
  :param pulumi.Input[str] path: The path to mount the auth method — this defaults to 'gcp'.
278
360
  :param pulumi.Input[str] private_key_id: The ID of the private key from the credentials
279
361
  :param pulumi.Input[str] project_id: The GCP Project ID
362
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
363
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
280
364
  :param pulumi.Input['AuthBackendTuneArgs'] tune: Extra configuration block. Structure is documented below.
281
365
 
282
366
  The `tune` block is used to tune the auth backend:
@@ -295,6 +379,12 @@ class _AuthBackendState:
295
379
  pulumi.set(__self__, "description", description)
296
380
  if disable_remount is not None:
297
381
  pulumi.set(__self__, "disable_remount", disable_remount)
382
+ if identity_token_audience is not None:
383
+ pulumi.set(__self__, "identity_token_audience", identity_token_audience)
384
+ if identity_token_key is not None:
385
+ pulumi.set(__self__, "identity_token_key", identity_token_key)
386
+ if identity_token_ttl is not None:
387
+ pulumi.set(__self__, "identity_token_ttl", identity_token_ttl)
298
388
  if local is not None:
299
389
  pulumi.set(__self__, "local", local)
300
390
  if namespace is not None:
@@ -305,6 +395,8 @@ class _AuthBackendState:
305
395
  pulumi.set(__self__, "private_key_id", private_key_id)
306
396
  if project_id is not None:
307
397
  pulumi.set(__self__, "project_id", project_id)
398
+ if service_account_email is not None:
399
+ pulumi.set(__self__, "service_account_email", service_account_email)
308
400
  if tune is not None:
309
401
  pulumi.set(__self__, "tune", tune)
310
402
 
@@ -399,6 +491,45 @@ class _AuthBackendState:
399
491
  def disable_remount(self, value: Optional[pulumi.Input[bool]]):
400
492
  pulumi.set(self, "disable_remount", value)
401
493
 
494
+ @property
495
+ @pulumi.getter(name="identityTokenAudience")
496
+ def identity_token_audience(self) -> Optional[pulumi.Input[str]]:
497
+ """
498
+ The audience claim value for plugin identity
499
+ 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).
500
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
501
+ """
502
+ return pulumi.get(self, "identity_token_audience")
503
+
504
+ @identity_token_audience.setter
505
+ def identity_token_audience(self, value: Optional[pulumi.Input[str]]):
506
+ pulumi.set(self, "identity_token_audience", value)
507
+
508
+ @property
509
+ @pulumi.getter(name="identityTokenKey")
510
+ def identity_token_key(self) -> Optional[pulumi.Input[str]]:
511
+ """
512
+ The key to use for signing plugin identity
513
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
514
+ """
515
+ return pulumi.get(self, "identity_token_key")
516
+
517
+ @identity_token_key.setter
518
+ def identity_token_key(self, value: Optional[pulumi.Input[str]]):
519
+ pulumi.set(self, "identity_token_key", value)
520
+
521
+ @property
522
+ @pulumi.getter(name="identityTokenTtl")
523
+ def identity_token_ttl(self) -> Optional[pulumi.Input[int]]:
524
+ """
525
+ The TTL of generated tokens.
526
+ """
527
+ return pulumi.get(self, "identity_token_ttl")
528
+
529
+ @identity_token_ttl.setter
530
+ def identity_token_ttl(self, value: Optional[pulumi.Input[int]]):
531
+ pulumi.set(self, "identity_token_ttl", value)
532
+
402
533
  @property
403
534
  @pulumi.getter
404
535
  def local(self) -> Optional[pulumi.Input[bool]]:
@@ -462,6 +593,19 @@ class _AuthBackendState:
462
593
  def project_id(self, value: Optional[pulumi.Input[str]]):
463
594
  pulumi.set(self, "project_id", value)
464
595
 
596
+ @property
597
+ @pulumi.getter(name="serviceAccountEmail")
598
+ def service_account_email(self) -> Optional[pulumi.Input[str]]:
599
+ """
600
+ Service Account to impersonate for plugin workload identity federation.
601
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
602
+ """
603
+ return pulumi.get(self, "service_account_email")
604
+
605
+ @service_account_email.setter
606
+ def service_account_email(self, value: Optional[pulumi.Input[str]]):
607
+ pulumi.set(self, "service_account_email", value)
608
+
465
609
  @property
466
610
  @pulumi.getter
467
611
  def tune(self) -> Optional[pulumi.Input['AuthBackendTuneArgs']]:
@@ -488,16 +632,34 @@ class AuthBackend(pulumi.CustomResource):
488
632
  custom_endpoint: Optional[pulumi.Input[pulumi.InputType['AuthBackendCustomEndpointArgs']]] = None,
489
633
  description: Optional[pulumi.Input[str]] = None,
490
634
  disable_remount: Optional[pulumi.Input[bool]] = None,
635
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
636
+ identity_token_key: Optional[pulumi.Input[str]] = None,
637
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
491
638
  local: Optional[pulumi.Input[bool]] = None,
492
639
  namespace: Optional[pulumi.Input[str]] = None,
493
640
  path: Optional[pulumi.Input[str]] = None,
494
641
  private_key_id: Optional[pulumi.Input[str]] = None,
495
642
  project_id: Optional[pulumi.Input[str]] = None,
643
+ service_account_email: Optional[pulumi.Input[str]] = None,
496
644
  tune: Optional[pulumi.Input[pulumi.InputType['AuthBackendTuneArgs']]] = None,
497
645
  __props__=None):
498
646
  """
499
647
  Provides a resource to configure the [GCP auth backend within Vault](https://www.vaultproject.io/docs/auth/gcp.html).
500
648
 
649
+ ## Example Usage
650
+
651
+ You can setup the GCP auth backend with Workload Identity Federation (WIF) for a secret-less configuration:
652
+ ```python
653
+ import pulumi
654
+ import pulumi_vault as vault
655
+
656
+ gcp = vault.gcp.AuthBackend("gcp",
657
+ identity_token_key="example-key",
658
+ identity_token_ttl=1800,
659
+ identity_token_audience="<TOKEN_AUDIENCE>",
660
+ service_account_email="<SERVICE_ACCOUNT_EMAIL>")
661
+ ```
662
+
501
663
  ## Import
502
664
 
503
665
  GCP authentication backends can be imported using the backend name, e.g.
@@ -521,6 +683,12 @@ class AuthBackend(pulumi.CustomResource):
521
683
  :param pulumi.Input[str] description: A description of the auth method.
522
684
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
523
685
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
686
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
687
+ 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).
688
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
689
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
690
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
691
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
524
692
  :param pulumi.Input[bool] local: Specifies if the auth method is local only.
525
693
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
526
694
  The value should not contain leading or trailing forward slashes.
@@ -529,6 +697,8 @@ class AuthBackend(pulumi.CustomResource):
529
697
  :param pulumi.Input[str] path: The path to mount the auth method — this defaults to 'gcp'.
530
698
  :param pulumi.Input[str] private_key_id: The ID of the private key from the credentials
531
699
  :param pulumi.Input[str] project_id: The GCP Project ID
700
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
701
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
532
702
  :param pulumi.Input[pulumi.InputType['AuthBackendTuneArgs']] tune: Extra configuration block. Structure is documented below.
533
703
 
534
704
  The `tune` block is used to tune the auth backend:
@@ -542,6 +712,20 @@ class AuthBackend(pulumi.CustomResource):
542
712
  """
543
713
  Provides a resource to configure the [GCP auth backend within Vault](https://www.vaultproject.io/docs/auth/gcp.html).
544
714
 
715
+ ## Example Usage
716
+
717
+ You can setup the GCP auth backend with Workload Identity Federation (WIF) for a secret-less configuration:
718
+ ```python
719
+ import pulumi
720
+ import pulumi_vault as vault
721
+
722
+ gcp = vault.gcp.AuthBackend("gcp",
723
+ identity_token_key="example-key",
724
+ identity_token_ttl=1800,
725
+ identity_token_audience="<TOKEN_AUDIENCE>",
726
+ service_account_email="<SERVICE_ACCOUNT_EMAIL>")
727
+ ```
728
+
545
729
  ## Import
546
730
 
547
731
  GCP authentication backends can be imported using the backend name, e.g.
@@ -571,11 +755,15 @@ class AuthBackend(pulumi.CustomResource):
571
755
  custom_endpoint: Optional[pulumi.Input[pulumi.InputType['AuthBackendCustomEndpointArgs']]] = None,
572
756
  description: Optional[pulumi.Input[str]] = None,
573
757
  disable_remount: Optional[pulumi.Input[bool]] = None,
758
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
759
+ identity_token_key: Optional[pulumi.Input[str]] = None,
760
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
574
761
  local: Optional[pulumi.Input[bool]] = None,
575
762
  namespace: Optional[pulumi.Input[str]] = None,
576
763
  path: Optional[pulumi.Input[str]] = None,
577
764
  private_key_id: Optional[pulumi.Input[str]] = None,
578
765
  project_id: Optional[pulumi.Input[str]] = None,
766
+ service_account_email: Optional[pulumi.Input[str]] = None,
579
767
  tune: Optional[pulumi.Input[pulumi.InputType['AuthBackendTuneArgs']]] = None,
580
768
  __props__=None):
581
769
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -592,11 +780,15 @@ class AuthBackend(pulumi.CustomResource):
592
780
  __props__.__dict__["custom_endpoint"] = custom_endpoint
593
781
  __props__.__dict__["description"] = description
594
782
  __props__.__dict__["disable_remount"] = disable_remount
783
+ __props__.__dict__["identity_token_audience"] = identity_token_audience
784
+ __props__.__dict__["identity_token_key"] = identity_token_key
785
+ __props__.__dict__["identity_token_ttl"] = identity_token_ttl
595
786
  __props__.__dict__["local"] = local
596
787
  __props__.__dict__["namespace"] = namespace
597
788
  __props__.__dict__["path"] = path
598
789
  __props__.__dict__["private_key_id"] = private_key_id
599
790
  __props__.__dict__["project_id"] = project_id
791
+ __props__.__dict__["service_account_email"] = service_account_email
600
792
  __props__.__dict__["tune"] = tune
601
793
  __props__.__dict__["accessor"] = None
602
794
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["credentials"])
@@ -618,11 +810,15 @@ class AuthBackend(pulumi.CustomResource):
618
810
  custom_endpoint: Optional[pulumi.Input[pulumi.InputType['AuthBackendCustomEndpointArgs']]] = None,
619
811
  description: Optional[pulumi.Input[str]] = None,
620
812
  disable_remount: Optional[pulumi.Input[bool]] = None,
813
+ identity_token_audience: Optional[pulumi.Input[str]] = None,
814
+ identity_token_key: Optional[pulumi.Input[str]] = None,
815
+ identity_token_ttl: Optional[pulumi.Input[int]] = None,
621
816
  local: Optional[pulumi.Input[bool]] = None,
622
817
  namespace: Optional[pulumi.Input[str]] = None,
623
818
  path: Optional[pulumi.Input[str]] = None,
624
819
  private_key_id: Optional[pulumi.Input[str]] = None,
625
820
  project_id: Optional[pulumi.Input[str]] = None,
821
+ service_account_email: Optional[pulumi.Input[str]] = None,
626
822
  tune: Optional[pulumi.Input[pulumi.InputType['AuthBackendTuneArgs']]] = None) -> 'AuthBackend':
627
823
  """
628
824
  Get an existing AuthBackend resource's state with the given name, id, and optional extra
@@ -645,6 +841,12 @@ class AuthBackend(pulumi.CustomResource):
645
841
  :param pulumi.Input[str] description: A description of the auth method.
646
842
  :param pulumi.Input[bool] disable_remount: If set, opts out of mount migration on path updates.
647
843
  See here for more info on [Mount Migration](https://www.vaultproject.io/docs/concepts/mount-migration)
844
+ :param pulumi.Input[str] identity_token_audience: The audience claim value for plugin identity
845
+ 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).
846
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
847
+ :param pulumi.Input[str] identity_token_key: The key to use for signing plugin identity
848
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
849
+ :param pulumi.Input[int] identity_token_ttl: The TTL of generated tokens.
648
850
  :param pulumi.Input[bool] local: Specifies if the auth method is local only.
649
851
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
650
852
  The value should not contain leading or trailing forward slashes.
@@ -653,6 +855,8 @@ class AuthBackend(pulumi.CustomResource):
653
855
  :param pulumi.Input[str] path: The path to mount the auth method — this defaults to 'gcp'.
654
856
  :param pulumi.Input[str] private_key_id: The ID of the private key from the credentials
655
857
  :param pulumi.Input[str] project_id: The GCP Project ID
858
+ :param pulumi.Input[str] service_account_email: Service Account to impersonate for plugin workload identity federation.
859
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
656
860
  :param pulumi.Input[pulumi.InputType['AuthBackendTuneArgs']] tune: Extra configuration block. Structure is documented below.
657
861
 
658
862
  The `tune` block is used to tune the auth backend:
@@ -668,11 +872,15 @@ class AuthBackend(pulumi.CustomResource):
668
872
  __props__.__dict__["custom_endpoint"] = custom_endpoint
669
873
  __props__.__dict__["description"] = description
670
874
  __props__.__dict__["disable_remount"] = disable_remount
875
+ __props__.__dict__["identity_token_audience"] = identity_token_audience
876
+ __props__.__dict__["identity_token_key"] = identity_token_key
877
+ __props__.__dict__["identity_token_ttl"] = identity_token_ttl
671
878
  __props__.__dict__["local"] = local
672
879
  __props__.__dict__["namespace"] = namespace
673
880
  __props__.__dict__["path"] = path
674
881
  __props__.__dict__["private_key_id"] = private_key_id
675
882
  __props__.__dict__["project_id"] = project_id
883
+ __props__.__dict__["service_account_email"] = service_account_email
676
884
  __props__.__dict__["tune"] = tune
677
885
  return AuthBackend(resource_name, opts=opts, __props__=__props__)
678
886
 
@@ -739,6 +947,33 @@ class AuthBackend(pulumi.CustomResource):
739
947
  """
740
948
  return pulumi.get(self, "disable_remount")
741
949
 
950
+ @property
951
+ @pulumi.getter(name="identityTokenAudience")
952
+ def identity_token_audience(self) -> pulumi.Output[Optional[str]]:
953
+ """
954
+ The audience claim value for plugin identity
955
+ 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).
956
+ Mutually exclusive with `credentials`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
957
+ """
958
+ return pulumi.get(self, "identity_token_audience")
959
+
960
+ @property
961
+ @pulumi.getter(name="identityTokenKey")
962
+ def identity_token_key(self) -> pulumi.Output[Optional[str]]:
963
+ """
964
+ The key to use for signing plugin identity
965
+ tokens. Requires Vault 1.17+. *Available only for Vault Enterprise*.
966
+ """
967
+ return pulumi.get(self, "identity_token_key")
968
+
969
+ @property
970
+ @pulumi.getter(name="identityTokenTtl")
971
+ def identity_token_ttl(self) -> pulumi.Output[Optional[int]]:
972
+ """
973
+ The TTL of generated tokens.
974
+ """
975
+ return pulumi.get(self, "identity_token_ttl")
976
+
742
977
  @property
743
978
  @pulumi.getter
744
979
  def local(self) -> pulumi.Output[Optional[bool]]:
@@ -782,6 +1017,15 @@ class AuthBackend(pulumi.CustomResource):
782
1017
  """
783
1018
  return pulumi.get(self, "project_id")
784
1019
 
1020
+ @property
1021
+ @pulumi.getter(name="serviceAccountEmail")
1022
+ def service_account_email(self) -> pulumi.Output[Optional[str]]:
1023
+ """
1024
+ Service Account to impersonate for plugin workload identity federation.
1025
+ Required with `identity_token_audience`. Requires Vault 1.17+. *Available only for Vault Enterprise*.
1026
+ """
1027
+ return pulumi.get(self, "service_account_email")
1028
+
785
1029
  @property
786
1030
  @pulumi.getter
787
1031
  def tune(self) -> pulumi.Output['outputs.AuthBackendTune']: