---
title: "Ephemeral GitHub Actions Runner Isolation | 9apes Security"
description: "Review 9apes job isolation, ephemeral Firecracker microVMs, cache boundaries, and GitHub App permissions before moving security-sensitive CI workflows."
url: https://9apes.com/security/
---

# Ephemeral GitHub Actions Runner Isolation | 9apes Security

Your jobs run in ephemeral Firecracker microVMs, each with its own guest kernel. Every token is scoped. Every microVM is destroyed when the job ends.

## Compliance

- SOC 2 in progress

- ISO/IEC 27001:2022 data centers

- Quarterly pen testing

- GitHub SSO only

### How does 9apes isolate GitHub Actions jobs?

9apes documents a Firecracker microVM for each job, with its own guest kernel. The microVM is destroyed when the job finishes. That job boundary is separate from intentionally persisted caches and artifacts, whose access controls and retention need their own review. A microVM per job does not mean a dedicated physical server per job or customer.

### Does ephemeral compute remove every security risk?

No. Fresh compute limits state carried over from a previous job, but it does not remove a credential deliberately supplied to the current job or restrict every external system the job can reach. Review token permissions, untrusted pull requests, network access, caches, and artifact handling together.

[The untrusted-PR guide explains these boundaries with a controlled example.](https://9apes.com/blog/self-hosted-runner-untrusted-pr-security/)

### Is 9apes SOC 2 certified?

The current security page describes SOC 2 as in progress. It separately describes ISO/IEC 27001:2022 certified data centers. Data-center certification should not be read as certification of the entire 9apes service. Review the published permissions and contact the security team with the requirements of your workflow.

## How jobs are isolated

- **Job isolation** — Every job runs in an isolated Firecracker microVM with its own guest kernel on bare-metal infrastructure, protected by a private VPN. The microVM is destroyed when the job completes. Intentionally persisted caches and artifacts have separate access controls and retention.

- **JIT tokens** — For each job, we generate a just-in-time (JIT) token scoped to that job. It expires after one hour. Our GitHub integration has no ability to directly access organization or repository-level secrets.

- **Cache security** — Cached artifacts are stored on Cloudflare R2. Access is authenticated and audited. Data is encrypted and isolated by organization. Persistent storage is separate from the ephemeral job microVM.

- **Login & access** — Login is exclusively through GitHub SSO. Once integrated, GitHub forwards job requests to us. We never initiate access to your repositories.

- **Compliance** — SOC 2 is in progress. Hardware runs in ISO/IEC 27001:2022 certified data centers; this does not certify the entire 9apes service. We answer security questionnaires and pay hackers to pen test our system every quarter.

## GitHub App permissions

| Permission | Why 9apes asks for it |

| --- | --- |

| Read access to members and metadata | To list users in our settings page |

| Read and write access to actions, code, pull requests, and workflows | For our migration wizard to make a pull request with all the required code changes |

| Read and write access to organization self-hosted runners | To generate just-in-time (JIT) tokens and enable our managed runners to run your jobs |
