Ana içeriğe geç
Versiyon: 2.7 (Güncel)

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.

Konteyner Sertifika Yönetimi

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​

GereksinimDetayAçıklama
ProtokolKubernetes API (HTTPS)OpenShift / Kubernetes API sunucusu kullanılır
Endpointhttps://api.<cluster>.<domain>:<port>Kümenin API sunucusu adresi
Kimlik DoğrulamaService Account Token veya KubeconfigKısa ömürlü token veya kubeconfig dosyası ile kimlik doğrulama
YetkiNamespace içinde RBAC yetkisiConfigMap/Secret okuma ve güncelleme, Deployment yeniden başlatma

Otomatik İşlemler​

SecTrail CM, OpenShift üzerinde aşağıdaki işlemleri otomatik gerçekleştirir:

  1. Certificate Discovery: Namespace'teki ConfigMap ve Secret'larda bulunan sertifikaları ve keystore'ları listeleme
  2. Certificate Add: SecTrail envanterindeki sertifikaları bir ConfigMap veya Secret'a ekleme
  3. Certificate Remove: Mevcut sertifikaları ConfigMap veya Secret'tan silme
  4. Deployment Restart: Değiştirilen kaynağı kullanan Deployment'ları yeniden başlatma (opsiyonel)
  5. 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, patch
  • deployments → 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:

OpenShift Kullanıcı Oluşturma

  • Name: Kullanıcı için tanımlayıcı isim verin
  • Credential Type: OpenShift / Kubernetes seç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-issuer iç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.

not

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:

OpenShift Cihaz Ekleme

  • 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 Store seç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 only veya Secrets 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.

Otomatik Keşif ve İzleme

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:

OpenShift Cihaz Detayları ve Sertifika Listesi

Cihaz detaylarında aşağıdaki bilgiler görüntülenir:

  • Namespace: Kaynağın bulunduğu namespace
  • Resource Type: Kaynak tipi (ConfigMap veya Secret)
  • Resource Name: ConfigMap veya Secret adı
  • Entry Type: Giriş tipi (trustedCertEntry veya PrivateKeyEntry)
  • 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​

  1. Automation > Devices bölümünden OpenShift cihazınızı seçin
  2. Cihaz detaylarında Add butonuna tıklayın
  3. Açılan Add Trust Store formunu doldurun:

OpenShift Sertifika Ekleme

  • 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
Hedefe Göre Ekleme
  • 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 sertifika trustedCertEntry, private key'i olan sertifika PrivateKeyEntry olarak 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:

OpenShift Dağıtım İşlemi

İşlem Detayları​

Dağıtım sırasında aşağıdaki adımlar gerçekleştirilir:

Adımİşlem Açıklaması
1OpenShift kimlik doğrulaması yapılır (OpenShift authentication successful)
2Hedef kaynak yedeklenir ve dağıtım başlar (Certificate deployment started)
3Sertifika ConfigMap/Secret'a eklenir (Certificate added successfully)
4Restart 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)
Otomatik Geri Alma

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ı​

  1. Automation > Devices bölümünden OpenShift cihazınızı seçin
  2. Certificate Subject sütununda silmek istediğiniz sertifikaları işaretleyin
  3. 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:

OpenShift Sertifika Silme

Adımİşlem Açıklaması
1OpenShift kimlik doğrulaması yapılır (OpenShift authentication successful)
2Hedef kaynak yedeklenir ve silme başlar (Certificate removal started)
3Sertifika ConfigMap/Secret'tan silinir (Certificate removed successfully)
4Restart 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)