Bagikan melalui


Mengaktifkan pengaturan aman di Operasi Azure IoT

Pengaturan aman untuk Operasi Azure IoT mencakup penyiapan manajemen rahasia dan identitas terkelola yang ditetapkan pengguna untuk koneksi cloud; misalnya, server OPC UA atau titik akhir aliran data.

Artikel ini menyediakan instruksi untuk mengaktifkan pengaturan aman jika Anda tidak melakukannya selama penyebaran awal Anda.

Prasyarat

  • Instans Operasi Azure IoT yang disebarkan dengan pengaturan pengujian.

  • Azure CLI diinstal pada komputer pengembangan Anda. Skenario ini memerlukan Azure CLI versi 2.53.0 atau yang lebih tinggi. Gunakan az --version untuk memeriksa versi Anda dan az upgrade untuk memperbarui jika perlu. Untuk informasi selengkapnya, lihat Cara menginstal Azure CLI.

  • Versi terbaru ekstensi connectedk8s untuk Azure CLI. Gunakan perintah berikut untuk menambahkan ekstensi atau memperbaruinya ke versi terbaru:

    az extension add --upgrade --name connectedk8s
    
  • Ekstensi Operasi Azure IoT untuk Azure CLI. Gunakan perintah berikut untuk menambahkan ekstensi atau memperbaruinya ke versi terbaru:

    az extension add --upgrade --name azure-iot-ops
    

Aktifkan kluster untuk pengaturan aman

Untuk mengaktifkan sinkronisasi rahasia untuk instans Azure IoT Operations Anda, penerbit OIDC dan fitur federasi identitas beban kerja harus diaktifkan pada kluster Anda. Konfigurasi ini diperlukan untuk ekstensi Azure Key Vault Secret Store agar dapat menyinkronkan rahasia dari Azure Key Vault dan menyimpannya di edge sebagai rahasia Kubernetes.

Untuk kluster Azure Kubernetes Service (AKS), pengeluar sertifikat OIDC dan fitur identitas beban kerja hanya dapat diaktifkan pada saat pembuatan kluster. Untuk kluster di AKS Edge Essentials, skrip otomatis memungkinkan fitur-fitur ini secara default. Untuk kluster AKS di Azure Local, ikuti langkah-langkah untuk Menyebarkan dan mengonfigurasi identitas beban kerja pada AKS yang diaktifkan oleh kluster Azure Arc untuk membuat kluster baru jika Anda tidak memilikinya dengan fitur yang diperlukan.

Untuk kluster k3s di Kubernetes, Anda dapat memperbarui kluster yang ada. Untuk mengaktifkan dan mengonfigurasi fitur-fitur ini, gunakan langkah-langkah berikut:

  1. Perbarui kluster untuk mengaktifkan pengeluar sertifikat OIDC dan identitas beban kerja.

    az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
    

    Jika Anda mengaktifkan pengeluar sertifikat OIDC dan fitur identitas beban kerja saat membuat kluster, Anda tidak perlu menjalankan perintah sebelumnya lagi. Gunakan perintah berikut untuk memeriksa status pengeluar sertifikat OIDC dan fitur identitas beban kerja untuk kluster Anda:

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
    
  2. Dapatkan URL pengeluar sertifikat kluster.

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    Catat output dari perintah ini untuk digunakan di langkah berikutnya.

  3. Buat file konfigurasi k3s pada komputer tempat Anda menyebarkan kluster Kubernetes:

    sudo nano /etc/rancher/k3s/config.yaml
    
  4. Tambahkan konten berikut ke config.yaml file, ganti <SERVICE_ACCOUNT_ISSUER> placeholder dengan URL penerbit kluster yang Anda catat sebelumnya.

    kube-apiserver-arg:
    - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
    - service-account-max-token-expiration=24h
    

    Simpan file dan keluar dari editor nano.

  5. Mulai ulang layanan k3s:

    sudo systemctl restart k3s
    

Menyiapkan manajemen rahasia

Manajemen rahasia untuk Operasi Azure IoT menggunakan ekstensi Secret Store untuk mensinkronkan rahasia dari Azure Key Vault dan menyimpannya di perangkat tepi sebagai rahasia Kubernetes. Ekstensi Secret Store memerlukan identitas terkelola yang ditetapkan pengguna dengan akses ke Azure Key Vault tempat rahasia disimpan. Untuk mempelajari selengkapnya, lihat Apa itu identitas terkelola untuk sumber daya Azure?.

Untuk menyiapkan manajemen rahasia:

  1. Buat Azure Key Vault yang digunakan untuk menyimpan rahasia, dan berikan izin akun pengguna Anda untuk mengelola rahasia dengan peran tersebut Key Vault Secrets Officer .

  2. Buat identitas terkelola yang ditetapkan pengguna untuk ekstensi Secret Store yang akan digunakan untuk mengakses brankas kunci.

  3. Gunakan perintah az iot ops secretsync enable untuk menyiapkan instans Operasi Azure IoT untuk sinkronisasi rahasia. Perintah ini:

    • Membuat kredensial identitas gabungan dengan menggunakan identitas terkelola yang ditetapkan pengguna.
    • Menambahkan penetapan peran ke identitas terkelola yang ditetapkan pengguna untuk akses ke Azure Key Vault.
    • Menambahkan kelas penyedia rahasia minimum yang terkait dengan instans Azure IoT Operations.
    # Variable block
    AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>"
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>"
    KEYVAULT_NAME="<KEYVAULT_NAME>"
    
    #Get the resource ID of the user-assigned managed identity
    USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Get the resource ID of the key vault
    KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Enable secret synchronization
    az iot ops secretsync enable --instance $AIO_INSTANCE_NAME \
                                 --resource-group $RESOURCE_GROUP \
                                 --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \
                                 --kv-resource-id $KEYVAULT_RESOURCE_ID
    

Setelah penyiapan sinkronisasi rahasia selesai, Anda dapat merujuk ke Kelola rahasia untuk penyebaran Operasi Azure IoT Anda untuk mempelajari cara menggunakan rahasia dengan Operasi Azure IoT.

Menyiapkan identitas terkelola yang ditetapkan pengguna untuk koneksi cloud

Beberapa komponen Operasi Azure IoT, seperti titik akhir aliran data, menggunakan identitas terkelola yang ditetapkan pengguna untuk koneksi cloud. Kami menyarankan agar Anda menggunakan identitas terpisah dari identitas yang Anda gunakan untuk menyiapkan manajemen rahasia.

  1. Buat identitas terkelola yang ditugaskan pengguna yang digunakan untuk koneksi cloud.

    Catatan

    Anda harus memberikan izin identitas ke sumber daya cloud mana pun yang akan Anda gunakan identitas terkelolanya.

  2. Gunakan perintah az iot ops identity assign untuk menetapkan identitas ke instans Azure IoT Operations. Perintah ini juga membuat kredensial identitas federasi dengan menggunakan penerbit OIDC dari kluster terhubung yang ditunjukkan dan akun layanan Azure IoT Operations.

    # Variable block
    AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>"
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>"
    
    #Get the resource ID of the user-assigned managed identity
    USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Assign the identity to the Azure IoT Operations instance
    az iot ops identity assign --name $AIO_INSTANCE_NAME \
                               --resource-group $RESOURCE_GROUP \
                               --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
    
  3. Mulai ulang pod registri skema untuk menerapkan identitas baru.

    kubectl delete pods adr-schema-registry-0 adr-schema-registry-1 -n azure-iot-operations
    

Sekarang Anda dapat menggunakan identitas terkelola ini di titik akhir aliran data untuk koneksi cloud.