Architecture
How It Works
Azure Workload Identity Federation allows Azure Managed Identities to authenticate to GCP without exchanging credentials:- AKS Pod requests a token using its Kubernetes ServiceAccount
- Azure AD issues an OIDC token for the Managed Identity
- GCP Workload Identity Federation validates the Azure token
- GCP STS exchanges it for a GCP access token
- 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
kubectlconfigured 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:Step 5: Store GCP Credential Configuration
After the Bifrost team configures access, they will provide a credential configuration. Store it as a ConfigMap: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
- Check imagePullSecret exists:
kubectl get secret ar-pull-secret -n bifrost - Verify CronJob succeeded:
kubectl get jobs -n bifrost - Check Azure Workload Identity: Ensure labels are set correctly
Token Exchange Failures
Azure Workload Identity Issues
Summary
Next Steps
- Configure Bifrost settings for your use case
- Set up observability for monitoring
- Enable clustering for high availability

