Zarządzanie wpisami tajnymi dla wdrożenia usługi Azure IoT Operations Preview
Ważne
Usługa Azure IoT Operations Preview — włączona przez usługę Azure Arc jest obecnie dostępna w wersji zapoznawczej. Nie należy używać tego oprogramowania w wersji zapoznawczej w środowiskach produkcyjnych.
Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.
Zarządzanie wpisami tajnymi w usłudze Azure IoT Operations Preview używa usługi Azure Key Vault jako rozwiązania magazynu zarządzanego w chmurze i używa sterownika CSI magazynu wpisów tajnych do ściągania wpisów tajnych z chmury i przechowywania ich na brzegu.
Wymagania wstępne
- Klaster Kubernetes z obsługą usługi Arc. Aby uzyskać więcej informacji, zobacz Przygotowywanie klastra.
Konfigurowanie magazynu wpisów tajnych w klastrze
Operacje usługi Azure IoT obsługują usługę Key Vault do przechowywania wpisów tajnych i certyfikatów. Polecenie az iot ops init
interfejsu wiersza polecenia platformy Azure automatyzuje kroki konfigurowania jednostki usługi w celu udzielenia dostępu do magazynu kluczy i skonfigurowania wpisów tajnych potrzebnych do uruchamiania operacji usługi Azure IoT.
Aby uzyskać więcej informacji, zobacz Wdrażanie rozszerzeń usługi Azure IoT Operations w wersji zapoznawczej w klastrze Kubernetes.
Ręczne konfigurowanie jednostki usługi i usługi Key Vault
Jeśli konto platformy Azure wykonujące az iot ops init
polecenie nie ma uprawnień do wykonywania zapytań dotyczących programu Microsoft Graph i tworzenia jednostek usługi, możesz przygotować te argumenty z góry i użyć dodatkowych argumentów podczas uruchamiania polecenia interfejsu wiersza polecenia zgodnie z opisem w temacie Wdrażanie rozszerzeń operacji usługi Azure IoT.
Konfigurowanie jednostki usługi na potrzeby interakcji z usługą Key Vault za pośrednictwem identyfikatora Entra firmy Microsoft
Wykonaj następujące kroki, aby utworzyć nową rejestrację aplikacji dla aplikacji Operacje usługi Azure IoT, która będzie używana do uwierzytelniania w usłudze Key Vault.
Najpierw zarejestruj aplikację przy użyciu identyfikatora Entra firmy Microsoft:
Na pasku wyszukiwania w witrynie Azure Portal wyszukaj i wybierz pozycję Microsoft Entra ID.
Wybierz pozycję Rejestracje aplikacji w sekcji Zarządzanie w menu Microsoft Entra ID.
Wybierz opcjęNowa rejestracja.
Na stronie Rejestrowanie aplikacji podaj następujące informacje:
Pole Wartość Nazwa/nazwisko Podaj nazwę aplikacji. Obsługiwane typy kont Upewnij się, że wybrano opcję Konta tylko w tym katalogu organizacyjnym (<tylko YOUR_TENANT_NAME> — pojedyncza dzierżawa). Identyfikator URI przekierowania Wybierz pozycję Sieć Web jako platformę. Możesz pozostawić pusty adres internetowy. Wybierz pozycję Zarejestruj.
Po utworzeniu aplikacji następuje przekierowanie do jej strony zasobów.
Skopiuj identyfikator aplikacji (klienta) ze strony przeglądu rejestracji aplikacji. Ta wartość będzie używana jako argument podczas uruchamiania wdrożenia operacji usługi Azure IoT za
az iot ops init
pomocą polecenia .
Następnie nadaj aplikacji uprawnienia do usługi Key Vault:
Na stronie zasobów aplikacji wybierz pozycję Uprawnienia interfejsu API w sekcji Zarządzanie menu aplikacji.
Wybierz Dodaj uprawnienie.
Na stronie Żądanie uprawnień interfejsu API przewiń w dół i wybierz pozycję Azure Key Vault.
Wybieranie delegowanych uprawnień.
Zaznacz pole wyboru, aby wybrać user_impersonation uprawnienia.
Wybierz Przyznaj uprawnienia.
Utwórz wpis tajny klienta dodany do klastra Kubernetes w celu uwierzytelnienia w magazynie kluczy:
Na stronie zasobów aplikacji wybierz pozycję Certyfikaty i wpisy tajne w sekcji Zarządzanie menu aplikacji.
Wybierz Nowy klucz tajny klienta.
Podaj opcjonalny opis wpisu tajnego, a następnie wybierz pozycję Dodaj.
Skopiuj wartość z nowego wpisu tajnego. Użyjesz tej wartości później po uruchomieniu polecenia
az iot ops init
.
Pobierz identyfikator obiektu jednostki usługi:
- Na stronie Przegląd aplikacji w sekcji Podstawy wybierz link Nazwa aplikacji w obszarze Aplikacja zarządzana w katalogu lokalnym. Spowoduje to otwarcie właściwości aplikacji dla przedsiębiorstw. Skopiuj identyfikator obiektu do użycia podczas uruchamiania polecenia
az iot ops init
.
Tworzenie magazynu kluczy
Utwórz nowe wystąpienie usługi Azure Key Vault i upewnij się, że ma on ustawiony model uprawnień na zasady dostępu do magazynu.
az keyvault create --enable-rbac-authorization false --name "<your unique key vault name>" --resource-group "<the name of the resource group>"
Jeśli masz istniejący magazyn kluczy, możesz zmienić model uprawnień, wykonując następujące czynności:
az keyvault update --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --enable-rbac-authorization false
Podczas uruchamiania az iot ops init
polecenia będzie potrzebny identyfikator zasobu usługi Key Vault. Aby pobrać identyfikator zasobu, uruchom polecenie:
az keyvault show --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --query id -o tsv
Ustawianie zasad dostępu jednostki usługi w usłudze Key Vault
Nowo utworzona jednostka usługi wymaga zasad wpisów tajnychlist
i get
dostępu dla operacji usługi Azure IoT do pracy z magazynem wpisów tajnych.
Aby zarządzać zasadami dostępu usługi Key Vault, podmiot zabezpieczeń zalogowany w interfejsie wiersza polecenia wymaga wystarczających uprawnień platformy Azure. W modelu kontroli dostępu opartej na rolach (RBAC) to uprawnienie jest uwzględniane w rolach współautora usługi Key Vault lub wyższych.
Napiwek
Jeśli do utworzenia magazynu kluczy użyto zalogowanego podmiotu zabezpieczeń interfejsu wiersza polecenia, prawdopodobnie masz już odpowiednie uprawnienia. Jeśli jednak wskazujesz inny lub istniejący magazyn kluczy, sprawdź, czy masz wystarczające uprawnienia do ustawiania zasad dostępu.
Uruchom następujące polecenie, aby przypisać wpis tajnylist
i get
uprawnienia do jednostki usługi.
az keyvault set-policy --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --object-id <Object ID copied from Enterprise Application SP in Microsoft Entra ID> --secret-permissions get list
Przekazywanie argumentów jednostki usługi i usługi Key Vault do wdrożenia operacji usługi Azure IoT
Korzystając z przewodnika Wdrażanie rozszerzeń operacji usługi Azure IoT, przekaż dodatkowe flagi do az iot ops init
polecenia, aby użyć wstępnie skonfigurowanej jednostki usługi i magazynu kluczy.
W poniższym przykładzie pokazano, jak przygotować klaster dla operacji usługi Azure IoT bez pełnego wdrażania go przy użyciu --no-deploy
flagi. Możesz również uruchomić polecenie bez tego argumentu dla domyślnego wdrożenia operacji usługi Azure IoT.
az iot ops init --name "<your unique key vault name>" --resource-group "<the name of the resource group>" \
--kv-id <Key Vault Resource ID> \
--sp-app-id <Application registration App ID (client ID) from Microsoft Entra ID> \
--sp-object-id <Object ID copied from Enterprise Application in Microsoft Entra ID> \
--sp-secret "<Client Secret from App registration in Microsoft Entra ID>" \
--no-deploy
Jednym z kroków wykonywanych init
przez polecenie jest upewnienie się, że wszystkie klasy dostawcy wpisów tajnych (SPCs) wymagane przez operacje usługi Azure IoT mają domyślny wpis tajny skonfigurowany w magazynie kluczy. Jeśli wartość domyślnego wpisu tajnego nie istnieje init
, zostanie utworzona. Ten krok wymaga, aby podmiot zabezpieczeń zalogowany do interfejsu wiersza polecenia miał uprawnienia wpisu tajnego set
. Jeśli chcesz użyć istniejącego wpisu tajnego jako domyślnego wpisu tajnego SPC, możesz określić go za pomocą parametru --kv-sat-secret-name
, w którym przypadku zalogowany podmiot zabezpieczeń wymaga tylko uprawnień wpisów tajnych get
.
Dodawanie wpisu tajnego do składnika Operacje usługi Azure IoT
Po skonfigurowaniu magazynu wpisów tajnych w klastrze można tworzyć i dodawać wpisy tajne usługi Key Vault.
Utwórz wpis tajny w usłudze Key Vault z dowolną potrzebną nazwą i wartością. Wpis tajny można utworzyć przy użyciu witryny Azure Portal lub polecenia az keyvault secret set .
W klastrze zidentyfikuj klasę dostawcy wpisów tajnych (SPC) dla składnika, do którego chcesz dodać wpis tajny. Na przykład
aio-default-spc
. Użyj następującego polecenia, aby wyświetlić listę wszystkich spC w klastrze:kubectl get secretproviderclasses -A
Otwórz plik w preferowanym edytorze tekstów. Jeśli używasz k9s, wpisz
e
, aby edytować.Dodaj obiekt wpisu tajnego do listy w obszarze
spec.parameters.objects.array
. Na przykład:spec: parameters: keyvaultName: my-key-vault objects: | array: - | objectName: PlaceholderSecret objectType: secret objectVersion: ""
Zapisz zmiany i zastosuj je do klastra. Jeśli używasz k9s, zmiany zostaną automatycznie zastosowane.
Sterownik CSI aktualizuje wpisy tajne przy użyciu interwału sondowania, dlatego nowy wpis tajny nie jest dostępny dla zasobnika do następnego interwału sondowania. Aby natychmiast zaktualizować składnik, uruchom ponownie zasobniki dla składnika. Aby na przykład ponownie uruchomić składnik procesora danych, uruchom następujące polecenia:
kubectl delete pod aio-dp-reader-worker-0 -n azure-iot-operations
kubectl delete pod aio-dp-runner-worker-0 -n azure-iot-operations
Wpisy tajne usługi Azure IoT MQ (wersja zapoznawcza)
Kroki zarządzania wpisami tajnymi za pomocą usługi Azure Key Vault dla usługi Azure IoT MQ w wersji zapoznawczej są różne. Aby uzyskać więcej informacji, zobacz Zarządzanie wpisami tajnymi MQ przy użyciu usługi Key Vault.