Credential Change Types¶
Credential changes rotate, revoke, or replace secrets, API keys, and passwords. Credentials generated during execution travel in memory between steps only — never written to logs or the database.
Key Rotation¶
| Change Type | Description | Rollback |
|---|---|---|
key_rotation |
Generic key rotation orchestrator — routes to the correct rotation handler based on asset type | Restores previous key state |
key_pair_create |
Create an EC2 key pair | Delete the key pair |
key_pair_delete |
Delete an EC2 key pair | Not available |
DB Credential Rotation¶
Change type: rotate_db_credentials
- Generate a new password
- Update the database user's password (PostgreSQL, MySQL, or MSSQL)
- Update application config files on the target host(s) via the Nexplane Agent
- Restart the dependent service
- Verify the database connection with the new credentials
Rollback: Restore original password and config, restart service.
SSH Key Fleet Rotation¶
Change type: rotate_ssh_keys
- Remove the old key by fingerprint from
authorized_keysacross the target fleet - Add the new public key to all hosts
- Back up the original
authorized_keysfor rollback
Rollback: Restore authorized_keys from backup on all hosts.
API Key Rotation¶
Change type: rotate_api_key
Rotates AWS IAM access keys, Okta API tokens, or GitHub Personal Access Tokens. Propagates the new key to Kubernetes secrets, agent env files, or SSM Parameter Store before deactivating the old key.
Rollback: Re-activate old key, remove new key from propagation targets.
Service Account Rotation¶
Change type: rotate_service_account
Updates a service account password in AD and/or Okta, then pushes the new password to dependent services via asset metadata.
S3 Bucket Operations¶
| Change Type | Description | Rollback |
|---|---|---|
s3_bucket_create |
Create an S3 bucket | Delete the bucket |
s3_bucket_delete |
Delete an S3 bucket | Not available |
s3_lifecycle_configure |
Configure lifecycle rules on an S3 bucket | Restore previous lifecycle configuration |
Connector: AWS
Route53 DNS¶
| Change Type | Description | Rollback |
|---|---|---|
route53_zone_create |
Create a hosted zone | Delete the zone |
route53_record_upsert |
Create or update a DNS record | Delete or restore previous record |
route53_record_delete |
Delete a DNS record | Recreate the deleted record |
Connector: AWS
End-to-End Rotation with Consumer Fan-Out¶
Change type: credential_rotation_fanout
Rotates a credential at its source and automatically updates all infrastructure components that reference it — closing the gap between "the key was rotated" and "everything using the key has the new value."
- Rotate (optional) — call the specified rotate action at the source (IAM access key, Vault secret, database password). If the rotate action returns a
new_value, that value is used for all subsequent consumer updates. This phase is skipped if norotatespec is provided. - Scan — search for consumers across the configured scopes. Supported surfaces: AWS Lambda environment variables, ECS task definition environment variables, SSM parameters, Kubernetes ConfigMaps, and Kubernetes Deployment environment variables.
- Update — push the new credential value to each consumer in order, building a FILO rollback stack as updates are applied. If any consumer update returns an error, the CR transitions to
pausedimmediately — remaining consumers are not updated. The partial state is preserved for operator review. - Verify — re-scan all configured scopes to confirm the old credential value is no longer present. If any consumer still holds the old value, the CR transitions to
paused.
Rollback: Unwind consumers in reverse (FILO) order using the rollback_data captured during each update. Consumers that were not successfully updated are skipped. Source credential restoration is not performed automatically — if needed, restore the original credential at the source manually. If rollback fails for any consumer, the execution result records the failure so operators can restore the remaining consumers manually.
Connector: AWS (source credential and AWS-surface consumers) + Kubernetes (k8s-surface consumers)
Certificate Rotation¶
Change type: step_ca_rotate_cert
Reissues a TLS certificate from a step-ca certificate authority and optionally deploys the new certificate to a target host.
- Issue — connect to the step-ca CA and issue a new certificate for the specified subject and SAN with the configured validity period (default: 720 hours / 30 days). The certificate and private key are written to a secure temporary directory.
- Deploy (optional) — if
deploy_via_ssmis enabled and aninstance_idis provided, write the new certificate and key to the target EC2 instance via SSM Run Command. The key is written with mode0600; the certificate with mode0644. After writing, the configuredreload_commandis executed (default:nginx -s reload).
Rollback: Not available. Once a certificate is issued by the CA, the old certificate is expired or superseded. If the newly issued certificate must be invalidated, revoke it via step-ca revoke out of band. The executor's rollback function records this explicitly and returns rolled_back: false.
Connector: step-ca (certificate issuance) + AWS SSM (optional host deployment)