| Registry | Credentials |
|---|---|
| Docker Hub | Username + password / access token |
| AWS ECR | Access key ID + secret access key + region + account ID |
| Google Container Registry (GCR) | Service account JSON + project ID |
| Azure Container Registry (ACR) | Service principal (client ID + secret + tenant ID) + registry name |
| GitLab Container Registry | Personal access token (optional project / group ID, self-hosted URL) |
| GitHub Container Registry (GHCR) | GitHub token with read:packages + org / username |
| Quay.io | OAuth token + organization |
| JFrog Artifactory | Artifactory URL + Docker repository + access token |
| Harbor / self-hosted (OCI V2) | URL + username + password |
TigerGate’s scanners pull over the public internet. Registry URLs that resolve to private, loopback, or link-local addresses are rejected. The pull comes from your organization’s region —
api.tigergate.dev on us1 — so allow-list that region’s API host on the registry side. If your registry isn’t reachable from it, push to a reachable mirror or contact support.Which API host do I allow-list?
Which API host do I allow-list?
Match the host in your browser’s address bar, while signed in, against the Dashboard column; allow-list the API host on the same row. Allow-listing the wrong region’s host fails closed — pulls are refused and every image reports as unscanned.
Docker Hub
Create a Docker Hub access token
Sign in → Account Settings → Security → New Access Token.
- Description:
TigerGate scanner - Access permissions: Public Repo Read (private repos: Read)
AWS ECR
TigerGate authenticates to ECR with an IAM access key pair. There is no cross-account role flow — supply a key and secret for an IAM user (or a temporary session) with pull access.Create an IAM user with ECR read permissions
Attach this permissions policy to the IAM user whose access key you will use:
Google Container Registry (GCR)
Create a service account
GCP console → IAM & Admin → Service Accounts → Create.Role:
roles/storage.objectViewer (GCR) — TigerGate reads with the devstorage.read_only scope.Azure Container Registry (ACR)
GitLab Container Registry
Create a personal access token
GitLab → Preferences → Access Tokens (or a project/group deploy token). Scope:
read_api / read_registry.GitHub Container Registry (GHCR)
Create a GitHub PAT
GitHub → Settings → Developer settings → Personal access tokens (classic) → Generate new token.Scope:
read:packages. (For private packages, also repo for the repos that own those packages.)Quay.io
Create an OAuth token
Quay → your organization → Applications → create an application → generate an OAuth Access Token with repository read scope.
JFrog Artifactory
Generate an access token
Artifactory → User Profile → Identity Tokens → Generate. An API key or username/password also work.
Harbor / self-hosted (generic OCI V2)
Any registry that speaks the Docker Registry V2 / OCI Distribution Spec — Harbor and other self-hosted registries — connects through the Harbor type with basic auth:Scanning connected images
TigerGate scans images without a push webhook. Three paths trigger scans:- On connect / Sync — connecting a registry (and the Sync button on each row) discovers repositories and tags. When your org’s auto-scan on connect setting is enabled, the latest tag of each repository is scanned automatically.
- Auto-scan — the per-registry Enable automatic image scanning toggle marks a registry for automated scanning.
- Schedules — open a registry (Edit) and use the Schedules section to add cron schedules scoped to the whole registry, a single image, an image:tag, or a repository-name pattern.
Rotation
PATs and access tokens expire. To rotate:- Issue a new token at the registry side.
- Integrations → Container Registry → Edit → paste the new secret → Update Registry. Blank secret fields keep the stored value, so you only re-enter what changed.
- Revoke the old token at the registry side.