Configuration
Why the KubeMQ AWS connector is opt-in, how CONNECTORS_AWS_ENABLE opens port 4566, and the accept-any vs static credential postures.
The AWS connector is configured server-side under the Connectors.Aws block of the KubeMQ
server config, exposed as ten CONNECTORS_AWS_* environment variables. Unlike the other
wire-protocol connectors, it is opt-in — disabled by default — because enabling it opens
a new HTTP listener. A stock server does not serve AWS until you turn it on. See the
Configuration reference for the full field table and the
TOML/Env/Docker equivalents.
The only thing clients configure is the endpoint override via the KUBEMQ_AWS_URL
environment variable (default http://localhost:4566), mapped to AWS_ENDPOINT_URL_SQS /
AWS_ENDPOINT_URL_SNS. Everything below is broker-side server configuration.
Enable the connector
The connector is off until you enable it. Set its enable variable to true:
docker run -d \ --name kubemq \ -p 4566:4566 \ -p 50000:50000 \ -e KUBEMQ_TOKEN=YOUR_LICENSE_KEY \ -e CONNECTORS_AWS_ENABLE=true \ europe-docker.pkg.dev/kubemq/images/kubemq:nextEnabling the connector opens a new HTTP listener on port 4566. That port is not bound
until CONNECTORS_AWS_ENABLE=true, and it must differ from the server's enabled
gRPC/REST/HTTP ports — a collision aborts startup. This is precisely why the connector is
opt-in rather than on by default: like all six wire-protocol connectors, it does not bind
a listener until explicitly enabled. The enable variable is CONNECTORS_AWS_ENABLE — the
prefix carries the underscore (CONNECTORS_AWS_*), unlike the MQTT connector's
CONNECTORSMQTT_*. To disable it again, set
CONNECTORS_AWS_ENABLE=false (a config-only rollback; no data migration).
Credentials: accept-any vs static
The connector supports two credential postures. See Authentication for the full treatment.
Accept-any mode (default — no credentials configured)
When no credentials are configured, the credential store is empty: the connector parses
the AccessKeyId and uses it as the ClientID, and logs once that it is running without
credential verification.
Dummy credentials are still required. Even in accept-any mode the request must carry a
syntactically valid SigV4 signature with an sqs/sns credential scope. An unsigned
request is rejected with IncompleteSignature — the only SigV4-exempt action is SNS
ConfirmSubscription. The signature is not cryptographically verified, but its presence and
shape are. So the SDK must be given an access key and secret (any non-empty value).
Static credentials (CONNECTORS_AWS_CREDENTIALS_DATA)
Set CONNECTORS_AWS_CREDENTIALS_DATA to a JSON (optionally base64-encoded) array of
credentials. Each entry carries an AccessKeyId, a SecretAccessKey, and an optional
ClientID (defaulting to the AccessKeyId):
[
{
"AccessKeyId": "AKIA...",
"SecretAccessKey": "secret...",
"ClientID": "billing"
}
]When credentials are configured, SigV4 is fully verified: the access key must match a
configured credential, and the signature is checked with a constant-time compare. The
authenticated ClientID becomes the identity used for per-channel write/read
authorization and the stamped sqs_sender_id tag. An empty key or secret is a configuration
error.
SigV4 over plain HTTP is unencrypted on the wire. HTTPS is provided by the server-wide
Security block — there is no AWS-specific TLS option. Production deployments should use
the server's HTTPS listener. See
Connectivity and security and
Auth & security.
Related
Getting Started
Enable the connector and run an SQS round-trip end-to-end in minutes.
Architecture
One binary, two service surfaces — SQS as a Queue channel and the virtual SNS registry.
Authentication
SigV4 accept-any vs static credentials, the ConfirmSubscription exemption, and per-channel authorization.
Capabilities
Supported SQS/SNS actions, the limitations list, and the out-of-scope features.
Was this page helpful?
Architecture
Inside the KubeMQ AWS connector — one binary with two service surfaces, SQS as a KubeMQ Queue channel, the virtual SNS registry, and cross-protocol interop.
Cross-Protocol Interop
Share an sqs.* channel between an AWS SDK app and a native KubeMQ gRPC/REST client — produce with boto3, consume with kubemq-go, and migrate one side at a time.