NHI Governance (NHIG) is a discovery-and-inventory module. There’s no proxy, no session broker, no CLI required for basic operation — you feed it identities via cloud-account roles or on-host agents, then use the UI/API for attestations and reviews.
NHIG’s install story is agents and cloud roles. The server side runs inside the TigerTrust backend, and workflows (ownership attestation, access reviews) happen in the UI. Optional binaries: the same tt CLI you install for SM works against NHIG endpoints.

What ships

ComponentRuns onPurpose
NHIG engineTigerTrust backendIdentity inventory, ownership graph, review campaigns
Cloud discovery workersTigerTrust cloudPull identities from AWS/Azure/GCP over read-only roles
tt-nhig-agentCustomer hosts / K8sDiscover local service accounts, kube RBAC, systemd services
tt CLIAny workstationQuery inventory, run scans, export reports

1. Connect a cloud account (read-only)

The fastest way to populate the inventory is to grant a read-only IAM role to TigerTrust’s cloud discovery workers. Nothing to install on your side.
# Deploy via CloudFormation
aws cloudformation deploy \
  --stack-name tigertrust-nhig-reader \
  --template-url https://releases.tigertrust.io/tigertrust-nhig/aws-reader.yaml \
  --parameter-overrides ExternalId=<from UI>
The role grants iam:List*, iam:Get*, sts:GetCallerIdentity, and read on secretsmanager, kms, ssm. Attach the role ARN under Integrations → Cloud Providers.
Once the credential is registered, the first discovery scan runs immediately and repeats hourly. Discovered identities land under NHIG → Inventory with source aws, azure, or gcp.

2. Install tt-nhig-agent on hosts

The on-host agent discovers non-human identities the cloud APIs can’t see: local service accounts, Kubernetes RBAC subjects, systemd unit users, cron owners, and static kubeconfigs on operator machines.
curl -sSf https://releases.tigertrust.io/tigertrust-nhig/agent | \
  TT_API_URL=https://api.tigertrust.io \
  TT_API_KEY=ak_prod_... \
  sh
sudo systemctl enable --now tt-nhig-agent
The agent has no listening port. It polls the Collector over outbound HTTPS every 15 minutes and reports identity findings.

3. (Optional) Use tt CLI for scripted queries

If you already installed the tt CLI for Secrets Manager, the NHIG subcommands are already there:
tt nhig identities ls --source=aws --unowned
tt nhig findings ls --severity=high
tt nhig attest identity_xxx [email protected]
tt nhig reviews export --campaign=Q1-2026 --format=csv

4. What gets discovered

SourceIdentity kinds
AWSIAM users, IAM roles, IAM access keys, Secrets Manager secrets, KMS keys, SSM parameters, Lambda execution roles, ECS task roles, EKS IRSA roles
AzureService principals, managed identities, application registrations, storage account keys, Key Vault objects
GCPService accounts, keys, workload-identity bindings, IAM policy bindings on projects/folders
KubernetesServiceAccounts, ClusterRoleBindings, RoleBindings, secrets referenced by pods
On-hostLocal service accounts, systemd unit users, cron owners, kubeconfig subjects, Docker credential stores
ApplicationGitHub Apps, OAuth clients, DB service accounts, MQ users (via connectors)

NHIG overview

Inventory, ownership graph, review campaigns.

Discovery

Cloud, kubernetes, and on-host discovery paths.

Access reviews

Campaign-driven periodic attestation of every identity.

Findings

Orphaned, stale, over-privileged, and unowned identities.