Clarification on Vault provider skip_child_token behavior

Hello all,

I have a few questions regarding the skip_child_token attribute of the Vault Terraform Provider.

Setup context:

Terraform is running within a GitHub Actions workflow. The Vault provider is using the auth_login_jwt configuration block with mount and role set in addition to a GHA ID Token (JWT) passed via the well known environment variable. The workflow/pipeline is not acquiring a vault token prior to Terraform execution (plan/apply).

Questions:

  1. Token flow

In the context I outlined above and skip_child_token is set to false – Are two tokens acquired by the provider? One when exchanging the GHA ID Token and then a second immediately after to actually be used by the provider to configure Vault?

  1. Rationale for child token

Why it is strongly encouraged to allow the provider to create ephemeral child tokens? I follow why this practice might be encouraged when a token is directly passed to the provider, but in cases where an auth method like JWT, AppRole, etc is utilized – why bother?

  1. Token Type

Does setting skip_child_token to false, effectively require that token_type must be configured to service or default-service for the auth method/role in question? My understanding is that batch tokens cannot create child tokens and I could not find evidence that the provider goes out of its way to request a service token.

Thank you!