Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AWS Account and Profile Map

The single reference for HungryHub’s AWS accounts, their SSO profiles, the Kubernetes cluster contexts, and the home-vs-genai OIDC split. This information was previously scattered across the workspace AGENTS.md, the Relay bot doc, and the Terraform doc — consolidate here and link back.

Always verify the active profile/context before running any command. aws sts get-caller-identity --profile <name> for AWS, kubectl config current-context for Kubernetes.


The four AWS accounts

ProfileAccount IDPurposeDefault region
sandbox079994049689Main infrastructure — dev/sandbox (home)ap-southeast-1
prod202255947274Main infrastructure — production (home)ap-southeast-1
genai-sandbox965444437277HungryHub AI — dev (genai)us-east-1
genai-prod512438352490HungryHub AI — production (genai)us-east-1

SSO start URL: https://hungryhub-sso.awsapps.com/start. The permission set (SSO role) each profile assumes depends on the teammate’s access — run aws sts get-caller-identity --profile <name> to see the role you actually have in a given account.

aws configure list-profiles                       # list configured SSO profiles
aws sts get-caller-identity --profile <name>      # confirm account + role
aws sso login --profile <name>                    # refresh an expired session

Kubernetes cluster contexts

Context nameProviderAccount / OrgEnvironment
arn:aws:eks:ap-southeast-1:079994049689:cluster/eks-dev-262AWS EKSsandbox (079994049689)Dev (default)
arn:aws:eks:ap-southeast-1:202255947274:cluster/eks-prod-21AWS EKSprod (202255947274)Production
do-sgp1-productionDigitalOceansgp1Production
do-sgp1-stagingDigitalOceansgp1Staging
kubectl config get-contexts          # list contexts
kubectl config current-context       # show active
kubectl config use-context <name>    # switch

The default context is the EKS dev cluster. Always set the context explicitly before running commands; never assume.

The home-vs-genai split

The four accounts pair into two groups, and which repo manages which is the single most-confused thing about this layout:

GroupAccountsRegionPrimary repos
Homesandbox / prodap-southeast-1hungryhub-terraform, hungry-hub-iam
Genaigenai-sandbox / genai-produs-east-1hungryhub-ai, hh-relay

The one exception: the relay-ci stack in hungry-hub-iam manages the relay-eval-ci OIDC role in the genai accounts, even though the rest of that repo is home-account. This is deliberate — see Relay CI Stack Pattern.

Secret wiring per stack

hungry-hub-iam/.github/workflows/terraform-stacks.yml selects the OIDC role and state backend per stack:

Stack groupSecrets readPoints at
Home stacks (github-oidc, oidc-permissions, secrets-manager-layout, secrets-manager-access, engineer-access)OIDC_ROLE_ARN_{PROD,DEV}, S3_BUCKET_{PROD,DEV}, DYNAMO_TABLE_{PROD,DEV}, AWS_ACCOUNT_ID_{PROD,DEV}, OIDC_PROVIDER_ARN_{PROD,DEV}prod 202255947274 / sandbox 079994049689
relay-ci (genai exception)the _RELAY_CI_* variants of all of the abovegenai-prod 512438352490 / genai-sandbox 965444437277