Skip to main content

GitHub OIDC

GitHub Actions workflows authenticate with AWS using OpenID Connect (OIDC). No long-lived access keys or secrets are stored in GitHub.

How it works

IAM roles

github-oidc-workflow-role — Upload role

Used by any Neulabs repository on the main branch to upload files to S3.

PermissionScope
s3:ListBucket, s3:GetBucketLocationneulabs-docs-swamp bucket
s3:GetObject, s3:PutObject, s3:DeleteObjectAll objects in neulabs-docs-swamp

Trust condition: any repo in the neulabscom GitHub org, branch main.

github-oidc-deploy-role — Deploy role

Used exclusively by the neulabs-docubuilder repository to deploy CDK stacks.

PermissionScope
cloudformation:*All resources
iam:PassRoleAll resources
s3:*All resources
ssm:GetParameter*, ssm:PutParameter*All resources
sts:AssumeRoleOnly cdk-* roles in the account

Trust condition: only neulabscom/neulabs-docubuilder repo, branch main.

GitHub variables required

VariableUsed byValue
AWS_DOCS_ROLE_TO_ASSUMEupload-bootstrap.yml, upload-docs.ymlARN of github-oidc-workflow-role
AWS_DEPLOY_ROLE_ASSUMEdeploy-infra.ymlARN of github-oidc-deploy-role
AWS_REGIONAll workflowseu-west-1