Skip to main content

Overview

The Optimization requires a dedicated service account with sufficient privileges to call the Compute API for live migration. Hardening this account — and restricting who can approve and execute action plans — prevents unauthorized workload movement and ensures a complete audit trail for all optimization activity.
Prerequisites
  • Administrator privileges on both the Optimization and Polystack Identity
  • Polystack Compute deployed and operational
  • Optimization services running (API, Decision Engine, Applier)

Service Account Hardening

The Applier uses a dedicated service account to authenticate against the Compute API. This account must have sufficient permissions to perform live migrations but should be scoped to the minimum necessary privileges.

Create a Dedicated Service Account

Create the user

Navigate to Identity > Users (admin view) and click Create User.Set a strong password and save it to your secrets manager.

Restrict to service project

Ensure the watcher-service user has the admin role only in the service project — not in tenant projects. This limits blast radius if the account is compromised.

Protect watcher.conf Credentials

The watcher.conf file contains the Applier’s service account credentials. Restrict access to this file on controller nodes and verify the authentication configuration.

Automatic Credential Management

Service account credentials and authentication settings are automatically managed by the deployment console during deployment. The deployment console generates the [keystone_authtoken] section with the correct service account, endpoint URLs, and permissions.No manual configuration is required for standard deployments.

Custom Authentication Settings (Optional)

For advanced troubleshooting or custom authentication configuration, navigate to Advanced Configuration. In the Service Tree (left panel), select watcher. Click New File or select an existing watcher.conf from the File Browser (right panel).Modify the [keystone_authtoken] section in the Code Editor (center panel):
/etc/ironcore/config/watcher/watcher.conf

Save and Apply

Click Save Current File. Return to Operations and run reconfigure to apply the authentication changes.
Service credentials configured and applied via the deployment console.
Never store credentials in plain text outside /etc/ironcore/. Do not commit watcher.conf to version control. If the password must be rotated, update watcher.conf and restart the Applier container.

RBAC Execution Policies

The Optimization enforces role-based access control on all API operations. The default policy grants:

Verify Default Policies

List active RBAC policies

Restrict Execution to Named Administrators

To restrict action plan execution to a dedicated ops team without granting full admin, create a custom project-scoped role and override the policy:
Create an optimizer-operator role
/etc/ironcore/watcher/policy.yaml — execution override
Restart API after policy change

API Audit Logging

Enable verbose API request logging to record who approved and executed each action plan:
/etc/ironcore/watcher/watcher.conf — audit logging
Logs are written to the container’s journal and to the Ironcore log volume:
Follow real-time API logs
Search for execution events

TLS for API Communications

The Optimization API should be served behind the HAProxy endpoint which handles TLS termination. Verify that all client traffic reaches the API via HTTPS:
Verify API endpoint (should be HTTPS in production)
For internal controller communication, TLS on the RPC transport (RabbitMQ) is managed by the platform-wide [oslo_messaging_rabbit] configuration.

Rotation: Service Account Password

When rotating the Applier service account password:

Update the password in Polystack Identity

Set a new password

Update watcher.conf

Edit /etc/ironcore/watcher/watcher.conf and update the password field under [keystone_authtoken].

Restart all Optimizer containers

Restart all Optimization services

Verify authentication

Confirm API is reachable after rotation
Audit list returns without authentication errors — password rotation complete.

Validation

Navigate to Optimization → Audits. Attempt to create an audit as a non-admin user — the action should be blocked with an authorization error.
Non-admin users cannot create audits or execute action plans.

Next Steps

Action Policies

Configure manual approval vs automatic execution policies for action plans.

Compute Integration

Verify the service account has compute permissions for live migration.

Architecture

Review which containers use the service account credentials.

Troubleshooting

Diagnose authentication failures and permission errors.