Supported versions:
Unsupported versions:
This topic explains how to enable Workload Identity for Apigee hybrid installations on AKS and EKS platforms.
Workload identity federation lets applications running outside Google Cloud impersonate a Google Cloud Platform service account by using credentials from an external identity provider.
Using workload identity federation can help you improve security by letting applications use the authentication mechanisms that the external environment provides and can help replace service account keys.
For an overview, see Best practices for using Workload Identity Federation.
To use Workload Identity Federation with Apigee hybrid, first configure you cluster and then apply the feature to your Apigee hybrid installation.
Follow the Google Cloud instructions to Configure Workload Identity Federation for Kubernetes, with the following modifications:
create-service-account tool. See About service accounts for a list of IAM service accounts needed by Apigee hybrid.
You can see a list of IAM service accounts in your project with the following command:
gcloud iam service-accounts list --project PROJECT_ID
helm install or helm update command.
You can see the Kubernetes service accounts in your cluster with the kubectl get sa commands:
kubectl get sa -n APIGEE_NAMESPACE
kubectl get sa -n apigee-systemhttps://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
--credential-source-file parameter, for example: /var/run/service-account/token.
credential-configuration.json) into the following chart directories. These were the values you provided in step 1 under Deploy a Kubernetes workload.
apigee-datastore/apigee-envapigee-org/apigee-telemetry/
gcp:
workloadIdentity:
enabled: false # must be set to false to use Workload Identity Federation
federatedWorkloadIdentity:
enabled: true
audience: "AUDIENCE"
credentialSourceFile: "CREDENTIAL_SOURCE_FILE"
Where:
.audience in the credential configuration json file you configured in step 1 under Deploy a Kubernetes workload.
credential-source-file when you configure Workload Identity Federation with the create-cred-config command in step 1 under Deploy a Kubernetes workload. For example:
For example:
gcp:
workloadIdentity:
enabled: false
federatedWorkloadIdentity:
enabled: true
audience: "//iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/aws-pool/providers/aws-provider"
credentialSourceFile: "/var/run/service-account/token"
Replace the value of serviceAccountPath with the credential source file. This must be the path relative to the chart directory. For example:
udca: serviceAccountPath: fwi/credential-configuration.json
kubectl create secret -n apigee generic SECRET_NAME --from-file="client_secret.json=CREDENTIAL_CONFIGURATION_FILE"
For example:
kubectl create secret -n apigee generic udca-fwi-secret --from-file="client_secret.json=./fwi/credential-configuration.json"
serviceAccountRef with the new secret. For example:
udca: serviceAccountRef: udca-fwi-secret
Update the service account key, SAKEY in Vault with the credential source file. For example, for UDCA (the procedure is similar for all components):
SAKEY=$(cat ./fwi/credential-configuration.json); kubectl -n apigee exec vault-0 -- vault kv patch secret/apigee/orgsakeys udca="$SAKEY"
helm update command:
If you are using Vault for the first time with this cluster, update the apigee-operator chart:
helm upgrade operator apigee-operator/ \ --namespace apigee-system \ --atomic \ -f overrides.yaml
Update the rest of the affected charts in the following order:
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f overrides.yaml
helm upgrade telemetry apigee-telemetry/ \ --namespace apigee \ --atomic \ -f overrides.yaml
helm upgrade $ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f overrides.yaml
Update the apigee-env chart for each env, replacing ENV_NAME each time:
helm upgrade $ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
See the Apigee hybrid Helm reference for a list of components and their corresponding charts.
For more information about Workload Identity Federation and best practices, see Best practices for using workload identity federation.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-07-23 UTC.