Azure IoT İşlemleri Önizleme dağıtımında güvenli ayarları etkinleştirme
Önemli
Azure Arc tarafından etkinleştirilen Azure IoT İşlemleri Önizlemesi şu anda önizleme aşamasındadır. Bu önizleme yazılımını üretim ortamlarında kullanmamalısınız.
Genel kullanıma sunulan bir sürüm kullanıma sunulduğunda yeni bir Azure IoT İşlemleri yüklemesi dağıtmanız gerekir. Önizleme yüklemesini yükseltemezsiniz.
Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.
Azure IoT İşlemleri için güvenli ayarlar, OPC UA sunucusu veya veri akışı uç noktaları gibi bulut bağlantıları için Gizli Dizi Yönetimi kurulumu ve kullanıcı tarafından atanan yönetilen kimliktir.
Bu makalede, ilk dağıtımınız sırasında yapmadıysanız güvenli ayarları etkinleştirme yönergeleri sağlanır.
Önkoşullar
Test ayarlarıyla dağıtılan bir Azure IoT İşlemleri örneği. Örneğin, Hızlı Başlangıç: Codespaces'ta Azure IoT İşlemleri'ni çalıştırma başlığı altındaki yönergeleri izlediyseniz.
Geliştirme makinenizde Yüklü Azure CLI. Bu senaryo için Azure CLI sürüm 2.64.0 veya üzeri gerekir. Sürümünüzü denetlemek ve
az upgrade
gerekirse güncelleştirmek için kullanınaz --version
. Daha fazla bilgi için bkz . Azure CLI'yi yükleme.Azure CLI için aşağıdaki uzantıların en son sürümleri:
az extension add --upgrade --name azure-iot-ops az extension add --upgrade --name connectedk8s
kümeyi iş yükü kimliği için yapılandırma
İş yükü kimliği, diğer hizmet ve kaynaklara kimlik doğrulaması yapmak ve bunlara erişmek için yazılım iş yüküne (uygulama, hizmet, betik veya kapsayıcı gibi) atadığınız bir kimliktir. Kubernetes ve Azure IoT İşlemleri için Azure Key Vault Gizli Depolama uzantısının Microsoft Entra ID korumalı kaynaklara erişebilmesi için kümenizde iş yükü kimliği özelliğinin etkinleştirilmesi gerekir. Daha fazla bilgi edinmek için bkz . İş yükü kimlikleri nedir?.
Not
Bu adım yalnızca Ubuntu + K3s kümeleri için geçerlidir. Azure Arc özellikli Kubernetes kümenizi hazırlama bölümünde kullanılan Azure Kubernetes Service (AKS) Edge Essentials için hızlı başlangıç betiği, iş yükü kimliğini varsayılan olarak etkinleştirir. AKS Edge Temel Parçalar kümeniz varsa sonraki bölüme geçin.
K3s kümenizde zaten iş yükü kimliğinin etkinleştirilip etkinleştirilmediğinden emin değilseniz, aşağıdakileri denetlemek için az connectedk8s show komutunu çalıştırın:
az connectedk8s show --name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --query "{oidcIssuerEnabled:oidcIssuerProfile.enabled, workloadIdentityEnabled: securityProfile.workloadIdentity.enabled}"
Henüz ayarlanmadıysa, mevcut bir bağlı K3s kümesinde iş yükü kimliğini etkinleştirmek için aşağıdaki adımları kullanın:
Kümede iş yükü kimliği özelliğini etkinleştirmek için az connectedk8s update komutunu kullanın.
#!/bin/bash # Variable block RESOURCE_GROUP="<RESOURCE_GROUP>" CLUSTER_NAME="<CLUSTER_NAME>" # Enable workload identity az connectedk8s update --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --enable-oidc-issuer --enable-workload-identity
Kümenin veren URL'sini almak için az connectedk8s show komutunu kullanın. Daha sonra K3s yapılandırma dosyasına eklemek için not alın.
#!/bin/bash # Variable block RESOURCE_GROUP="<RESOURCE_GROUP>" CLUSTER_NAME="<CLUSTER_NAME>" # Get the cluster's issuer url SERVICE_ACCOUNT_ISSUER=$(az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsv) echo "SERVICE_ACCOUNT_ISSUER = $SERVICE_ACCOUNT_ISSUER"
K3s yapılandırma dosyası oluşturun.
sudo nano /etc/rancher/k3s/config.yaml
config.yaml dosyasına aşağıdaki içeriği ekleyin:
kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Dosya düzenleyicisini kaydedin ve çıkın.
k3s'i yeniden başlatın.
systemctl restart k3s
Gizli Dizi Yönetimini Ayarlama
Azure IoT İşlemleri için Gizli Dizi Yönetimi, gizli dizileri bir Azure Key Vault'tan eşitlemek ve uçta Kubernetes gizli dizileri olarak depolamak için Gizli Dizi Deposu uzantısını kullanır. Gizli Dizi Deposu uzantısı, gizli dizilerin depolandığı Azure Key Vault'a erişimi olan, kullanıcı tarafından atanan yönetilen kimliği gerektirir. Daha fazla bilgi edinmek için bkz . Azure kaynakları için yönetilen kimlikler nelerdir?.
Gizli Dizi Yönetimi'nin ayarlanması için şu adımları izleyin:
Gizli dizileri depolamak için kullanılan bir Azure Key Vault oluşturun ve kullanıcı hesabınıza rolle
Key Vaults Secrets Officer
gizli dizileri yönetme izinleri verin.Gizli Dizi Deposu uzantısı için kullanıcı tarafından atanan bir yönetilen kimlik oluşturun.
Azure IoT İşlemleri örneğini gizli dizi eşitlemesi için ayarlamak için az iot ops secretsync enable komutunu kullanın. Şu komut:
- Kullanıcı tarafından atanan yönetilen kimliği kullanarak bir federasyon kimliği kimlik bilgisi oluşturur.
- Azure Key Vault'a erişim için kullanıcı tarafından atanan yönetilen kimliğe rol ataması ekler.
- Azure IoT İşlemleri örneğiyle ilişkili en düşük gizli dizi sağlayıcısı sınıfını ekler.
# Variable block INSTANCE_NAME="<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 --name $INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \ --kv-resource-id $KEYVAULT_RESOURCE_ID
Gizli dizi eşitleme kurulumu tamamlandıktan sonra Azure IoT İşlemleri ile gizli dizileri kullanmayı öğrenmek için Gizli Dizileri Yönetme konusuna bakabilirsiniz.
Bulut bağlantıları için kullanıcı tarafından atanan yönetilen kimliği ayarlama
Veri akışı uç noktaları gibi bazı Azure IoT İşlemleri bileşenleri, bulut bağlantıları için kullanıcı tarafından atanan yönetilen kimliği kullanır. Gizli Dizi Yönetimi'ni ayarlamak için kullanılan kimlikten ayrı bir kimlik kullanmanız önerilir.
Bulut bağlantıları için kullanılan kullanıcı tarafından atanan bir yönetilen kimlik oluşturun.
Not
Bunun hangi bulut kaynağı için kullanılacağına kimlik izni vermeniz gerekir.
Kimliği Azure IoT İşlemleri örneğine atamak için az iot ops identity assign komutunu kullanın. Bu komut ayrıca belirtilen bağlı kümenin OIDC verenini ve Azure IoT İşlemleri hizmet hesabını kullanarak bir federasyon kimliği kimlik bilgisi oluşturur.
# Variable block INSTANCE_NAME="<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 $INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
Artık bu yönetilen kimliği bulut bağlantıları için veri akışı uç noktalarında kullanabilirsiniz.