To use the Individual Service API approach, you must create a service account and grant it project-level permissions for each specific service you wish to scan.
1. Create Service Account
gcloud iam service-accounts create cloudlist-sa \
--display-name="CloudList Individual Services" \
--description="Service account for individual service API discovery"
SA_EMAIL="cloudlist-sa@YOUR-PROJECT-ID.iam.gserviceaccount.com"
PROJECT_ID="YOUR-PROJECT-ID"
2. Grant Project-Level Permissions
Grant the service account the specific viewer roles required for the services you want to discover. For example:
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SA_EMAIL" \
--role="roles/compute.viewer"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SA_EMAIL" \
--role="roles/dns.reader"
# ... repeat for other services
3. Configuration
Unlike the Organization-Level approach, do not provide an organization_id. The absence of this key triggers the Individual Service API mode.
- provider: gcp
id: project-discovery
# No organization_id = uses individual service APIs
gcp_service_account_key: |
{
"type": "service_account",
"project_id": "your-project-id",
...
}