Migrate from hanzo-412316 to hanzo-inc for Windows EV code signing: - Update workload identity provider to hanzo-inc (project 113591532635) - Update service account to [email protected] - Update KMS keystore path to hanzo-inc project - Add GCP_CONFIG.md with complete configuration documentation GCP Setup Completed: - Workload Identity Pool: github - OIDC Provider: hanzo-apps (restricted to hanzoai org) - Service Account: github-ksm-ev-code-signing - KMS Keyring: hanzo-apps (location: us) - KMS Key: EVCodeSigning (RSA 4096 SHA-256) Note: EV certificate private key needs to be imported to KMS for Windows signing to work. Until then, builds will fail at the signing step but all other steps will complete.
3.1 KiB
Google Cloud Configuration for Windows Code Signing
Project Information
Project ID: hanzo-inc
Project Number: 113591532635
Workload Identity Federation
Pool Name: github
Provider Name: hanzo-apps
Full Provider Path: projects/113591532635/locations/global/workloadIdentityPools/github/providers/hanzo-apps
Configuration:
- Issuer:
https://token.actions.githubusercontent.com - Repository:
hanzoai/desktop - Owner Filter:
hanzoai
Service Account
Email: [email protected]
Purpose: GitHub Actions authentication for EV code signing
Permissions:
- Workload Identity User (for GitHub Actions)
- Cloud KMS Signer/Verifier (for signing Windows binaries)
KMS Configuration
Location: us
Keyring: hanzo-apps
Key Name: EVCodeSigning
Algorithm: RSA 4096 SHA-256
Full Path: projects/hanzo-inc/locations/us/keyRings/hanzo-apps
GitHub Secrets Required
The following secrets should be configured at: https://github.com/hanzoai/desktop/settings/secrets/actions
Already Configured
- ✅
EV_CODE_SIGNING_CERTIFICATE- The public certificate (.cer file) - ✅
TAURI_PRIVATE_KEY- Tauri updater private key - ✅
TAURI_KEY_PASSWORD- Tauri updater key password
No Additional Secrets Needed
The workload identity federation handles authentication automatically - no service account keys needed!
To Import Your EV Certificate Private Key to KMS
If you have the EV certificate private key (from hanzo-412316 or elsewhere), import it:
# First, export the private key from the old location or certificate file
# (You would need access to the old hanzo-412316 project or the original cert)
# Then import to the new KMS key:
gcloud kms keys versions import \
--location=us \
--keyring=hanzo-apps \
--key=EVCodeSigning \
--algorithm=rsa-sign-pkcs1-4096-sha256 \
--import-job=YOUR_IMPORT_JOB_NAME \
--rsa-aes-wrapped-key-file=wrapped-key.bin \
--project=hanzo-inc
Note: If you don't have the private key from the old setup, you'll need to:
- Generate a new CSR from this KMS key
- Submit to your certificate authority to get a new EV certificate
- Store the new public certificate in the
EV_CODE_SIGNING_CERTIFICATEGitHub secret
Verification
Test the setup with:
# Check workload identity pool
gcloud iam workload-identity-pools describe github \
--location=global \
--project=hanzo-inc
# Check service account bindings
gcloud iam service-accounts get-iam-policy \
[email protected] \
--project=hanzo-inc
# Check KMS key
gcloud kms keys describe EVCodeSigning \
--location=us \
--keyring=hanzo-apps \
--project=hanzo-inc
Current Status
- ✅ Workload Identity Pool created
- ✅ OIDC Provider configured for GitHub Actions
- ✅ Service Account created and bound
- ✅ KMS Keyring and Key created
- ✅ Permissions granted
- ✅ Workflow updated to use hanzo-inc
- ⚠️ EV Certificate private key needs to be imported to KMS (or new cert generated)
Last updated: 2025-11-06 Configuration by: [email protected]