Aracılığıyla paylaş


Azure'da Service Fabric kümesine sertifika ekleme veya kaldırma

Service Fabric'in X.509 sertifikalarını nasıl kullandığını ve Küme güvenlik senaryolarını nasıl kullandığını anlamanız önerilir. Devam etmeden önce küme sertifikasının ne olduğunu ve ne için kullanıldığını anlamanız gerekir.

Azure Service Fabrics SDK'sının varsayılan sertifika yükleme davranışı, süresi dolma tarihi en fazla olan tanımlı sertifikayı gelecekte dağıtmak ve kullanmaktır; birincil veya ikincil yapılandırma tanımlarından bağımsız olarak. Klasik davranışa geri dönmek önerilmez gelişmiş bir eylemdir ve yapılandırmanızda parametre değerini false olarak ayarlamak için "UseSecondaryIfNewer" ayarının Fabric.Code yapılması gerekir.

Service fabric, istemci sertifikalarına ek olarak, küme oluşturma sırasında sertifika güvenliğini yapılandırırken birincil ve ikincil olmak üzere iki küme sertifikası belirtmenize olanak tanır. Oluşturma zamanında ayarlama hakkında ayrıntılı bilgi için portal aracılığıyla Azure kümesi oluşturma veya Azure Resource Manager aracılığıyla Azure kümesi oluşturma makalesine bakın. Oluşturma sırasında yalnızca bir küme sertifikası belirtirseniz, bu birincil sertifika olarak kullanılır. Küme oluşturulduktan sonra, ikincil olarak yeni bir sertifika ekleyebilirsiniz.

Not

Güvenli bir küme için her zaman en az bir geçerli (iptal edilmemiş ve süresi dolmamış) küme sertifikasının (birincil veya ikincil) dağıtılması gerekir (değilse küme çalışmayı durdurur). Tüm geçerli sertifikaların süresi dolmadan 90 gün önce sistem, düğümde bir uyarı izlemesi ve uyarı sistem durumu olayı oluşturur. Şu anda Service Fabric'in sertifika süre sonuyla ilgili olarak gönderdiği tek bildirimler bunlardır.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Portalı kullanarak ikincil küme sertifikası ekleme

İkincil küme sertifikası Azure portalı üzerinden eklenemez; Azure Resource Manager'a tıklayın.

Portalı kullanarak küme sertifikasını kaldırma

Güvenli bir küme için her zaman en az bir geçerli (iptal edilmemiş ve süresi dolmamış) sertifika gerekir. Gelecekteki son kullanma tarihine en uzak sertifikayla dağıtılan sertifika kullanımda olacak ve sertifikanın kaldırılması kümenizin çalışmasını durduracaktır; yalnızca süresi dolan sertifikayı veya en yakın zamanda süresi dolan kullanılmayan bir sertifikayı kaldırdığınızdan emin olun.

Kullanılmayan bir küme güvenlik sertifikasını kaldırmak için Güvenlik bölümüne gidin ve kullanılmayan sertifikanın bağlam menüsünden 'Sil' seçeneğini belirleyin.

Amacınız birincil olarak işaretlenen sertifikayı kaldırmaksa, süresi dolan bir ikincil sertifikayı birincil sertifikadan daha ileri bir tarihte dağıtarak otomatik geçiş davranışını etkinleştirmeniz gerekir; otomatik geçiş tamamlandıktan sonra birincil sertifikayı silin.

Azure Resource Manager kullanarak ikincil sertifika ekleme

Bu adımlarda Resource Manager'ın nasıl çalıştığını bildiğiniz ve Resource Manager şablonu kullanarak en az bir Service Fabric kümesi dağıttığınız ve kümeyi ayarlamak için kullandığınız şablonun kullanışlı olduğu varsayılır. Ayrıca JSON'yi rahatça kullanabileceğiniz varsayılır.

Not

Birlikte veya başlangıç noktası olarak takip etmek için kullanabileceğiniz bir örnek şablon ve parametre arıyorsanız, bu git deposundan indirin.

Resource Manager şablonunuzu düzenleme

Takip etme kolaylığı için örnek 5-VM-1-NodeTypes-Secure_Step2.JSON, gerçekleştirdiğimiz tüm düzenlemeleri içerir. örneği git-repo'da bulabilirsiniz.

Tüm adımları izlediğinden emin olun

  1. Kümenizi dağıtmak için kullandığınız Resource Manager şablonunu açın. (Örneği önceki depodan indirdiyseniz, güvenli bir küme dağıtmak için 5-VM-1-NodeTypes-Secure_Step1.JSON kullanın ve ardından bu şablonu açın).

  2. Şablonunuzun parametre bölümüne "string" türünde iki yeni "secCertificateThumbprint" ve "secCertificateUrlValue" parametresi ekleyin. Aşağıdaki kod parçacığını kopyalayıp şablona ekleyebilirsiniz. Şablonunuzun kaynağına bağlı olarak, bunları zaten tanımlamış olabilirsiniz. Bu durumda bir sonraki adıma geçebilirsiniz.

       "secCertificateThumbprint": {
          "type": "string",
          "metadata": {
            "description": "Certificate Thumbprint"
          }
        },
        "secCertificateUrlValue": {
          "type": "string",
          "metadata": {
            "description": "Refers to the location URL in your key vault where the certificate was uploaded, it is should be in the format of https://<name of the vault>.vault.azure.net:443/secrets/<exact location>"
          }
        },
    
    
  3. Microsoft.ServiceFabric/clusters kaynağında değişiklik yapın - Şablonunuzda "Microsoft.ServiceFabric/clusters" kaynak tanımını bulun. Bu tanımın özellikleri altında aşağıdaki JSON kod parçacığına benzeyen "Sertifika" JSON etiketini bulursunuz:

          "properties": {
            "certificate": {
              "thumbprint": "[parameters('certificateThumbprint')]",
              "x509StoreName": "[parameters('certificateStoreValue')]"
         }
    

    Yeni bir "thumbprintSecondary" etiketi ekleyin ve "[parameters('secCertificateThumbprint')]" değerini verin.

    Bu nedenle artık kaynak tanımı aşağıdaki gibi görünmelidir (şablonun kaynağına bağlı olarak, aşağıdaki kod parçacığı gibi olmayabilir).

          "properties": {
            "certificate": {
              "thumbprint": "[parameters('certificateThumbprint')]",
              "thumbprintSecondary": "[parameters('secCertificateThumbprint')]",
              "x509StoreName": "[parameters('certificateStoreValue')]"
         }
    

    Sertifikayı almak istiyorsanız, yeni sertifikayı birincil olarak belirtin ve geçerli birincili ikincil olarak taşıyın. Bu, geçerli birincil sertifikanızın tek bir dağıtım adımında yeni sertifikaya devrederek sonuçlandırılmasına neden olur.

          "properties": {
            "certificate": {
              "thumbprint": "[parameters('secCertificateThumbprint')]",
              "thumbprintSecondary": "[parameters('certificateThumbprint')]",
              "x509StoreName": "[parameters('certificateStoreValue')]"
         }
    
  4. Tüm Microsoft.Compute/virtualMachineScaleSets kaynak tanımlarında değişiklik yapın - Microsoft.Compute/virtualMachineScaleSets kaynak tanımını bulun. "virtualMachineProfile" altındaki "publisher": "Microsoft.Azure.ServiceFabric" bölümüne gidin.

    Service Fabric yayımcı ayarlarında bunun gibi bir şey görmeniz gerekir.

    Json_Pub_Setting1

    Yeni sertifika girdilerini ekleyin

                   "certificateSecondary": {
                        "thumbprint": "[parameters('secCertificateThumbprint')]",
                        "x509StoreName": "[parameters('certificateStoreValue')]"
                        }
                      },
    
    

    Özellikler artık şöyle görünmelidir

    Json_Pub_Setting2

    Sertifikayı almak istiyorsanız, yeni sertifikayı birincil olarak belirtin ve geçerli birincili ikincil olarak taşıyın. Bu, geçerli sertifikanızın tek bir dağıtım adımında yeni sertifikaya geçişiyle sonuç alır.

                   "certificate": {
                       "thumbprint": "[parameters('secCertificateThumbprint')]",
                       "x509StoreName": "[parameters('certificateStoreValue')]"
                         },
                   "certificateSecondary": {
                        "thumbprint": "[parameters('certificateThumbprint')]",
                        "x509StoreName": "[parameters('certificateStoreValue')]"
                        }
                      },
    

    Özellikler artık şöyle görünmelidir
    Json_Pub_Setting3

  5. Tüm Microsoft.Compute/virtualMachineScaleSets kaynak tanımlarında Değişiklik Yapın - Microsoft.Compute/virtualMachineScaleSets kaynak tanımını bulun. "vaultCertificates" bölümüne gidin: , altında "OSProfile". şuna benzemelidir.

    Json_Pub_Setting4

    secCertificateUrlValue değerini ekleyin. aşağıdaki kod parçacığını kullanın:

                      {
                        "certificateStore": "[parameters('certificateStoreValue')]",
                        "certificateUrl": "[parameters('secCertificateUrlValue')]"
                      }
    
    

    Şimdi elde edilen Json şuna benzer görünmelidir. Json_Pub_Setting5

Not

Şablonunuzdaki tüm Nodetypes/Microsoft.Compute/virtualMachineScaleSets kaynak tanımları için 4. ve 5. adımları tekrarladığınızdan emin olun. Bunlardan birini kaçırırsanız, sertifika bu sanal makine ölçek kümesine yüklenmez ve kümenin kapanması da dahil olmak üzere kümenizde tahmin edilemeyen sonuçlar elde edersiniz (kümenin güvenlik için kullanabileceği geçerli bir sertifikanız yoksa). Devam etmeden önce bir kez daha kontrol et.

Şablon dosyanızı, yukarıda eklediğiniz yeni parametreleri yansıtacak şekilde düzenleyin

Git deposundaki örneği takip etmek için kullanıyorsanız, Örnek 5-VM-1-NodeTypes-Secure.parameters_Step2.JSON'nde değişiklik yapmaya başlayabilirsiniz

Resource Manager Şablon parametre dosyanızı düzenleyin, secCertificateThumbprint ve secCertificateUrlValue için iki yeni parametre ekleyin.

    "secCertificateThumbprint": {
      "value": "thumbprint value"
    },
    "secCertificateUrlValue": {
      "value": "Refers to the location URL in your key vault where the certificate was uploaded, it is should be in the format of https://<name of the vault>.vault.azure.net:443/secrets/<exact location>"
     },

Şablonu Azure’a dağıtma

  • Artık şablonunuzu Azure'a dağıtmaya hazırsınız. Azure PowerShell sürüm 1+ komut istemi açın.
  • Azure Hesabınızda oturum açın ve belirli Azure aboneliğini seçin. Bu, birden fazla Azure aboneliğine erişimi olan kişiler için önemli bir adımdır.
Connect-AzAccount
Select-AzSubscription -SubscriptionId <Subscription ID> 

Şablonu dağıtmadan önce test edin. Kümenizin şu anda dağıtılan kaynak grubunu kullanın.

Test-AzResourceGroupDeployment -ResourceGroupName <Resource Group that your cluster is currently deployed to> -TemplateFile <PathToTemplate>

Şablonu kaynak grubunuz için dağıtın. Kümenizin şu anda dağıtılan kaynak grubunu kullanın. New-AzResourceGroupDeployment komutunu çalıştırın. Varsayılan değer artımlı olduğundan modu belirtmeniz gerekmez.

Not

Modu Tamamlandı olarak ayarlarsanız, şablonunuzda olmayan kaynakları yanlışlıkla silebilirsiniz. Bu nedenle bu senaryoda kullanmayın.

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName <Resource Group that your cluster is currently deployed to> -TemplateFile <PathToTemplate>

Burada aynı PowerShell'in doldurulmuş bir örneği verilmiştir.

$ResourceGroup2 = "chackosecure5"
$TemplateFile = "C:\GitHub\Service-Fabric\ARM Templates\Cert Rollover Sample\5-VM-1-NodeTypes-Secure_Step2.json"
$TemplateParmFile = "C:\GitHub\Service-Fabric\ARM Templates\Cert Rollover Sample\5-VM-1-NodeTypes-Secure.parameters_Step2.json"

New-AzResourceGroupDeployment -ResourceGroupName $ResourceGroup2 -TemplateParameterFile $TemplateParmFile -TemplateUri $TemplateFile -clusterName $ResourceGroup2

Dağıtım tamamlandıktan sonra yeni Sertifika'yı kullanarak kümenize bağlanın ve bazı sorgular gerçekleştirin. Eğer yapabiliyorsan. Ardından eski sertifikayı silebilirsiniz.

Otomatik olarak imzalanan bir sertifika kullanıyorsanız, bunları yerel Güvenilen Kişiler sertifika deponuza aktarmayı unutmayın.

######## Set up the certs on your local box
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\TrustedPeople -FilePath c:\Mycertificates\chackdanTestCertificate9.pfx -Password (ConvertTo-SecureString -String abcd123 -AsPlainText -Force)
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My -FilePath c:\Mycertificates\chackdanTestCertificate9.pfx -Password (ConvertTo-SecureString -String abcd123 -AsPlainText -Force)

Hızlı başvuru için burada güvenli bir kümeye bağlanma komutu verilmiştir

$ClusterName= "chackosecure5.westus.cloudapp.azure.com:19000"
$CertThumbprint= "70EF5E22ADB649799DA3C8B6A6BF7SD1D630F8F3" 

Connect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `
    -X509Credential `
    -ServerCertThumbprint $CertThumbprint  `
    -FindType FindByThumbprint `
    -FindValue $CertThumbprint `
    -StoreLocation CurrentUser `
    -StoreName My

Hızlı başvuru için burada küme durumunu alma komutu verilmiştir

Get-ServiceFabricClusterHealth 

İstemci sertifikalarını kümeye dağıtma.

Sertifikaların bir anahtar kümesinden Düğümlere dağıtılması için önceki 5. Adımlarda açıklanan adımların aynısını kullanabilirsiniz. Yalnızca farklı parametreleri tanımlamanız ve kullanmanız gerekir.

İstemci sertifikalarını ekleme veya kaldırma

Küme sertifikalarına ek olarak, Service Fabric kümesinde yönetim işlemlerini gerçekleştirmek için istemci sertifikaları ekleyebilirsiniz.

İki tür istemci sertifikası ekleyebilirsiniz: Yönetici veya Salt okunur. Bunlar daha sonra kümedeki yönetici işlemlerine ve Sorgu işlemlerine erişimi denetlemek için kullanılabilir. Varsayılan olarak, küme sertifikaları izin verilen Yönetici sertifikaları listesine eklenir.

İstediğiniz sayıda istemci sertifikası belirtebilirsiniz. Her ekleme/silme işlemi Service Fabric kümesine bir yapılandırma güncelleştirmesi getirir.

İstemci sertifikaları ekleme - portal aracılığıyla Yönetici veya Salt Okunur

  1. Güvenlik bölümüne gidin ve güvenlik bölümünün üst kısmındaki '+ Kimlik Doğrulaması' düğmesini seçin.
  2. 'Kimlik Doğrulaması Ekle' bölümünde 'Kimlik Doğrulama Türü' - 'Salt okunur istemci' veya 'Yönetici istemcisi' öğesini seçin
  3. Şimdi Yetkilendirme yöntemini seçin. Bu, Service Fabric'e konu adını veya parmak izini kullanarak bu sertifikayı araması gerekip gerekmediğini gösterir. Genel olarak, konu adının yetkilendirme yöntemini kullanmak iyi bir güvenlik uygulaması değildir.

İstemci sertifikası ekleme

İstemci Sertifikalarını Silme - portalı kullanarak Yönetici veya Salt Okunur

İkincil sertifikanın küme güvenliği için kullanılmasını kaldırmak için Güvenlik bölümüne gidin ve belirli bir sertifikadaki bağlam menüsünden 'Sil' seçeneğini belirleyin.

Sanal makine ölçek kümesine uygulama sertifikaları ekleme

Uygulamalarınız için kullandığınız bir sertifikayı kümenize dağıtmak için bu örnek PowerShell betiğine bakın.

Sonraki adımlar

Küme yönetimi hakkında daha fazla bilgi için şu makaleleri okuyun: