Security best practices
This page summarises the security measures recommended for an ArmoniK deployment. For the full list of rules, see the Golden Rules.
Network security
Place ArmoniK workers in a private VPC (or equivalent) with no direct inbound access from the internet.
Restrict port exposure for managed services such as ElastiCache, Amazon MQ, and MongoDB.
Use Kubernetes NetworkPolicies to limit pod-to-pod communication to what is strictly necessary.
Route external client connections through the ingress only.
Data encryption
Enable encryption at rest as early as possible for all storage components:
AWS: S3, ElastiCache, Amazon MQ, EFS
GCP: GCS, Cloud Memorystore, Cloud Pub/Sub
On-premises: enable MinIO server-side encryption and RabbitMQ TLS.
Enable encryption in transit for all inter-service communication (ElastiCache TLS, S3 HTTPS, MongoDB TLS).
Use customer-managed encryption keys where available.
Container image hygiene
Regularly scan Docker images for CVEs. This applies to all ArmoniK components (Control Plane, Polling Agent, Worker, Metrics Exporter, Pod Deletion Cost, Admin GUI, Meta Controller) as well as third-party images (Prometheus, Nginx, Grafana, MongoDB, Fluent-bit).
Keep images up to date — do not pin to old tags in production.
Scan worker images containing application code (e.g. DLLs loaded at runtime) as part of your CI pipeline.
Admin GUI
Enable authentication on the Admin GUI before exposing it outside a trusted network.
Do not expose the GUI on a public IP without authentication, even temporarily.
Audit and compliance
Enable audit logging on the Kubernetes API server to track who performed which operations and when.
Review role bindings and permissions periodically to remove stale access.
Ensure your deployment configuration is stored in version control so that changes are traceable.