Cara memutar rahasia untuk Event Hubs di Azure Stack Hub

Artikel ini akan menunjukkan kepada Anda cara memutar rahasia yang digunakan oleh penyedia sumber daya Azure Event Hubs.

Gambaran umum dan prasyarat

Catatan

Rotasi rahasia untuk penyedia sumber daya nilai tambah (RV) saat ini hanya didukung melalui PowerShell. Juga, Anda harus secara proaktif memutar rahasia untuk RP nilai tambah secara teratur, karena peringatan administratif saat ini tidak dihasilkan.

Seperti infrastruktur Azure Stack Hub, penyedia sumber daya nilai tambah menggunakan rahasia internal dan eksternal. Rahasia dapat mengambil berbagai bentuk, termasuk kata sandi dan kunci enkripsi yang dikelola oleh sertifikat X509. Sebagai operator, Anda bertanggung jawab untuk:

  • Memberikan rahasia eksternal yang diperbarui, seperti sertifikat TLS baru yang digunakan untuk mengamankan titik akhir penyedia sumber daya.
  • Mengelola rotasi rahasia penyedia sumber daya secara teratur.

Dalam persiapan untuk proses rotasi:

  1. Tinjau persyaratan sertifikat infrastruktur kunci umum (PKI) Azure Stack Hub untuk informasi prasyarat penting sebelum memperoleh/memperpanjang sertifikat X509 Anda, termasuk detail tentang format PFX yang diperlukan. Tinjau juga persyaratan yang ditentukan di bagian sertifikat PaaS opsional, untuk penyedia sumber daya nilai tambah khusus Anda.

  2. Jika Anda belum melakukannya, Instal modul PowerShell Az untuk Azure Stack Hub sebelum melanjutkan. Versi 2.0.2-pratinjau atau yang lebih baru diperlukan untuk rotasi rahasia Azure Stack Hub. Untuk informasi selengkapnya, lihat Bermigrasi dari AzureRM ke Azure PowerShell Az di Azure Stack Hub.

Menyiapkan sertifikat TLS baru

Selanjutnya, buat atau perpanjang sertifikat TLS Anda untuk mengamankan titik akhir penyedia sumber daya nilai tambah:

  1. Selesaikan langkah-langkah di Membuat permintaan penandatanganan sertifikat (CSR) untuk perpanjangan sertifikat untuk penyedia sumber daya Anda. Di sini, Anda menggunakan alat Pemeriksa Kesiapan Azure Stack Hub untuk membuat CSR. Pastikan untuk menjalankan cmdlet yang benar untuk penyedia sumber daya Anda, di langkah "Membuat permintaan sertifikat untuk layanan Azure Stack Hub lainnya". Misalnya New-AzsHubEventHubsCertificateSigningRequest digunakan untuk Azure Event Hubs. Setelah selesai, Anda mengirimkan yang dihasilkan. File REQ ke Otoritas Sertifikat (CA) Anda untuk sertifikat baru.

  2. Setelah Anda menerima file sertifikat dari CA, selesaikan langkah-langkah di Menyiapkan sertifikat untuk penyebaran atau rotasi. Anda menggunakan alat Pemeriksa Kesiapan lagi, untuk memproses file yang ditampilkan dari CA.

  3. Terakhir, selesaikan langkah-langkah di Memvalidasi sertifikat PKI Azure Stack Hub. Anda menggunakan alat Pemeriksa Kesiapan sekali lagi, untuk melakukan uji validasi pada sertifikat baru Anda.

Memutar rahasia

Terakhir, tentukan properti penyebaran terbaru penyedia sumber daya dan gunakan untuk menyelesaikan proses rotasi rahasia.

Menentukan properti penyebaran

Penyedia sumber daya disebarkan ke lingkungan Azure Stack Hub Anda sebagai paket produk versi. Paket diberi ID paket unik, dalam format '<product-id>.<installed-version>'. Dengan <product-id> adalah string unik yang mewakili penyedia sumber daya, dan <installed-version> mewakili versi tertentu. Rahasia yang terkait dengan setiap paket disimpan di layanan Azure Stack Hub Key Vault.

Buka konsol PowerShell yang ditinggikan dan selesaikan langkah-langkah berikut untuk menentukan properti yang diperlukan untuk memutar rahasia penyedia sumber daya:

  1. Masuk ke lingkungan Azure Stack Hub Anda menggunakan info masuk operator Anda. Lihat Menyambungkan ke Azure Stack Hub dengan PowerShell untuk skrip masuk PowerShell. Pastikan untuk menggunakan cmdlet PowerShell Az (bukan AzureRM), dan ganti semua nilai placeholder, seperti URL titik akhir dan nama penyewa direktori.

  2. Jalankan Get-AzsProductDeployment cmdlet untuk mengambil daftar penyebaran penyedia sumber daya terbaru. Kumpulan "value" yang ditampilkan berisi elemen untuk setiap penyedia sumber daya yang disebarkan. Temukan penyedia sumber daya yang menarik dan catat nilai untuk properti ini:

    • "name" - berisi ID produk penyedia sumber daya di segmen kedua pada nilainya.
    • "properties"."deployment"."version" - berisi nomor versi yang saat ini disebarkan.

    Dalam contoh berikut, perhatikan penyebaran Azure Event Hubs RP di elemen pertama dalam koleksi, yang memiliki ID produk "microsoft.eventhub", dan versi "1.2003.0.0":

    PS C:\WINDOWS\system32> Get-AzsProductDeployment -AsJson
    VERBOSE: GET https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 2656-char response, StatusCode = OK
    {
        "value":  [
                      {
                          "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productDeployments/microsoft.eventhub",
                          "name":  "global/microsoft.eventhub",
                          "type":  "Microsoft.Deployment.Admin/locations/productDeployments",
                          "properties":  {
                                             "status":  "DeploymentSucceeded",
                                             "subscriptionId":  "b37ae55a-a6c6-4474-ba97-81519412adf5",
                                             "deployment":  {
                                                                "version":  "1.2003.0.0",
                                                                "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                "parameters":  {
    
                                                                               }
                                                            },
                                             "lastSuccessfulDeployment":  {
                                                                              "version":  "1.2003.0.0",
                                                                              "actionPlanInstanceResourceId":"/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/actionplans/abcdfcd3-fef0-z1a3-z85d-z6ceb0f31e36",
                                                                              "parameters":  {
    
                                                                                             }
                                                                          },
                                             "provisioningState":  "Succeeded"
                                         }
                      },
                      {
                      ...
                      }
                  ]
    }
    
  3. Buat ID paket penyedia sumber daya, dengan menggabungkan ID produk dan versi penyedia sumber daya. Misalnya, menggunakan nilai yang berasal dari langkah sebelumnya, ID paket RP Azure Event Hubs adalah microsoft.eventhub.1.2003.0.0.

  4. Menggunakan ID paket yang berasal dari langkah sebelumnya, jalankan Get-AzsProductSecret -PackageId untuk mengambil daftar jenis rahasia yang digunakan oleh penyedia sumber daya. Dalam kumpulan value yang ditampilkan, temukan elemen yang berisi nilai "Certificate" untuk properti "properties"."secretKind". Elemen ini berisi properti untuk rahasia sertifikat RP. Catat nama yang ditetapkan untuk rahasia sertifikat ini, yang diidentifikasi oleh segmen terakhir dari properti "name", tepat di atas "properties".

    Dalam contoh berikut, koleksi rahasia yang dikembalikan untuk Azure Event Hubs RP berisi rahasia "Certificate" bernama aseh-ssl-gateway-pfx.

    PS C:\WINDOWS\system32> Get-AzsProductSecret -PackageId 'microsoft.eventhub.1.2003.0.0' -AsJson
    VERBOSE: GET
    https://adminmanagement.myregion.mycompany.com/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets?api-version=2019-01-01 with 0-char payload
    VERBOSE: Received 617-char response, StatusCode = OK
    {
        "value":  [
                        {
                            "id":  "/subscriptions/ze22ca96-z546-zbc6-z566-z35f68799816/providers/Microsoft.Deployment.Admin/locations/global/productPackages/microsoft.eventhub.1.2003.0.0/secrets/aseh-ssl-gateway-pfx",
                            "name":  "global/microsoft.eventhub.1.2003.0.0/aseh-ssl-gateway-pfx",
                            "type":  "Microsoft.Deployment.Admin/locations/productPackages/secrets",
                            "properties":  {
                                            "secretKind":  "Certificate",
                                            "description":  "Event Hubs gateway SSL certificate.",
                                            "expiresAfter":  "P730D",
                                            "secretDescriptor":  {
    
                                                                    },
                                            "secretState":  {
                                                                "status":  "Deployed",
                                                                "rotationStatus":  "None",
                                                                "expirationDate":  "2022-03-31T00:16:05.3068718Z"
                                                            },
                                            "provisioningState":  "Succeeded"
                                        }
                        },
                        ...
                    ]
    }
    

Memutar rahasia

  1. Gunakan Set-AzsProductSecret cmdlet untuk mengimpor sertifikat baru Anda ke Key Vault, yang akan digunakan oleh proses rotasi. Ganti nilai placeholder variabel yang sesuai sebelum menjalankan skrip:

    Tempat penampung Deskripsi Contoh nilai
    <product-id> ID produk dari penyebaran penyedia sumber daya terbaru. microsoft.eventhub
    <installed-version> Versi penyebaran penyedia sumber daya terbaru. 1.2003.0.0
    <cert-secret-name> Nama tempat rahasia sertifikat disimpan. aseh-ssl-gateway-pfx
    <cert-pfx-file-path> Jalur ke file PFX sertifikat Anda. C:\dir\eh-cert-file.pfx
    <pfx-password> Kata sandi yang ditetapkan ke file .PFX sertifikat Anda. strong@CertSecret6
    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Akhirnya, menggunakan cmdlet Invoke-AzsProductRotateSecretsAction untuk memutar rahasia internal dan eksternal:

    Catatan

    Dibutuhkan sekitar 3,5 - 4 jam untuk menyelesaikan proses rotasi.

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

    Anda dapat memantau kemajuan rotasi rahasia di konsol PowerShell, atau di portal administrator dengan memilih penyedia sumber daya di layanan Marketplace:

    progres-rotasi-rahasia

Pemecahan Masalah

Rotasi rahasia harus berhasil diselesaikan tanpa kesalahan. Jika Anda mengalami salah satu kondisi berikut di portal administrator, buka permintaan dukungan untuk mendapatkan bantuan:

  • Masalah autentikasi, termasuk masalah yang menghubungkan ke penyedia sumber daya Azure Event Hubs.
  • Tidak dapat meningkatkan penyedia sumber daya, atau mengedit parameter konfigurasi.
  • Metrik penggunaan tidak ditampilkan.
  • Tagihan tidak dibuat.
  • Pencadangan tidak terjadi.

Langkah berikutnya

Untuk detail tentang merotasi rahasia infrastruktur Azure Stack Hub Anda, kunjungi Memutar rahasia di Azure Stack Hub.