Aracılığıyla paylaş


Azure IoT İşlemleri dağıtımınız için sertifikaları yönetme

Azure IoT İşlemleri, tüm bileşenler arasındaki iletişimi şifrelemek için TLS kullanır. Bu makale, iç ve dış iletişimler için sertifikaları yönetme ve üretim ortamı dağıtımında iç iletişimler için kendi sertifika yetkilisi vericinizi kullanma yöntemlerini açıklar.

Önkoşullar

Dış iletişim sertifikalarını yönetmek için güvenli ayarlarla dağıtılan bir Azure IoT İşlemleri örneği gerekir. Azure IoT İşlemlerini test ayarlarıyla dağıttıysanız, önce güvenli ayarları etkinleştirmeniz gerekir.

İç iletişim için sertifikaları yönetme

Azure IoT İşlemleri içindeki tüm iletişimler TLS kullanılarak şifrelenir. Kullanmaya başlamanıza yardımcı olmak için Azure IoT İşlemleri, TLS sunucu sertifikaları için varsayılan kök CA ve veren ile dağıtılır. Geliştirme ve test amacıyla varsayılan kurulumu kullanabilirsiniz. Üretim dağıtımı için kendi CA vereninizi ve kurumsal bir PKI çözümünü kullanmanızı öneririz.

TLS sunucu sertifikaları için varsayılan otomatik olarak imzalanan veren ve kök CA sertifikası

Kullanmaya başlamanıza yardımcı olmak için Azure IoT İşlemleri, TLS sunucu sertifikaları için varsayılan otomatik olarak imzalanan veren ve kök CA sertifikasıyla dağıtılır. Bu vereni geliştirme ve test için kullanabilirsiniz. Azure IoT İşlemleri TLS sertifikalarını yönetmek için cert-manager ve güven paketlerini bileşenlere dağıtmak için trust-manager kullanır.

  • CA sertifikası otomatik olarak imzalanır ve Azure IoT İşlemleri dışındaki istemciler buna güvenmez. CA sertifikasının konusudur CN=Azure IoT Operations Quickstart Root CA - Not for Production. Sertifika yöneticisi CA sertifikasını otomatik olarak döndürür.

  • Kök CA sertifikası, ad alanı altında adlı azure-iot-operations-aio-ca-certificate bir Kubernetes gizli dizisinde cert-manager depolanır.

  • azure-iot-operations-aio-ca-trust-bundle ad alanı altında azure-iot-operations adlı bir ConfigMap, kök CA sertifikasının genel bölümünü depolar. CA sertifikasını ConfigMap'ten alabilir ve kubectl ve openssl ile inceleyebilirsiniz. Trust-manager, cert-manager CA sertifikasını döndürdiğinde ConfigMap'in güncelleştirilmiş kalmasını sağlar.

    kubectl get configmap azure-iot-operations-aio-ca-trust-bundle -n azure-iot-operations -o "jsonpath={.data['ca\.crt']}" | openssl x509 -text -noout
    
    Certificate: 
        Data: 
            Version: 3 (0x2) 
            Serial Number: 
                <SERIAL-NUMBER> 
            Signature Algorithm: sha256WithRSAEncryption 
            Issuer: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production 
            Validity 
                Not Before: Sep 18 20:42:19 2024 GMT 
                Not After : Sep 18 20:42:19 2025 GMT 
            Subject: O=Microsoft, CN=Azure IoT Operations Quickstart Root CA - Not for Production 
            Subject Public Key Info: 
                Public Key Algorithm: rsaEncryption 
                    Public-Key: (2048 bit) 
                    Modulus: <MODULUS> 
                                        Exponent: 65537 (0x10001) 
            X509v3 extensions: 
                X509v3 Key Usage: critical 
                    Certificate Sign, CRL Sign 
                X509v3 Basic Constraints: critical 
                    CA:TRUE 
                X509v3 Subject Key Identifier: 
                    <SUBJECT-KEY-IDENTIFIER> 
        Signature Algorithm: sha256WithRSAEncryption 
    [Signature] 
    
  • Varsayılan olarak, içinde zaten adlı azure-iot-operations namespacebir veren yapılandırılmıştırazure-iot-operations-aio-certificate-issuer. IoT İşlemleri için tüm TLS sunucu sertifikaları için ortak veren olarak kullanılır. MQTT aracısı, 18883 numaralı bağlantı noktasındaki varsayılan TLS dinleyicisi için TLS sunucu sertifikalarını vermek amacıyla, kendi kendine imzalanan bir sertifika sağlayıcısı tarafından imzalanan aynı CA sertifikasından oluşturulmuş bir sertifika sağlayıcısı kullanır. Vereni aşağıdaki komutla inceleyebilirsiniz:

    kubectl get clusterissuer azure-iot-operations-aio-certificate-issuer -o yaml
    
    apiVersion: cert-manager.io/v1 
    kind: ClusterIssuer 
    metadata: 
      creationTimestamp: "2024-09-18T20:42:17Z" 
      generation: 1 
      name: azure-iot-operations-aio-certificate-issuer 
      resourceVersion: "36665" 
      uid: 592700a6-95e0-4788-99e4-ea93934bd330 
    spec: 
      ca: 
        secretName: azure-iot-operations-aio-ca-certificate 
    status: 
      conditions: 
      - lastTransitionTime: "2024-09-18T20:42:22Z" 
        message: Signing CA verified 
        observedGeneration: 1 
        reason: KeyPairVerified 
        status: "True" 
        type: Ready 
    

Kendi vereninizi getirin

Üretim dağıtımları için, sertifikaları yönetmek üzere kurumsal PKI ile Azure IoT İşlemleri ayarlamanızı ve iç iletişimler için TLS sertifikaları vermek üzere varsayılan otomatik olarak imzalanan vereni kullanmak yerine kurumsal PKI'nızla birlikte çalışan kendi CA vereninizi getirmenizi öneririz.

İç iletişimler için Azure IoT İşlemlerini kendi vereninizle ayarlamak için , kümenize bir örnek dağıtmadan önce aşağıdaki adımları kullanın:

  1. Kümenizi ayarlamak için Kümenizi hazırlama'daki adımları izleyin.

  2. cert-manageryükleyin. Cert-manager TLS sertifikalarını yönetir.

  3. trust-manageryükleyin. Güven yöneticisini yüklerken cert-manager olarak ayarlayın trust namespace . Örneğin:

    helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --set app.trust.namespace=cert-manager --wait
    

    Trust-manager, güven paketini bileşenlere dağıtmak için kullanılır.

  4. Azure IoT İşlemleri ad alanını oluşturun.

    kubectl create namespace azure-iot-operations
    
  5. cert-manager ile çalışan bir veren dağıtın. Desteklenen tüm verenlerin listesi için bkz . cert-manager verenler.

    Veren veya ClusterIssuertüründe Issuer olabilir. kullanılıyorsa Issuer, veren kaynağı Azure IoT İşlemleri ad alanında oluşturulmalıdır.

  6. Azure IoT İşlemleri ad alanında güven paketini ayarlayın.

    1. Güven paketini ayarlamak için Azure IoT İşlemleri ad alanında bir ConfigMap oluşturun. CA sertifikanızın ortak anahtar bölümünü, seçtiğiniz bir anahtar adıyla yapılandırma eşlemesine yerleştirin.

    2. CA sertifikanızın ortak anahtar bölümünü alın. Ortak anahtarı alma adımları, seçtiğiniz verene bağlıdır.

    3. ConfigMap'i oluşturun. Örneğin:

      kubectl create configmap -n azure-iot-operations <YOUR_CONFIGMAP_NAME> --from-file=<CA_CERTIFICATE_FILENAME_PEM_OR_DER>
      
  7. Birkaç değişiklikle Azure IoT İşlemlerini dağıtmak için dağıtma bölümünde yer alan adımları izleyin.

    1. Küme hazırlanırken parametresini --user-trust ekleyin. Örneğin:

      az iot ops init --subscription <SUBSCRIPTION_ID> --cluster <CLUSTER_NAME>  -g <RESOURCE_GROUP> --user-trust
      
    2. --trust-settings Azure IoT İşlemlerini dağıtırken gerekli bilgileri içeren parametresini ekleyin. Örneğin:

      az iot ops create --subscription <SUBSCRIPTION_ID> -g <RESOURCE_GROUP> --cluster <CLUSTER_NAME> --custom-location <CUSTOM_LOCATION> -n <INSTANCE_NAME> --sr-resource-id <SCHEMAREGISTRY_RESOURCE_ID> --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
      

    Uyarı

    Özel konum adı en fazla 63 karakter uzunluğundadır.

Dış iletişim sertifikalarını yönetme

Azure IoT İşlemleri, bulutta yönetilen kasa çözümü olarak Azure Key Vault'u kullanır ve Kubernetes için Azure Key Vault gizli anahtar deposu uzantısını kullanarak gizli anahtarları buluttan alır ve uçta Kubernetes gizli anahtarları olarak depolar.

Önemli

Azure IoT İşlemleri dış iletişimlerin güvenliğini sağlamak için sertifikaları kullansa da, bu sertifikalar Azure Key Vault'ta gizli dizi olarak depolanır. Azure Key Vault'a sertifika eklediğinizde, bunu sertifika kaynağı olarak değil, gizli olarak eklediğinizden emin olun.

Azure Key Vault izinlerini yapılandırma

Kullanıcı, anahtar kasasında gizli bilgiler oluşturmak için işlem deneyiminden yararlanmak amacıyla Azure'da kaynak düzeyinde Key Vault Gizli Bilgi Yetkilisi izinlerine ihtiyaç duyar.

Test veya geliştirme ortamında, Azure IoT İşlemleri örneğinin ve Azure Key Vault örneğinin dağıtıldığı kaynak grubu düzeyinde kullanıcınıza Key Vault Gizli Dizileri Yetkilisi rolünü atamak için aşağıdaki adımları kullanın:

  1. Kaynak grubunun adını bulmak için işlem deneyimi web kullanıcı arabirimine gidin, Örnekler sayfasına gidin ve Azure IoT İşlemleri örneğinizi bulun. Kaynak grubu adı Kaynak grubu alanında gösterilir.

  2. Azure portalına gidin ve ardından Azure IoT İşlemleri örneğinizin ve Azure Key Vault örneğinizin dağıtıldığı kaynak grubuna gidin.

    Tip

    Adı yazarak kaynak grubunu hızlı bir şekilde bulmak için Azure portalının üst kısmındaki arama kutusunu kullanın.

  3. Sol taraftaki menüden Erişim denetimi (IAM) öğesini seçin. Ardından + Ekle > Rol ataması ekle'yi seçin.

  4. Rol sekmesinde, listeden Key Vault Sırlar Görevlisi'ni seçin ve ardından İleri'yi seçin.

  5. Üyeler sekmesinde Kullanıcı, grup veya hizmet sorumlusu'na tıklayın,Üyeleri seç'i seçin, Key Vault Gizli DiziLeri Yetkilisi rolünü atamak istediğiniz kullanıcıyı seçin ve ardından İleri'yi seçin.

  6. Rol atamasını tamamlamak için Gözden geçir ve ata seçeneğini seçin.

Üretim ortamında, Azure IoT İşlemleri ile kullandığınız Azure Key Vault'un güvenliğini sağlamak için en iyi yöntemleri izleyin. Daha fazla bilgi için bkz. Azure Key Vault'un kullanımına yönelik en iyi yöntemler.

Sertifika ekleme ve kullanma

Bağlayıcılar, dış sunucularda uygulama kimlik doğrulamasını yapılandırmak için sertifika yönetimi deneyimini kullanır. Bağlayıcıların dış sunucularla karşılıklı güven oluşturmak için sertifikaları nasıl kullandığı hakkında daha fazla bilgi edinmek için OPC UA sertifika altyapısını anlama gibi bağlayıcıya özgü sertifika yönetimi belgelerine bakın.

Azure IoT İşlemlerini güvenli ayarlarla dağıttığınızda, Azure Key Vault'a sertifika eklemeye başlayabilir ve bunları Dış bağlantılar için Güven listesinde ve Veren listesi depolarında kullanılacak Kubernetes kümesiyle eşitleyebilirsiniz. Her bağlayıcının güvendiği ve bağlandığı dış sunucuların sertifikalarını depolamak için kendi güven listesi vardır.

Dış iletişim sertifikalarını yönetmek için şu adımları izleyin:

  1. Azure IoT İşlemleri deneyimi'ne gidin ve sitenizi ve Azure IoT İşlemleri örneğini seçin.

  2. Sol gezinti bölmesinde Cihazlar'ı seçin.

  3. Sertifikaları ve sırları yönet seçin.

    Sol gezinti bölmesindeki Sertifikaları ve gizli dizileri yönet seçeneğini gösteren ekran görüntüsü.

  4. Sertifikalar ve Gizli Diziler sayfasında Yeni sertifika ekle'yi seçin.

    Cihazlar sayfasında Yeni sertifika ekle düğmesini gösteren ekran görüntüsü.

  5. Yeni bir sertifikayı iki yolla ekleyebilirsiniz:

    • Sertifikayı Karşıya Yükle: Azure Key Vault'a bir sır olarak eklemek ve gizli dizi deposu uzantısını kullanarak otomatik olarak kümeye senkronize etmek üzere bir sertifika yükler.

      • Sertifikayı Azure Key Vault'a ekleyip kümeyle eşitlemeden önce doğru sertifikaya sahip olduğunuzdan emin olmak için yükledikten sonra sertifika ayrıntılarını görüntüleyin.
      • Gelecekte hangi gizliliğin sizin gizlinizi temsil ettiğini tanıyabilmeniz için sezgisel bir isim kullanın.
      • Sertifikayı kullanan bağlayıcı için uygun sertifika depoyu seçin. Örneğin, OPC UA güven listesi.

      Yeni bir sertifika eklerken cihazlar sayfasında

      Uyarı

      Yalnızca sertifikayı karşıya yüklemek gizli veriyi Azure Key Vault'a eklemez ve kümeyle eşitlemez; değişikliklerin uygulanması için Uygula'yı seçmeniz gerekir.

    • Azure Key Vault'tan Ekle: Mevcut bir gizli anahtarı kümeye eşitlemek üzere Azure Key Vault'tan ekleyin.

      Cihazlar sayfasına yeni bir sertifika eklerken Azure Key Vault'tan ekle seçeneğini gösteren ekran görüntüsü.

      Uyarı

      Kümeyle eşitlemek istediğiniz sertifikayı barındıran gizli diziyi seçtiğinizden emin olun. Doğru sertifika olmayan bir gizli seçildiğinde bağlantı başarısız olur.

  6. Liste görünümünü kullanarak eşitlenmiş sertifikaları yönetebilirsiniz. Eşitlenen tüm sertifikaları ve eşitlendiği sertifika depolarını görüntüleyebilirsiniz:

    Cihazlar sayfasındaki sertifikaların listesini ve Güven Listesi ve Veren Listesi'ne göre filtrelemeyi gösteren ekran görüntüsü.

Eşitlenen sertifikaları da silebilirsiniz. Eşitlenmiş bir sertifikayı sildiğinizde, bu sertifika sadece Kubernetes kümesinden eşitlenmiş sertifikayı siler ve Azure Key Vault'tan içerilen gizli referansı silmez. Sertifika gizlisini anahtar kasasından el ile silmeniz gerekir.

Sertifika oluşturmak için CLI komutlarını kullanma

Önceki bölümlerde, işlem deneyimi web kullanıcı arabirimini ve Azure portalını kullanarak sertifikaların nasıl yönetileceğini açıklanmıştır. OPC UA güveni ve veren listeleri için bağlayıcıdaki sertifikaları yönetmek için Azure CLI'yi de kullanabilirsiniz. Daha fazla bilgi için bkz. az iot ops connector opcua trust ve az iot ops connector opcua issuer komutları.

Tip

Bu sertifikaların Azure Key Vault'ta gizli dizi olarak depolanması gerektiğini unutmayın.

Azure Key Vault'a gizli olarak sertifika ekleme

Daha önce Azure Key Vault'a eklenmiş olan mevcut sertifikaları seçmek için işlem deneyimini kullanıyorsanız, gizli dizilerin Azure IoT İşlemleri tarafından desteklenen bir biçimde ve kodlamada olduğundan emin olun.

Azure Key Vault'a PEM sertifika gizli dizisi eklemek için aşağıdaki örneğe benzer bir komut kullanabilirsiniz:

az keyvault secret set \
  --vault-name <your-key-vault-name> \
  --name my-cert-pem \
  --file ./my-cert.pem \
  --encoding hex \
  --content-type 'application/x-pem-file'

Azure Key Vault'a ikili DER sertifika gizli dizisi eklemek için aşağıdaki örneğe benzer bir komut kullanabilirsiniz:

az keyvault secret set \
  --vault-name <your-key-vault-name> \
  --name my-cert-der \
  --file ./my-cert.der \
  --encoding hex \
  --content-type 'application/pkix-cert'