agentleFS
TeddyAlbinaTeddyAlbina/skills/auditing-cloud-cluster-security/SKILL.md

auditing-cloud-cluster-security

Skill2 starsChanged 27 days agoMITView on GitHub

Audits the security posture of a CockroachDB cluster (Cloud or self-hosted) across network, authentication, authorization, encryption, audit logging, and backup dimensions. Use when assessing cluster security readiness, preparing for compliance reviews, or investigating security configuration gaps.

2 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

43 rules. About 0 are common, 36 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈36

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read-only audit: All operations are read-only.

    line 14
  2. Distinctive:

    Run the following checks to determine which tools are available.

    line 65
  3. Very specific:

    If cockroach sql is unavailable, warn the user that the audit will be limited to ccloud-only checks and recommend resolving connectivity …

    line 97
  4. Distinctive:

    Cloud clusters: Check all three layers based on cluster tier:

    line 154
  5. Very specific:

    FAIL: if 0.0.0.0/0 is in the IP allowlist (open to all traffic)

    line 175
  6. Very specific:

    WARN: if allowlist contains broad CIDR ranges (e.g., /8 or /16)

    line 176
  7. Distinctive:

    WARN: if no private endpoints configured on Advanced plan

    line 177
  8. Distinctive:

    INFO: if private endpoints not available on current tier

    line 178
  9. Distinctive:

    PASS: if allowlist contains only specific, narrow CIDR ranges or private endpoints are configured

    line 179
  10. Distinctive:

    Self-hosted clusters: Check HBA configuration as the primary network-level auth control:

    line 181
  11. Distinctive:

    WARN: if HBA configuration is empty or default — network security may be managed externally (firewalls, security groups, VPCs), so this is …

    line 188
  12. Distinctive:

    PASS: if HBA rules restrict connections by IP, subnet, or auth method

    line 189
  13. Distinctive:

    FAIL: if SSO is not configured

    line 196
  14. Distinctive:

    PASS: if SAML or OIDC SSO is enabled and enforced

    line 197
  15. Very specific:

    FAIL: if server.oidc_authentication.enabled is false

    line 205
  16. Distinctive:

    PASS: if enabled with a valid provider URL

    line 206
  17. Very specific:

    PASS: if HBA contains entries with ldap auth method

    line 214
  18. Distinctive:

    INFO: if LDAP is not configured (OIDC may be used instead)

    line 215
  19. Distinctive:

    FAIL: if SCIM endpoint is not enabled.

    line 218
  20. Distinctive:

    FAIL: if identity mapping is not configured

    line 225
  21. Distinctive:

    PASS: if identity mapping routes IdP identities to SQL users

    line 226
  22. Distinctive:

    FAIL: if more than 5 users have admin role

    line 267
  23. Distinctive:

    FAIL: if PUBLIC has SELECT, INSERT, UPDATE, or DELETE on application tables

    line 268
  24. Distinctive:

    WARN: if admin count is between 3 and 5

    line 269
  25. Distinctive:

    PASS: if admin count is 1-2 and PUBLIC has minimal grants

    line 270
  26. Distinctive:

    FAIL: if not enabled and cluster stores sensitive data

    line 295
  27. Distinctive:

    WARN: if encryption status cannot be determined

    line 296
  28. Distinctive:

    PASS: if enabled with AES-256

    line 297
  29. Distinctive:

    TLS (Cloud): Always PASS — enforced on all connections.

    line 299
  30. Distinctive:

    TLS (self-hosted): Verify certificate validity and expiry (NOT auto-PASS):

    line 301
  31. Distinctive:

    FAIL: if any certificate expires within 30 days

    line 306
  32. Distinctive:

    WARN: if any certificate expires within 90 days

    line 307
  33. Distinctive:

    PASS: if all certificates valid with 90+ days remaining

    line 308
  34. Very specific:

    FAIL: if sql.log.user_audit is empty and sql.log.admin_audit.enabled is false

    line 340
  35. Distinctive:

    WARN: if only admin audit is enabled but user audit is not configured

    line 341
  36. Distinctive:

    PASS: if both user and admin audit logging are configured

    line 342
  37. Distinctive:

    Self-hosted clusters: No managed backups — verify self-managed backup schedules:

    line 354
  38. Distinctive:

    FAIL: if no backup schedules exist

    line 361
  39. Distinctive:

    WARN: if schedules exist but show errors or haven't run recently

    line 362
  40. Distinctive:

    PASS: if schedules are active and running

    line 363
  41. Distinctive:

    All operations are read-only: No cluster settings, users, roles, or network configurations are modified during the audit.

    line 514
  42. Distinctive:

    SQL queries use SHOW and SELECT only: No DDL or DML statements are executed.

    line 515
  43. Very specific:

    ccloud commands are read-only: Only list, info, and auth subcommands are used.

    line 516

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Auditing Cloud Cluster Security

Assesses the security posture of a CockroachDB Cloud cluster by examining network access controls, authentication and SSO configuration, user authorization, encryption, audit logging, and backup status. Produces a structured PASS/WARN/FAIL report with remediation links for each finding. Supports both CockroachDB Cloud and self-hosted clusters — checks that don't apply to the deployment model are marked N/A.

Read-only audit: All operations are read-only. No cluster state is modified during the assessment.

When to Use This Skill

  • Preparing for SOC 2, HIPAA, or other compliance reviews
  • Conducting periodic security posture assessments
  • Onboarding a new production cluster and validating security baseline
  • Investigating security configuration gaps after an incident
  • Reviewing cluster security before a major release or customer onboarding

Prerequisites

Tools:

ToolCloudSelf-HostedPurpose
ccloud CLIRequiredN/ACluster metadata, network config, CMEK
cockroach sqlRequiredRequiredSQL security checks
openssl (v3+)RecommendedRecommendedTLS/PQC cipher probing (-starttls postgres)
sslyzeOptionalOptionalComprehensive TLS enumeration (--starttls postgres)

Credentials:

CredentialCloudSelf-Hosted
ccloud auth login sessionRequiredN/A
SQL connection stringRequired (from ccloud cluster sql --url)Required (user provides)
DB username/passwordRequired (admin or VIEWACTIVITY)Required (admin or VIEWACTIVITY)
TLS certificates directoryN/A (managed)Required for cert expiry checks
CA certificate fileN/ARequired for openssl TLS probing

See permissions reference for detailed privilege requirements.

Security Audit Dimensions

DimensionToolChecks
Network SecurityccloudIP allowlists, private endpoints
Authentication & SSOccloud + sqlCloud Console SSO, Database SSO (Cluster SSO), SCIM 2.0 provisioning, auto user provisioning
AuthorizationsqlUsers, roles, admin grants, PUBLIC privileges
Encryptionccloud + sqlCMEK status, TLS settings
Audit LoggingsqlAudit log config, session logging
Backup & Recoveryccloud + sqlManaged backup status, self-managed backup schedules
Cryptographic Posturesql + openssl + sslyzeTLS version, PQC hybrid cipher support, encryption key size
Cluster Contextccloud + user inputDeployment model, environment, compliance, data sensitivity
Cluster ConfigurationccloudVersion, plan, regions

Assessment Workflow

Step 0: Verify Prerequisites

Run the following checks to determine which tools are available. The audit proceeds regardless — missing tools degrade specific checks rather than blocking the audit.

Cloud clusters:

# Verify ccloud authentication
ccloud auth whoami

# Verify cluster access
ccloud cluster list -o json

Both deployment models:

# Verify SQL connectivity
cockroach sql --url "<connection-string>" -e "SELECT current_user();"

# Check openssl version (v3+ recommended for PQC probes)
openssl version

# Check sslyze availability
which sslyze && sslyze --version

Report tool availability before proceeding:

ToolStatusImpact if Missing
ccloudAvailable / MissingNetwork, CMEK, and managed backup checks skipped (Cloud only)
cockroach sqlAvailable / MissingAll SQL-based checks skipped — audit severely limited
openssl (v3+)Available / MissingTLS cipher and PQC probing degraded
sslyzeAvailable / MissingComprehensive TLS enumeration unavailable; falls back to openssl

If cockroach sql is unavailable, warn the user that the audit will be limited to ccloud-only checks and recommend resolving connectivity before continuing. For missing optional tools (openssl, sslyze), note which checks will produce incomplete results and proceed.

Step 1: Gather Cluster Metadata and Confirm Audit Context

Cloud clusters:

# List clusters and identify target
ccloud cluster list -o json

# Get cluster details (use cluster name or ID)
ccloud cluster info <cluster-name> -o json

Self-hosted clusters:

# Gather metadata via SQL and cockroach CLI
cockroach node status --certs-dir=<certs-dir> --host=<host>
cockroach sql --url "<connection-string>" -e "SELECT version();"

Record: cluster ID, plan type (Basic/Standard/Advanced or self-hosted), cloud provider, regions, CockroachDB version. See ccloud commands reference for Cloud CLI syntax.

Confirm audit context: Present auto-detected metadata (cluster name, version, provider, regions, plan) and ask the user to confirm and provide:

  1. Deployment model: CockroachDB Cloud / self-hosted
  2. Environment: production / staging / development / sandbox
  3. Compliance frameworks: SOC 2, HIPAA, PCI DSS, ISO 27001, GDPR, or none
  4. Data sensitivity: PII/PHI, financial/payment, internal business, public/non-sensitive

Defaults (if user confirms without changes): Cloud, production, no compliance, internal business data. Deployment model determines check applicability (below). Environment and compliance calibrate severity (see Severity Adjustments).

Check Applicability by Deployment Model

CheckCloudSelf-Hosted
IP allowlists (ccloud)Yes (all tiers)N/A — managed externally via firewall/VPC
Ingress Private Endpoints (ccloud)Yes (Standard+, Advanced)N/A
Egress Private Endpoints (ccloud)Yes (Advanced)N/A
HBA configuration (SQL)YesYes — primary network-level auth control
Cloud Console SSOYesN/A
SCIM 2.0YesN/A
Database SSO (OIDC)YesYes
Database SSO (LDAP/AD)YesYes
Users & Roles (SQL)YesYes
Privileges (SQL)YesYes
CMEK (ccloud)YesN/A — check Enterprise Encryption instead
Enterprise EncryptionN/AYes — verify encryption-at-rest via store config
TLSAlways PASS (enforced)Check — verify certs, expiry, config
TLS 1.3 / PQC / Key SizeYes (INFO)Yes (INFO)
Audit Logging (SQL)YesYes
Managed Backups (ccloud)Yes (automatic)N/A
Self-Managed Backups (SQL)Optional (if managed backups present)Yes — verify backup schedules exist and are running

Skip N/A checks for the detected deployment model and mark them as [N/A] in the report rather than PASS/FAIL.

Step 2: Assess Network Security

Cloud clusters: Check all three layers based on cluster tier:

# IP allowlists (all tiers)
ccloud cluster networking allowlist list <cluster-id> -o json

# Ingress private endpoints (Standard+, Advanced) — via Cloud Console or API
# Cloud Console: Networking > Private endpoint tab
# API: GET /api/v1/clusters/{cluster_id}/networking/private-endpoint-connections

# Egress private endpoints (Advanced only) — via Cloud Console or API
# Cloud Console: Networking > Egress tab
# API: GET /api/v1/clusters/{cluster_id}/networking/egress-endpoints
-- HBA configuration (all tiers)
SHOW CLUSTER SETTING server.host_based_authentication.configuration;

Evaluate (Cloud):

  • FAIL if 0.0.0.0/0 is in the IP allowlist (open to all traffic)
  • WARN if allowlist contains broad CIDR ranges (e.g., /8 or /16)
  • WARN if no private endpoints configured on Advanced plan
  • INFO if private endpoints not available on current tier
  • PASS if allowlist contains only specific, narrow CIDR ranges or private endpoints are configured

Self-hosted clusters: Check HBA configuration as the primary network-level auth control:

SHOW CLUSTER SETTING server.host_based_authentication.configuration;

Evaluate (self-hosted):

  • WARN if HBA configuration is empty or default — network security may be managed externally (firewalls, security groups, VPCs), so this is WARN not FAIL
  • PASS if HBA rules restrict connections by IP, subnet, or auth method

Step 3: Check SSO and SCIM Configuration

For self-hosted clusters, skip Cloud Console SSO and SCIM checks (N/A). Database SSO checks still apply — check OIDC and/or LDAP/AD configuration.

Cloud Console SSO (Cloud Console UI > Organization Settings > Authentication — not via ccloud CLI):

  • FAIL if SSO is not configured
  • PASS if SAML or OIDC SSO is enabled and enforced

Database SSO (Cluster SSO) — OIDC:

-- Check if Cluster SSO is enabled for SQL authentication
SHOW CLUSTER SETTING server.oidc_authentication.enabled;
SHOW CLUSTER SETTING server.oidc_authentication.provider_url;
  • FAIL if server.oidc_authentication.enabled is false
  • PASS if enabled with a valid provider URL

Database SSO — LDAP/AD (Cloud and self-hosted):

-- Check if LDAP authentication is configured via HBA
SHOW CLUSTER SETTING server.host_based_authentication.configuration;
-- Look for ldap auth method entries in the HBA configuration
  • PASS if HBA contains entries with ldap auth method
  • INFO if LDAP is not configured (OIDC may be used instead)

SCIM 2.0 (Cloud Console UI > Organization Settings > Authentication > SCIM):

  • FAIL if SCIM endpoint is not enabled; PASS if enabled and connected to an IdP

Auto user provisioning on Database:

-- Check if SQL users are automatically provisioned from SSO identities
SHOW CLUSTER SETTING server.identity_map.configuration;
  • FAIL if identity mapping is not configured
  • PASS if identity mapping routes IdP identities to SQL users

Step 4: Audit Users and Roles

-- List all users and their roles
SELECT
  username,
  options,
  member_of
FROM [SHOW USERS]
ORDER BY username;

See SQL queries reference for additional role audit queries.

Step 5: Check Privileges

-- Count admin role members
SELECT COUNT(*) AS admin_count
FROM [SHOW GRANTS ON ROLE admin];

-- Check PUBLIC role privileges on the current database
-- Note: SHOW GRANTS FOR public is scoped to the current database.
-- Run this query from each application database to get full coverage.
SELECT
  database_name,
  schema_name,
  object_name,
  object_type,
  privilege_type
FROM [SHOW GRANTS FOR public]
WHERE privilege_type NOT IN ('USAGE')
  AND schema_name = 'public'
ORDER BY database_name, object_name;

Important: SHOW GRANTS FOR public is scoped to the current database. Run SHOW DATABASES; and repeat the query from each database for full coverage.

Evaluate:

  • FAIL if more than 5 users have admin role
  • FAIL if PUBLIC has SELECT, INSERT, UPDATE, or DELETE on application tables
  • WARN if admin count is between 3 and 5
  • PASS if admin count is 1-2 and PUBLIC has minimal grants

Step 6: Verify Encryption

CMEK status (Cloud clusters):

# Check CMEK configuration (Advanced plan with Advanced Security Add-on)
ccloud cluster info <cluster-name> -o json
# Look for cmek_config in the output

Evaluate by plan type (Cloud):

  • Standard plan: INFO — "Upgrade to Advanced plan with Advanced Security Add-on to enable CMEK"
  • Advanced plan without Advanced Security Add-on: INFO — "Add Advanced Security Add-on to enable CMEK"
  • Advanced plan with Advanced Security Add-on, CMEK not enabled: FAIL — CMEK not enabled despite plan supporting it
  • Advanced plan with Advanced Security Add-on, CMEK enabled: PASS

Enterprise Encryption (self-hosted — skip CMEK, check this instead):

# Enterprise Encryption is configured via --enterprise-encryption flag at node startup
cockroach node status --certs-dir=<certs-dir> --host=<host> --format=records
SHOW CLUSTER SETTING enterprise.encryption.type;
  • FAIL if not enabled and cluster stores sensitive data
  • WARN if encryption status cannot be determined
  • PASS if enabled with AES-256

TLS (Cloud): Always PASS — enforced on all connections.

TLS (self-hosted): Verify certificate validity and expiry (NOT auto-PASS):

cockroach cert list --certs-dir=<certs-dir>
openssl x509 -in <certs-dir>/node.crt -noout -enddate
  • FAIL if any certificate expires within 30 days
  • WARN if any certificate expires within 90 days
  • PASS if all certificates valid with 90+ days remaining

Remediation (self-hosted): managing-tls-certificates

Cryptographic posture (both Cloud and self-hosted — informational only):

# Primary: sslyze with STARTTLS postgres (if available)
sslyze <host>:26257 --starttls postgres

# Supplementary: openssl with STARTTLS postgres
openssl s_client -connect <host>:26257 -starttls postgres -showcerts -tlsextdebug 2>&1

# PQC probe: offer ML-KEM hybrid, check if server accepts
openssl s_client -connect <host>:26257 -starttls postgres -groups X25519MLKEM768:x25519 2>&1
  • INFO — TLS version (should be TLS 1.3; note if TLS 1.2 only)
  • INFO — PQC hybrid cipher support (e.g., X25519MLKEM768) — emerging, not yet a FAIL condition
  • INFO — Encryption key size (check for AES-256; note if AES-128)

Note: CockroachDB uses PostgreSQL wire protocol, so openssl s_client requires -starttls postgres to negotiate TLS correctly. Without this flag, the connection will fail. sslyze similarly requires --starttls postgres.

Step 7: Check Audit Logging

-- Check audit log configuration
SHOW CLUSTER SETTING sql.log.user_audit;

-- Check admin audit logging
SHOW CLUSTER SETTING sql.log.admin_audit.enabled;

Evaluate:

  • FAIL if sql.log.user_audit is empty and sql.log.admin_audit.enabled is false
  • WARN if only admin audit is enabled but user audit is not configured
  • PASS if both user and admin audit logging are configured

Step 8: Assess Backup Status

Cloud clusters: Managed backups are automatic — always PASS. Optionally check for self-managed schedules:

ccloud cluster info <cluster-name> -o json  # Look for backup_config
SHOW SCHEDULES;  -- Check for additional self-managed backup schedules

Self-hosted clusters: No managed backups — verify self-managed backup schedules:

SHOW SCHEDULES;
SELECT id, label, schedule_status, next_run, created
FROM [SHOW SCHEDULES]
WHERE label ILIKE '%backup%' OR command @> '{"backup":{}}';
  • FAIL if no backup schedules exist
  • WARN if schedules exist but show errors or haven't run recently
  • PASS if schedules are active and running

Remediation (self-hosted):

CREATE SCHEDULE 'nightly-full-backup'
  FOR BACKUP INTO 'gs://bucket/backups'
  RECURRING '@daily'
  WITH SCHEDULE OPTIONS first_run = 'now';

Pass/Warn/Fail Criteria

CheckPASSWARNFAIL
IP AllowlistSpecific CIDRs onlyBroad ranges (/8, /16)0.0.0.0/0 present
Cloud Console SSOSSO enabled + enforcedSSO enabled, not enforcedNot configured
Database SSOCluster SSO enabled—Not configured
SCIM 2.0SCIM enabled + connected—Not enabled
DB Auto User ProvisioningIdentity mapping configured—Not configured
Admin Users1-2 admins3-5 admins6+ admins
PUBLIC PrivilegesNo data grantsUSAGE-only grantsSELECT/INSERT/UPDATE/DELETE
CMEK (Standard)N/A—— (INFO: upgrade path)
CMEK (Advanced + Security Add-on)CMEK enabled—Not enabled
Enterprise Encryption (self-hosted)AES-256 enabledCannot determineNot enabled (sensitive data)
TLS (self-hosted)Certs valid 90+ daysCerts expire in 30-90 daysCerts expire within 30 days
TLS 1.3 / PQC / Key Size——— (INFO only)
HBA (self-hosted)Restrictive rulesEmpty/default—
Audit LoggingUser + admin audit onAdmin audit onlyDisabled
Password Policymin length >= 12min length 8-11min length < 8
Backups (Cloud)N/A—— (INFO: managed)
Backups (self-hosted)Schedules activeSchedules have errorsNo schedules exist

Severity Adjustments by Environment

Severity is calibrated for production by default. Non-production environments downgrade some findings. Compliance requirements override downgrades.

CheckProductionStagingDevelopmentSandbox
IP allowlist 0.0.0.0/0 (Cloud)FAILFAILWARNWARN
No private endpoints on Advanced (Cloud)WARNWARNINFOINFO
Empty HBA conf (self-hosted)WARNWARNINFOINFO
SSO not configuredFAILFAILINFOINFO
SCIM not enabledFAILFAILINFOINFO
Database SSO disabledFAILFAILINFOINFO
Admin count 6+FAILFAILWARNWARN
CMEK not enabled (Cloud)FAILFAILWARNWARN
Enterprise Encryption not enabled (self-hosted)FAILFAILWARNWARN
Audit logging disabledFAILFAILWARNINFO
No backup schedules (self-hosted)FAILFAILWARNINFO

Compliance overrides — these checks cannot be downgraded when a compliance framework is specified (compliance takes precedence over environment):

FrameworkNon-Downgradable Checks
SOC 2SSO, audit logging, admin users, password policy
HIPAASSO, CMEK/Enterprise Encryption, audit logging, encryption, password policy, backups
PCI DSSIP allowlist/HBA, CMEK/Enterprise Encryption, audit logging, admin users, password policy, backups
ISO 27001SSO, audit logging, admin users
GDPRAudit logging, encryption

Annotations: *(downgraded from FAIL — development cluster)* or *(PCI DSS compliance — cannot downgrade)*

Report Format

Save each audit report to reports/security-audit-<cluster-name>-<YYYY-MM-DD>-<sequence>.md (gitignored, local-only). The reports/ directory is not committed to version control — it serves as a local log for historical comparison and remediation tracking.

Generate a markdown report with the following structure:

# Security Audit Report — <Cluster Name>

**Date:** YYYY-MM-DD
**Cluster ID:** <cluster-id>
**Plan:** Standard | Advanced | Self-hosted
**CockroachDB Version:** vXX.X.X
**Regions:** us-east-1, us-west-2
**Deployment:** CockroachDB Cloud | Self-hosted
**Environment:** production | staging | development | sandbox
**Compliance:** SOC 2, PCI DSS | (none specified)
**Data Sensitivity:** PII/PHI | financial | internal | public

## Summary

| Status | Count |
|--------|-------|
| PASS   | X     |
| WARN   | X     |
| FAIL   | X     |
| INFO   | X     |
| N/A    | X     |

## Findings

### Network Security
- [PASS|WARN|FAIL|N/A] IP allowlist: <details>
- [PASS|WARN|INFO|N/A] Private endpoints: <details>
- [PASS|WARN|N/A] HBA configuration: <details>

### Authentication & SSO
- [PASS|FAIL|N/A] Cloud Console SSO: <details>
- [PASS|FAIL] Database SSO (OIDC): <details>
- [PASS|INFO] Database SSO (LDAP/AD): <details>
- [PASS|FAIL|N/A] SCIM 2.0 provisioning: <details>
- [PASS|FAIL] Auto user provisioning: <details>

### Authorization
- [PASS|WARN|FAIL] Admin user count: X users with admin role
- [PASS|FAIL] PUBLIC role privileges: <details>

### Encryption
- [PASS|FAIL|INFO|N/A] CMEK: <details>
- [PASS|FAIL|WARN|N/A] Enterprise Encryption: <details>
- [PASS|FAIL|N/A] TLS: <details>
- [INFO] Cryptographic posture: TLS version, PQC support, key size

### Audit Logging
- [PASS|WARN|FAIL] Audit log configuration: <details>

### Backup & Recovery
- [PASS|INFO|N/A] Managed backups: <details>
- [PASS|WARN|FAIL|N/A] Self-managed backups: <details>

### Cluster Configuration
- [INFO] Version: vXX.X.X
- [INFO] Plan: Standard | Advanced | Self-hosted
- [INFO] Regions: <list>

Status markers: [PASS], [WARN], [FAIL], [INFO], [N/A]. Use [N/A] for checks that don't apply to the deployment model. Append severity adjustment annotations when applicable (see Severity Adjustments).

Remediation

For each finding, the corresponding remediation skill can be used independently:

FindingRemediation Skill
Open IP allowlistconfiguring-ip-allowlists
SSO not configured / SCIM not enabledconfiguring-sso-and-scim
CMEK not enabledenabling-cmek-encryption
Audit logging disabledconfiguring-audit-logging
Excessive admin privilegeshardening-user-privileges
Weak password policyenforcing-password-policies
TLS/certificate issuesmanaging-tls-certificates
No private connectivityconfiguring-private-connectivity
Log export not configuredconfiguring-log-export
Compliance gapspreparing-compliance-documentation

For each FAIL finding, offer: "Explain how to fix this" (step-by-step guidance) or "Help me fix this now" (interactive remediation).

Safety Considerations

  • All operations are read-only. No cluster settings, users, roles, or network configurations are modified during the audit.
  • SQL queries use SHOW and SELECT only. No DDL or DML statements are executed.
  • ccloud commands are read-only. Only list, info, and auth subcommands are used.
  • No secrets are logged. Connection strings and tokens are not included in the report output.
  • Privilege check: The audit may produce incomplete results if the executing user lacks admin or VIEWACTIVITY privilege. The report notes any permission gaps.

References

Skill references:

  • Sample audit report — Example report with findings and remediation links
  • SQL queries for security auditing
  • ccloud CLI commands
  • RBAC and privileges setup

Remediation skills:

  • configuring-ip-allowlists — Network access hardening
  • enabling-cmek-encryption — Customer-managed encryption keys
  • configuring-audit-logging — SQL audit logging
  • hardening-user-privileges — RBAC tightening
  • enforcing-password-policies — Password strength enforcement
  • configuring-sso-and-scim — SSO and SCIM provisioning
  • managing-tls-certificates — TLS certificate management
  • configuring-private-connectivity — Private endpoints and VPC peering
  • configuring-log-export — Log and metric export
  • preparing-compliance-documentation — Compliance readiness and documentation

Official CockroachDB Documentation:

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.