Skip to main content
Bifrost Enterprise images for Azure customers are distributed through GCP Artifact Registry, using Azure Workload Identity Federation for secure, credential-less authentication.

Architecture

How It Works

Azure Workload Identity Federation allows Azure Managed Identities to authenticate to GCP without exchanging credentials:
  1. AKS Pod requests a token using its Kubernetes ServiceAccount
  2. Azure AD issues an OIDC token for the Managed Identity
  3. GCP Workload Identity Federation validates the Azure token
  4. GCP STS exchanges it for a GCP access token
  5. Pod uses the GCP token to pull images from Artifact Registry

Prerequisites

  • AKS cluster (v1.24+) with Workload Identity enabled
  • Azure CLI configured with appropriate permissions
  • kubectl configured for your AKS cluster
  • Your Azure Tenant ID and Managed Identity Client ID provided to Bifrost team
Contact the Bifrost team with your Azure Tenant ID and Managed Identity Client IDs to get access configured.

Step 1: Enable Workload Identity on AKS

If not already enabled, enable Workload Identity on your AKS cluster:

Step 2: Create Azure Managed Identity

Step 3: Create Federated Credential

Link the Kubernetes ServiceAccount to the Azure Managed Identity:

Step 4: Provide Details to Bifrost Team

Send the following information to the Bifrost team:
The Bifrost team will configure GCP Workload Identity Federation to trust your Azure Managed Identity.

Step 5: Store GCP Credential Configuration

After the Bifrost team configures access, they will provide a credential configuration. Store it as a ConfigMap:
The Bifrost team will provide the exact values for BIFROST_PROJECT_NUMBER, YOUR_HUB_SLUG, and BIFROST_SA.

Step 6: Create Kubernetes ServiceAccount

Step 7: Create Image Pull Secret with Token Refresh

Create a CronJob to refresh the imagePullSecret using the federated identity:

Step 8: Deploy Bifrost

Bootstrap: Initial Secret Creation

Before the first deployment, manually trigger the CronJob or create the secret:

Verifying Access

Check Workload Identity Configuration

Verify Token Exchange

Troubleshooting

ImagePullBackOff Errors

  1. Check imagePullSecret exists: kubectl get secret ar-pull-secret -n bifrost
  2. Verify CronJob succeeded: kubectl get jobs -n bifrost
  3. Check Azure Workload Identity: Ensure labels are set correctly

Token Exchange Failures

Azure Workload Identity Issues

Summary

Next Steps