Why Monk Needs Credentials
Monk follows a Bring Your Own Infrastructure (BYOI) model - everything runs on your cloud accounts and services. Monk needs credentials to provision and manage resources on your behalf. What Monk does with credentials:- Provisions cloud infrastructure (VMs, networking, storage)
- Configures managed services (databases, caches, CDNs)
- Deploys your applications
- Monitors and manages resources
- Credentials stored locally and encrypted
- Never sent to Monk servers
- Only used for actions you approve
- You can delete anytime
When Monk Asks for Credentials
Monk requests credentials automatically when needed:Cloud Provider Credentials
AWS Credentials
What you need:- AWS Access Key ID
- AWS Secret Access Key
- Optional: Default region (e.g.,
us-east-1)
- Log into AWS Console
- Navigate to IAM → Users
- Click your username (or create new user for Monk)
- Go to Security credentials tab
- Click Create access key
- Choose “Third-party service” as use case
- Copy Access Key ID and Secret Access Key
AmazonEC2FullAccess- For VM provisioningAmazonVPCFullAccess- For networkingIAMReadOnlyAccess- For checking permissions
Google Cloud Platform (GCP) Credentials
What you need:- Service Account JSON key file
- Optional: Project ID (auto-extracted from key)
- Optional: Default region (e.g.,
us-central1)
- Log into GCP Console
- Navigate to IAM & Admin → Service Accounts
- Click Create Service Account
- Name it (e.g., “monk-deployment”)
- Grant roles:
- Compute Admin - For VM management
- Service Account User - For service operations
- Click Done
- Click the service account name
- Go to Keys tab → Add Key → Create new key
- Choose JSON format
- Download the JSON file
Microsoft Azure Credentials
What you need:- Client ID (Application ID)
- Client Secret
- Tenant ID
- Subscription ID
- Resource Group name
- Log into Azure Portal
- Navigate to Azure Active Directory → App registrations
- Click New registration
- Name it (e.g., “Monk Deployment”)
- Click Register
- Copy the Application (client) ID and Directory (tenant) ID
- Go to Certificates & secrets → New client secret
- Create and copy the secret value
- Navigate to Subscriptions, copy your Subscription ID
- Create or select a Resource Group for Monk to use
- Assign Contributor role on the subscription or resource group
- JSON file containing all fields
- Individual fields in the credential form
DigitalOcean Credentials
What you need:- Personal Access Token (API token)
- Optional: Default region (e.g.,
nyc1)
- Log into DigitalOcean
- Click API in left sidebar
- Go to Tokens/Keys tab
- Click Generate New Token
- Name it (e.g., “Monk Deployment”)
- Check both Read and Write scopes
- Click Generate Token
- Copy the token immediately (shown only once)
Service Provider Credentials
MongoDB Atlas
What you need:- Organization Name
- Service Account Client ID (Public Key)
- Service Account Client Secret (Private Key)
- Log into MongoDB Atlas
- Click organization name (top left) → Organization Settings
- Go to Access Manager → API Keys tab
- Click Create API Key
- Description: “Monk Deployment”
- Set Organization Permissions:
Organization Project CreatorProject Cluster ManagerProject User Admin
- Click Next
- Copy the Public Key (Client ID) and Private Key (Client Secret)
- Save them securely - private key shown only once
- Note your Organization Name or ID from Organization Settings
- Create projects in your organization
- Provision and manage clusters
- Create database users for your applications
Redis Cloud
What you need:- Account Key
- User Key
- Database Password (Monk can generate this)
- Log into Redis Cloud console
- Navigate to Account Settings → API Keys
- Find your Account Key and User Key
- Copy both values
- Choose a strong database password (or let Monk generate one)
Netlify
What you need:- Nothing! Netlify uses OAuth.
- Tell Monk to deploy to Netlify:
- Click Connect Netlify when prompted
- Browser opens to Netlify authorization page
- Click Authorize to grant Monk access
- Automatically redirects back to IDE
- Credentials stored securely
Auth0
What you need:- Domain (Management API URL)
- Management Client ID
- Management Client Secret
- Log into Auth0 Dashboard
- Go to Applications → Applications
- Click Create Application
- Name: “Monk Management”
- Type: Machine to Machine
- Select Auth0 Management API
- Grant all permissions for Applications, Users, and Resource Servers
- Click Authorize
- Copy Domain, Client ID, and Client Secret
- Use:
your-tenant.auth0.com - Not:
https://your-tenant.auth0.com/
Vercel
What you need:- Personal Access Token
- Optional: Team ID (for team deployments)
- Log into Vercel
- Go to Settings → Tokens
- Click Create Token
- Name: “Monk Deployment”
- Scope: Choose Full Account or minimal (deploy, project read)
- Expiration: Set based on your security policy
- Click Create and copy the token
- Go to team settings to find Team ID
GitHub (for CI/CD)
What you need:- Fine-Grained Personal Access Token
- Log into GitHub
- Go to Settings → Developer settings
- Click Personal access tokens → Fine-grained tokens
- Click Generate new token
- Name: “Monk CI/CD”
- Expiration: Choose based on security needs
- Repository access: Select repositories Monk should access
- Permissions (on selected repositories):
- Actions: Read and write
- Secrets: Read and write
- Environments: Read and write
- Contents: Read
- Metadata: Read
- Click Generate token and copy it
Slack (for Watcher Alerts)
What you need:- Incoming Webhook URL
- Go to your Slack workspace settings
- Navigate to Apps → Add apps
- Search for “Incoming Webhooks” and add it
- Click Add to Slack
- Choose a channel for alerts (e.g.,
#monk-alerts) - Click Add Incoming WebHooks integration
- Copy the Webhook URL (starts with
https://hooks.slack.com/...)
Managing Your Credentials
Check Configured Credentials
Update Existing Credentials
Remove Credentials
Security Best Practices
1. Use Service Accounts
For production deployments:- AWS: Create dedicated IAM user (not your personal account)
- GCP: Use service account (not user credentials)
- Azure: Use service principal (not personal account)
- MongoDB Atlas: Create org-level API key (not personal)
2. Minimal Permissions
Grant only what Monk needs:- Don’t use admin/root credentials
- Follow principle of least privilege
- Review permissions lists above for each provider
3. Rotate Regularly
Recommended schedule:- Every 90 days for production credentials
- Immediately if potentially exposed
- When team members leave
4. Enable MFA
Enable multi-factor authentication on all provider accounts:- AWS: Enable MFA on IAM user (even for programmatic access)
- GCP: MFA on account that manages service accounts
- Azure: MFA on Azure AD account
- MongoDB Atlas: MFA on your Atlas account
5. Monitor Usage
Check provider audit logs periodically:- AWS CloudTrail
- GCP Audit Logs
- Azure Activity Log
- MongoDB Atlas Access Tracking
6. Team Access
For teams:- Use organization features to share access
- Don’t share personal credentials
- Each team member should have appropriate role
- Use service accounts for shared infrastructure
Troubleshooting
Monk says credentials are invalid
Check:- Verify credentials in provider console
- Ensure permissions/roles are granted correctly
- Look for typos or extra spaces
- For API keys - check they haven’t expired
- For service accounts - verify they’re enabled
Which credentials do I need?
Monk tells you based on what you’re deploying:- Cloud provider credentials: Needed when creating clusters (AWS, GCP, Azure, DigitalOcean)
- Service providers: Needed when using specific integrations (MongoDB Atlas, Netlify, etc.)
- Application secrets: Custom secrets your application needs (API keys, tokens)
Can I use multiple cloud accounts?
Currently, Monk supports one set of credentials per provider at a time: To use different accounts:- Update credentials before creating clusters
- Each cluster remembers which account created it
Credentials not being accepted
Common issues: AWS:- Access keys disabled in IAM console
- Missing required permissions
- Region mismatch (if specifying default region)
- Service account disabled
- JSON key file malformed
- Missing required roles
- Client secret expired
- Wrong tenant ID
- Missing Contributor role
- Token revoked
- Insufficient scopes (need Read + Write)
- API key disabled or deleted
- Wrong organization name/ID
- Insufficient permissions on API key
Related Guides
- Security - How credentials are protected
- First Deployment - Using credentials in deployment
- Cloud Infrastructure - What Monk provisions with your credentials
- MongoDB Deployment Guide - MongoDB Atlas credential usage
- Watcher Setup - Slack webhook setup

