Bağlantı güvenliği
AMQP/AMQPS, secret resolution ve isteğe bağlı CA/mTLS materyalini açık bir bağlantı profiliyle seçin.
Consumer bağlantısında use_tls açıkça seçilir. Alanı atlamak güvenli bir varsayılan veya plaintext fallback sağlamaz; validation hatası üretir. false AMQP, true AMQPS şemasıyla tutarlı olmalıdır.
Tek bağlantı tanımı kullanın#
Ya connection_string, ya da username, password, hostname, port, vhost alanlarını seçin. İki biçim karıştırılmaz. Aşağıdaki parça ilk uygulamanın [rabbitmq.consumer] profilinin yerine geçer; önceki individual alanları ayrıca bırakmayın. Topology tanımlarını koruyun.
[rabbitmq.consumer]
connection_string = "${secret:broker.consumer_url}"
use_tls = true
pool_size = 2
connection_timeout_secs = 10
confirm_timeout_secs = 10
heartbeat_secs = 30
[rabbitmq.consumer.tls]
additional_ca_bundle = "/etc/lily/tls/ca.pem"
client_certificate_chain = "/etc/lily/tls/client.pem"
client_private_key = "/etc/lily/tls/client-key.pem"Bu değerleri ortamınıza uyarlayın. ${secret:broker.consumer_url} çalışan bir SecretResolver ister ve host, username, password içeren AMQPS URL çözmelidir. Secret reference kendiliğinden environment lookup yapmaz. URI query/fragment kullanılmaz; heartbeat ve timeout için typed alanlar seçilir.
CA ve karşılıklı TLS#
Additional CA bundle isteğe bağlıdır. Client certificate chain ve private key mTLS için birlikte verilmelidir; yalnız biri validation hatasıdır. TLS materyali use_tls=false iken kabul edilmez. Dosya yolları mutlak, materyal geçerli PEM olmalıdır; private key şifrelenmemiş PEM sözleşmesini izler.
Dosyaları uygulamanın okuyabildiği kontrollü bir deployment konumuna yerleştirin. Örnekteki yollar framework’ün dosya oluşturduğu anlamına gelmez. Startup sonrası dosya veya secret değişikliğinin otomatik hot reload yapacağını varsaymayın; configuration immutable startup sözleşmesini açıklar.
Bağlantı bütçeleri#
| Alan | Varsayılan | Aralık |
|---|---|---|
pool_size |
5 | 1–32 |
connection_timeout_secs |
10 | 1–120 |
confirm_timeout_secs |
10 | 1–300 |
heartbeat_secs |
30 | 5–600 |
max_reconnect_attempts |
5 | 1–100 |
reconnect_backoff_millis |
250 | 50–30000 |
Bu değerler Consumer bağlantı profiline aittir; delivery veya process shutdown timeout’u değildir. Daha uzun reconnect süresi, uygulamanın broker recovery boyunca hazır olduğu anlamına gelmez. Current readiness için operational snapshot kullanın.
Transport ile mesaj yetkisini ayırın#
mTLS veya broker login, vhost/destination yetkilerinin ve message-level uygulama politikasının yerini almaz. Mesajın tenant/user alanı kendiliğinden doğrulanmış principal olmaz. Gerekli imza, credential ve domain izinlerini guard ve middleware katmanında uygulayın.
Configuration diagnostics için redacted snapshot kullanın; resolved URL, parola veya private key’i loglamayın. Bağlantı hatasının stable code’unu izlemek ile credential içeren hata kaynağını yazdırmak aynı işlem değildir.
Bu sayfanın kaynakları v0.1.0
Anlatım, incelenen framework commit’ine dayanır.