OpenShift
SecTrail CM, OpenShift / Kubernetes kümelerine ajansız bağlantı kurarak ConfigMap ve Secret'larda tutulan sertifikaların ve keystore'ların otomatik keşfini, dağıtımını ve silinmesini sağlar.
SecTrail CM, bir namespace'teki ConfigMap ve Secret'larda bulunan PEM sertifikalarını, TLS sertifika çiftlerini ve Java keystore'larını keşfedip izleyebilir; envanterindeki sertifikaları bu kaynaklara ekleyebilir ve gerektiğinde silebilir.
Bağlantı Gereksinimleri
| Gereksinim | Detay | Açıklama |
|---|---|---|
| Protokol | Kubernetes API (HTTPS) | OpenShift / Kubernetes API sunucusu kullanılır |
| Endpoint | https://api.<cluster>.<domain>:<port> | Kümenin API sunucusu adresi |
| Kimlik Doğrulama | Service Account Token veya Kubeconfig | Kısa ömürlü token veya kubeconfig dosyası ile kimlik doğrulama |
| Yetki | Namespace içinde RBAC yetkisi | ConfigMap/Secret okuma ve güncelleme, Deployment yeniden başlatma |
Otomatik İşlemler
SecTrail CM, OpenShift üzerinde aşağıdaki işlemleri otomatik gerçekleştirir:
- Certificate Discovery: Namespace'teki ConfigMap ve Secret'larda bulunan sertifikaları ve keystore'ları listeleme
- Certificate Add: SecTrail envanterindeki sertifikaları bir ConfigMap veya Secret'a ekleme
- Certificate Remove: Mevcut sertifikaları ConfigMap veya Secret'tan silme
- Deployment Restart: Değiştirilen kaynağı kullanan Deployment'ları yeniden başlatma (opsiyonel)
- Backup & Rollback: Değişiklikten önce kaynağı yedekleme, hata durumunda geri yükleme
Yapılandırma Adımları
1. OpenShift Tarafında Yapılması Gerekenler
1. Servis hesabı ve yetkileri
Yönetilecek namespace'lerde bir servis hesabı (clm-cert-updater) açılmalı ve aşağıdaki yetkiler verilmelidir:
configmaps,secrets→get,list,patchdeployments→get,list,patch(sertifika değişince ilgili pod'ları yeniden başlatmak için)
2. Sabit token
SecTrail CM'e kalıcı bir token verilir. Bu token doğrudan veri okumaz; her çalışmada 10 dakika ömürlü geçici bir token üretmek için kullanılır. Bunun için ayrı bir hesap (clm-token-issuer) açılır ve bu hesaba yalnızca clm-cert-updater adına token üretme yetkisi verilir.
3. API erişimi
- API adresi:
https://api.<cluster>.<domain>:<port> - SecTrail CM sunucusundan bu adrese erişim açılmalıdır.
2. OpenShift Kullanıcı Oluşturma
Automation > Device Users bölümüne gidin ve OpenShift için kullanıcı oluşturun:

- Name: Kullanıcı için tanımlayıcı isim verin
- Credential Type:
OpenShift / Kubernetesseçin - Authentication Method: Kimlik doğrulama yöntemini seçin:
- Token (Service Account): Önerilen yöntem. Saklanan issuer token ile her çalıştırmada kısa ömürlü bir token üretilir.
- Kubeconfig File: Kümeye erişim için bir kubeconfig dosyası yüklenir. Dosya sunucuda gizli olarak saklanır.
- Issuer Token (base64): OpenShift tarafında
clm-token-issueriçin oluşturulan sabit token (Token yönteminde) - Service Account: Kısa ömürlü token'ın üretileceği service account (örn.
clm-cert-updater)
Submit butonuna tıklayarak kullanıcıyı kaydedin.
Kubeconfig yönteminde, kubeconfig dosyasındaki kimliğin clm-cert-updater servis hesabıyla aynı yetkilere sahip olması gerekir.
3. OpenShift Cihazını SecTrail CM'e Ekleme
Automation > Devices > Add New Device butonuna tıklayın ve aşağıdaki bilgileri girin:

- Name: Cihaz için tanımlayıcı isim verin (örn:
openshift_secret) - Device Users: Adım 2'de oluşturduğunuz kullanıcıyı seçin
- IP: Kümenin API sunucusu adresi (
https://api.<cluster>.<domain>:<port>, örn:https://api.crc.testing:16443) - Device Type: Açılır menüden
OpenShift - Certificate Storeseçin - Namespace (zorunlu): Taranacak ve sertifika eklenecek namespace. Her cihaz tek bir namespace'i kapsar.
- Scan Scope: Sertifikaların hangi kaynaklardan okunacağı:
ConfigMaps and Secrets,ConfigMaps onlyveyaSecrets only - Managed Keystore (opsiyonel): Tüm namespace'i taramak için boş bırakın. Tek bir keystore'u yönetmek için Resource Name (ConfigMap/Secret adı) ve Resource Key (keystore'un bulunduğu anahtar, örn.
truststore.jks) alanlarını doldurun. Kaynağın ConfigMap mi Secret mı olduğu Scan Scope alanından belirlenir. - Store Type: Keystore tipi (
JKS,PKCS12,BKS,BCFKS,UBER) - Store Password: Keystore parolası
- Restart After Deployment: İşaretlenirse, değiştirilen kaynağı mount eden Deployment'lar işlem sonrasında yeniden başlatılır. Java uygulamaları truststore'u yalnızca açılışta okuduğundan, yeniden başlatılmazsa değişiklik bir sonraki pod açılışında devreye girer.
- Execution Server: Dağıtım işlemlerini yürütmek için kullanılacak sunucu (örn:
default)
Submit butonuna tıklayarak cihazı kaydedin.
OpenShift cihazı SecTrail CM'e eklendikten sonra, namespace'teki sertifikalar otomatik olarak keşif periyoduna dahil edilir ve düzenli olarak taranır. Süresi dolmak üzere olan veya sorunlu sertifikalar için otomatik alarm oluşturulur.
4. Cihaz Bilgilerini Görüntüleme
Cihaz eklendikten sonra Automation > Devices listesinde görüntülenecektir. Cihaz detaylarını görmek için satıra tıklayın:

Cihaz detaylarında aşağıdaki bilgiler görüntülenir:
- Namespace: Kaynağın bulunduğu namespace
- Resource Type: Kaynak tipi (
ConfigMapveyaSecret) - Resource Name: ConfigMap veya Secret adı
- Entry Type: Giriş tipi (
trustedCertEntryveyaPrivateKeyEntry) - Resource Key: Sertifikanın veya keystore'un bulunduğu anahtar (örn.
ca.crt,truststore.jks) - Alias Name: Keystore'daki alias adı
- Certificate Subject: Kaynaktaki sertifikalar. Bir PEM bundle'da birden fazla sertifika varsa her biri ayrı listelenir.
- Not After: Sertifika geçerlilik son tarihi
Sertifika Dağıtımı (Add)
Adım 1: Hedef ve Sertifika Seçimi
- Automation > Devices bölümünden OpenShift cihazınızı seçin
- Cihaz detaylarında Add butonuna tıklayın
- Açılan Add Trust Store formunu doldurun:

- Target Store (zorunlu): Sertifikanın yazılacağı ConfigMap/Secret anahtarı. Son taramada bulunan kaynaklar listelenir; listede olmayan bir kaynak için Another resource (enter manually) seçeneği kullanılabilir.
- Alias Name: Hedef bir keystore ise sertifikanın ekleneceği alias. PEM anahtarlarında alias olmadığından bu alan görünmez.
- Certificate: Eklenecek sertifika
- PEM anahtarı (örn.
ca.crt): Sertifika, mevcut bundle'ın sonuna eklenir. Private key eklenmez. Sertifika bundle'da zaten varsa tekrar eklenmez. - Keystore (örn.
truststore.jks): Private key'i olmayan sertifikatrustedCertEntry, private key'i olan sertifikaPrivateKeyEntryolarak eklenir.
Adım 2: Dağıtım İşlemini Başlatma
Submit butonuna tıklayarak sertifika dağıtım işlemini başlatın.
Adım 3: İşlem Takibi
Dağıtım işlemi Automation > Processes bölümünden takip edilebilir:

İşlem Detayları
Dağıtım sırasında aşağıdaki adımlar gerçekleştirilir:
| Adım | İşlem Açıklaması |
|---|---|
| 1 | OpenShift kimlik doğrulaması yapılır (OpenShift authentication successful) |
| 2 | Hedef kaynak yedeklenir ve dağıtım başlar (Certificate deployment started) |
| 3 | Sertifika ConfigMap/Secret'a eklenir (Certificate added successfully) |
| 4 | Restart After Deployment açıksa, kaynağı kullanan Deployment'lar yeniden başlatılır (Restarting 1 deployment(s): <deployment>) |
| 5 | İşlem tamamlanır (Deployment completed successfully) |
Bir adım başarısız olursa, değiştirilen ConfigMap/Secret işlem öncesinde alınan yedekten geri yüklenir.
Sertifika Silme (Remove)
SecTrail CM, ConfigMap ve Secret'lardan sertifika silme işlemini destekler.
Silme İşlemi Adımları
- Automation > Devices bölümünden OpenShift cihazınızı seçin
- Certificate Subject sütununda silmek istediğiniz sertifikaları işaretleyin
- Remove butonuna tıklayın ve onay vererek silme işlemini başlatın
Silme İşlemi Task Detayları
Silme işlemi Automation > Processes bölümünden takip edilebilir:

| Adım | İşlem Açıklaması |
|---|---|
| 1 | OpenShift kimlik doğrulaması yapılır (OpenShift authentication successful) |
| 2 | Hedef kaynak yedeklenir ve silme başlar (Certificate removal started) |
| 3 | Sertifika ConfigMap/Secret'tan silinir (Certificate removed successfully) |
| 4 | Restart After Deployment açıksa, kaynağı kullanan Deployment'lar yeniden başlatılır (Restarting 1 deployment(s): <deployment>) |
| 5 | İşlem tamamlanır (Deployment completed successfully) |