HashiCorp
developer.hashicorp.com › hashicorp cloud platform › documentation › hashicorp cloud platform › service principals › workload identity federation › github
Federate workload identity with GitHub | HashiCorp Cloud Platform | HashiCorp Developer
September 5, 2025 - This configuration requires the following information that is specific to your GitHub account: <CONDITION>: The conditional access statement that restricts access to the specified repository and branch. The following example creates a workload identity provider named github-example.
GitHub
docs.github.com › en › actions › security-for-github-actions › security-hardening-your-deployments › configuring-openid-connect-in-google-cloud-platform
Configuring OpenID Connect in Google Cloud Platform - GitHub Docs
# They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. name: List services in GCP on: pull_request: branches: - main permissions: id-token: write jobs: Get_OIDC_ID_token: runs-on: ubuntu-latest steps: - id: 'auth' name: 'Authenticate to GCP' uses: 'google-github-actions/auth@f1e2d3c4b5a6f7e8d9c0b1a2c3d4e5f6a7b8c9d0' with: create_credentials_file: 'true' workload_identity_provider: 'WORKLOAD-IDENTITY-PROVIDER' service_account: 'SERVICE-ACCOUNT' - id: 'gcloud' name: 'gcloud' run: |- gcloud auth login --brief --cred-file="${{ steps.auth.outputs.credentials_file_path }}" gcloud services list
What is the difference between Workload Identity Federation and Workload Identity Federation for GKE?
WIF is the general product for external workloads like GitHub Actions authenticating to GCP. WIF for GKE is a specialized version for Kubernetes ServiceAccounts where GCP manages the pool automatically. They share STS but are configured differently.
computingforgeeks.com
computingforgeeks.com › home › set up gcp workload identity federation for github actions (2026)
GCP Workload Identity Federation for GitHub Actions (2026)
How does WIF for GitHub Actions compare to the AWS OIDC equivalent?
Similar concept. AWS uses an IAM OIDC provider plus an IAM role with a trust policy. GCP uses a pool, provider, and optional service account chain. Both produce short-lived cloud credentials from the GitHub OIDC token with no static keys.
computingforgeeks.com
computingforgeeks.com › home › set up gcp workload identity federation for github actions (2026)
GCP Workload Identity Federation for GitHub Actions (2026)
Can WIF work with self-hosted GitHub Actions runners?
Yes. Self-hosted runners receive the same OIDC token from GitHub. The caveat is they also have their own VM-level identity, which can complicate the security model. Use WIF exclusively for consistency.
computingforgeeks.com
computingforgeeks.com › home › set up gcp workload identity federation for github actions (2026)
GCP Workload Identity Federation for GitHub Actions (2026)
Videos
GitHub
github.com › google-github-actions › auth
GitHub - google-github-actions/auth: A GitHub Action for authenticating to Google Cloud. · GitHub
However, not all Google Cloud resources support principalSet identities, and the resulting token has a maximum lifetime of 10 minutes. Please see the documentation for your Google Cloud service for more information. ... To generate OAuth 2.0 access tokens or ID tokens, you must provide a service account email, and the Workload Identity Pool must have roles/iam.workloadIdentityUser permissions on the target Google Cloud Service Account.
Starred by 1.3K users
Forked by 295 users
Languages TypeScript 98.8% | JavaScript 1.2%
OneUptime
oneuptime.com › home › blog › set up workload identity federation for github actions to access gcp resources
Set Up Workload Identity Federation for GitHub Actions to Access GCP Resources
February 17, 2026 - # .github/workflows/deploy.yml name: Deploy to GCP on: push: branches: [main] # Required for OIDC token generation permissions: contents: read id-token: write jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # Authenticate to GCP using Workload Identity Federation - name: Authenticate to Google Cloud id: auth uses: google-github-actions/auth@v2 with: workload_identity_provider: "projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/github-pool/providers/github-provider" service_account: "[email protected]" # Now you can use gcloud, gsutil, etc.
GitHub
github.com › ankitcharolia › workload-identity-federation
GitHub - ankitcharolia/workload-identity-federation: Configure OpenID Connect with GCP Workload Identity Federation · GitHub
inputs = { workload_identity_pool_id = "gitlab-ci" workload_identity_pool_display_name = "gitlab-ci" workload_identity_pool_provider_id = "terraform" service_account_name = "gitlab-ci" service_account_display_name = "gitlab-ci" service_account_description = "service account for gitlab-ci" }
Author ankitcharolia
Google Cloud
cloud.google.com › iam › identity and access management (iam) › configure workload identity federation with deployment pipelines
Configure Workload Identity Federation with deployment pipelines | Identity and Access Management (IAM) | Google Cloud Documentation
For further details on using the google-github-actions/auth action, see Setting up Workload Identity Federation. Edit your .gitlab-ci.yml file and add the following to the job configuration: job: variables: WORKLOAD_IDENTITY_PROJECT_NUMBER: PROJECT_NUMBER WORKLOAD_IDENTITY_POOL: POOL_ID WORKLOAD_IDENTITY_PROVIDER: PROVIDER_ID SERVICE_ACCOUNT: SERVICE_ACCOUNT_EMAIL GOOGLE_APPLICATION_CREDENTIALS: $CI_BUILDS_DIR/.workload_identity.wlconfig id_tokens: WORKLOAD_IDENTITY_TOKEN: aud: https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_
OneUptime
oneuptime.com › home › blog › how to configure microsoft entra workload identity federation for github
How to Configure Microsoft Entra Workload Identity Federation for GitHub
February 16, 2026 - In this post, I will walk through the complete setup of workload identity federation between Microsoft Entra ID and GitHub Actions, from creating the app registration to configuring the GitHub workflow. The mechanism is based on OpenID Connect (OIDC) trust. Here is what happens when your GitHub Actions workflow runs: sequenceDiagram participant GH as GitHub Actions participant GHP as GitHub OIDC Provider participant Entra as Microsoft Entra ID participant AZ as Azure Resources GH->>GHP: Request OIDC token GHP->>GH: Issue short-lived JWT GH->>Entra: Exchange JWT for Azure access token Entra->>Entra: Validate JWT against federated credential Entra->>GH: Issue Azure access token GH->>AZ: Access resources with Azure token
ComputingForGeeks
computingforgeeks.com › home › set up gcp workload identity federation for github actions (2026)
GCP Workload Identity Federation for GitHub Actions (2026)
4 days ago - The attribute-condition is a CEL expression that filters which tokens are even considered, and this is the single most important security control: it is how you prevent any GitHub repository on the internet from assuming your identity. gcloud iam workload-identity-pools providers create-oidc github-provider \ --location=global \ --workload-identity-pool=github-pool \ --display-name="GitHub OIDC provider" \ --issuer-uri="https://token.actions.githubusercontent.com" \ --attribute-mapping="google.subject=assertion.sub,attribute.actor=assertion.actor,attribute.repository=assertion.repository,attribute.repository_owner=assertion.repository_owner" \ --attribute-condition="assertion.repository_owner == 'your-org-name'"
Thalassa
docs.thalassa.cloud › docs › iam › oidc › github-actions
Configuring Workload Identity Federation for GitHub Actions – Thalassa Cloud
Click “Create Identity Provider” to save the configuration. Navigate to IAM → Service Accounts in your Thalassa Cloud Console. Select the service account you want to configure for GitHub Actions federation. Click “Add Federated Identity” or “Workload Identity Federation”.
Nordcloud
nordcloud.com › home › content hub › google cloud authentication with workload identity federation for github actions
Google Cloud Authentication with Workload Identity Federation for GitHub Actions - Nordcloud
January 30, 2025 - Here, we can also define an "Attribute Condition" which is recommended **to be more secure.** This condition specifies when the identity provider should be used based on GitHub repository attributes, for example, repository name, repository owner, actor, and others. We also set up the OIDC settings by providing the correct issuer URI. resource "google_iam_workload_identity_pool_provider" "github" { project = local.project_id workload_identity_pool_id = google_iam_workload_identity_pool.github_pool.workload_identity_pool_id workload_identity_pool_provider_id = "github-provider" attribute_mapping = { "attribute.aud" = "assertion.aud" "google.subject" = "assertion.sub" "attribute.sub" = "assertion.sub" "attribute.actor" = "assertion.actor" "attribute.repository" = "assertion.repository" "attribute.repository_owner" = "assertion.repository_owner" "attribute.ref" = "assertion.ref" }
Google Cloud
cloud.google.com › blog › products › identity-security › secure-your-use-of-third-party-tools-with-identity-federation
Secure your use of third party tools with identity federation | Google Cloud Blog
July 7, 2023 - Mappings (GitHub repo → Terraform Cloud Workspace → Google Cloud Service Account → Google Cloud project ) app-repo-dev → app-ws-dev → app-sa-dev → dev-secmik · app-repo-prod → app-ws-prod → app-sa-prod → production-secmik ... In this scenario, we will create a separate workload identity pool to follow Google Cloud best practices which recommends having one-to-one mapping between external identity provider and workload identity pool to prevent subject collisions.
OneUptime
oneuptime.com › home › blog › use workload identity federation to authenticate from github actions to gcp
Use Workload Identity Federation to Authenticate from GitHub Actions to GCP
February 17, 2026 - GitHub issues a JWT that identifies the workflow, and GCP exchanges it for a short-lived access token. The identity pool is a container for external identity providers: # Create a Workload Identity Pool gcloud iam workload-identity-pools create "github-pool" \ --location="global" \ --display-name="GitHub Actions Pool" \ --description="Pool for GitHub Actions authentication" \ --project=my-project