GitHub Actions#

Private Cloud Access#

Guidance

GitHub Actions workflows MUST use temporary credentials to deploy resources or services in the target private cloud account. The root account’s or service account’s credentials MUST NOT be stored in GitHub Actions secrets or variables.

The stack gives GitHub Actions workflow jobs permission to log into private cloud using the GitHub OIDC identity provider but limits which repositories, branches, or environments can assume which roles. For more information, refer to Configure AWS Credentials for GitHub Actions, Configuring a role for GitHub OIDC identity provider, About security hardening with OpenID Connect, and Using environments for deployment.

Private Repository Access#

Guidance

GitHub Actions workflows MUST use temporary credentials with read access to the private GitHub repositories sourced by the stack.

This limits the scope of a possible supply-chain attack. For more information, refer to the configuration guide.

Manual Workflow Approvals#

Guidance

The NIAID International Program’s Change Advisory Board MUST review any infrastructure changes prior to deployment following the principle of dual authorization.

As part of the Continuous Delivery workflow, this project implements a simple, multi-person consent protocol using GitHub Issues and GitHub organization teams using the Manual Workflow Approval action. To implement this protocol using role-based access controls, the NIAID International Program’s Change Advisory Board is represented by the change-advisory-board team in the IBRSP organization on GitHub. This requires a separate GitHub App, TODO because GITHUB_TOKEN, the API token used by GitHub Actions workflows and jobs, cannot be granted permission to read organization group memberships.