Security Checklist

Access Revocation Checklist

Complete step-by-step checklist for revoking contractor and vendor access when an engagement ends. Covers credentials, repositories, API keys, VPNs, cloud services, and documentation requirements.

Time-Sensitive Security Operation

Access revocation should begin immediately upon engagement termination. Every hour of delay increases the risk of unauthorized data access or exfiltration. Critical credentials (cloud admin, database, production SSH) must be revoked within 1 hour.

Revocation Timeline

Within 1 Hour

Critical Access

Cloud admin, database, production SSH, payment systems

Within 4 Hours

Code & Repos

GitHub/GitLab access, CI/CD pipelines, package registries

Within 24 Hours

Communications

Slack, email, project management tools, documentation

Within 48 Hours

Verification

Audit logs review, confirmation collection, documentation

Common Platforms to Check

GitHub

Repos, Actions, Packages

GitLab

Projects, CI/CD, Registry

AWS

IAM, Console, CLI

Google Cloud

IAM, Firebase, GKE

Azure

AD, DevOps, Portal

Slack

Workspace, Channels

Jira/Confluence

Projects, Docs, Boards

Databases

Direct access, Read replicas

Cloud & Infrastructure Access

AWS, GCP, Azure, DigitalOcean, Vercel, Heroku

0/8

Delete IAM user or disable console/programmatic access. Rotate any access keys they may have copied.

# Delete IAM user
aws iam delete-user --user-name contractor-name

# Or disable access keys
aws iam update-access-key --user-name contractor-name --access-key-id AKIA... --status Inactive
Critical

Remove all IAM bindings for the user across all projects they had access to.

gcloud projects remove-iam-policy-binding PROJECT_ID \
  --member="user:contractor@email.com" \
  --role="roles/editor"
Critical

Remove user from Azure AD and any role assignments in subscriptions.

Critical

Remove from team and revoke any personal access tokens created for deployments.

High

Remove from all apps and pipelines. Check for any API keys created.

High

Remove from team and check for any API tokens or SSH keys added to droplets.

High

Delete RBAC bindings, remove from kubeconfig, revoke service account tokens.

kubectl delete clusterrolebinding contractor-binding
kubectl delete rolebinding contractor-binding -n namespace
Critical

Rotate any secrets in AWS Secrets Manager, GCP Secret Manager, or HashiCorp Vault that contractor had access to.

Critical

Code Repositories & CI/CD

GitHub, GitLab, Bitbucket, CircleCI, Jenkins

0/7

Remove from org, all teams, and revoke any pending invitations. Check for deploy keys they may have added.

Critical

Remove from all groups and projects. Revoke personal access tokens if you have admin access.

Critical

Remove from all workspaces and repository access groups.

Critical

Remove from CircleCI, GitHub Actions, GitLab CI, Jenkins. Rotate any secrets stored in CI environment variables.

Critical

Audit all deploy keys and webhooks added during the engagement. Remove any that were created by the contractor.

High

Remove from npm org, PyPI, Docker Hub, or any private registries. Rotate publish tokens.

High

Review recent activity for any suspicious commits, especially to CI configs or secret files.

Medium

Database & Data Access

PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch

0/5

Drop database users or revoke all privileges. Change passwords for any shared accounts.

-- PostgreSQL
DROP USER contractor_user;

-- MySQL
DROP USER 'contractor'@'%';
Critical

If contractor had access to connection strings, rotate database passwords and update all applications.

Critical

Remove users from MongoDB, revoke Redis AUTH credentials, update ACL rules.

Critical

Remove access from tools like pgAdmin, DBeaver Cloud, MongoDB Atlas, or any shared database management platforms.

High

Check for any unusual queries, bulk exports, or schema changes in the days before termination.

Medium

SSH & Server Access

SSH keys, VPN accounts, bastion hosts, jump servers

0/5

Remove contractor's public key from ~/.ssh/authorized_keys on all servers they had access to.

# Remove specific key from authorized_keys
grep -v "contractor@email.com" ~/.ssh/authorized_keys > temp && mv temp ~/.ssh/authorized_keys
Critical

Disable VPN account, revoke certificates, remove from VPN user groups (OpenVPN, WireGuard, Tailscale, etc.).

Critical

Remove user account from bastion hosts. Update any shared jump host configurations.

High

If any shared/service SSH keys were accessible, rotate them and update all systems using them.

High

Remove contractor's IP addresses from firewall rules, AWS security groups, and any IP-based access controls.

High

API Keys & Third-Party Services

Stripe, SendGrid, Twilio, Auth0, Firebase

0/6

Roll API keys in Stripe dashboard. Update all applications using the old keys.

Critical

Revoke old API keys and create new ones. Old keys could be used for phishing campaigns.

High

Rotate API keys, remove from subaccounts. Compromised Twilio access can be expensive.

High

Remove user from identity provider admin access. Revoke any machine-to-machine credentials they created.

High

Remove from Firebase console access. Check for any service account keys created.

High

Review all OAuth connections and API integrations. Revoke any that were set up by contractor.

Medium

Communication & Collaboration

Slack, Email, Notion, Confluence, Figma

0/6

Deactivate account. Consider if you need to export their DMs for records before removal.

High

Disable email account if one was provisioned. Set up forwarding to manager if needed.

High

Remove from workspace. Check for any pages they own that need to be transferred.

Medium

Deactivate account. Reassign any open tickets assigned to them.

Medium

Remove from team. Transfer ownership of any files they created.

Medium

Revoke access to shared folders. Check for any files they may have downloaded.

Medium

Documentation Requirements

Need an NDA with Built-in Revocation Provisions?

Generate a comprehensive software NDA that clearly defines access termination procedures and requirements.

Start Free Generator