Name = "Google Cloud" Description = '''''' URL = "https://cloud.google.com" Code = "gcloud" Since = "v0.3.0" Example = ''' # Using a service account file GCE_PROJECT="gc-project-id" \ GCE_SERVICE_ACCOUNT_FILE="/path/to/svc/account/file.json" \ lego --email you@example.com --dns gcloud -d '*.example.com' -d example.com run # Using default credentials with impersonation GCE_PROJECT="gc-project-id" \ GCE_IMPERSONATE_SERVICE_ACCOUNT="target-sa@gc-project-id.iam.gserviceaccount.com" \ lego --email you@example.com --dns gcloud -d '*.example.com' -d example.com run # Using service account key with impersonation GCE_PROJECT="gc-project-id" \ GCE_SERVICE_ACCOUNT_FILE="/path/to/svc/account/file.json" \ GCE_IMPERSONATE_SERVICE_ACCOUNT="target-sa@gc-project-id.iam.gserviceaccount.com" \ lego --email you@example.com --dns gcloud -d '*.example.com' -d example.com run ''' Additional = ''' Supports service account impersonation to access Google Cloud DNS resources across different projects or with restricted permissions. When using impersonation, the source service account must have: 1. The "Service Account Token Creator" role on the source service account 2. The "https://www.googleapis.com/auth/cloud-platform" scope ''' [Configuration] [Configuration.Credentials] GCE_PROJECT = "Project name (by default, the project name is auto-detected by using the metadata service)" 'Application Default Credentials' = "[Documentation](https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application)" GCE_SERVICE_ACCOUNT_FILE = "Account file path" GCE_SERVICE_ACCOUNT = "Account" [Configuration.Additional] GCE_ALLOW_PRIVATE_ZONE = "Allows requested domain to be in private DNS zone, works only with a private ACME server (by default: false)" GCE_ZONE_ID = "Allows to skip the automatic detection of the zone" GCE_IMPERSONATE_SERVICE_ACCOUNT = "Service account email to impersonate" GCE_POLLING_INTERVAL = "Time between DNS propagation check in seconds (Default: 5)" GCE_PROPAGATION_TIMEOUT = "Maximum waiting time for DNS propagation in seconds (Default: 180)" GCE_TTL = "The TTL of the TXT record used for the DNS challenge in seconds (Default: 120)" [Links] API = "https://cloud.google.com/dns/api/v1/" GoClient = "https://github.com/googleapis/google-api-go-client"