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

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:

  1. Na pasku wyszukiwania w witrynie Azure Portal wyszukaj i wybierz pozycję Microsoft Entra ID.

  2. Wybierz pozycję Rejestracje aplikacji w sekcji Zarządzanie w menu Microsoft Entra ID.

  3. Wybierz opcjęNowa rejestracja.

  4. 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.
  5. Wybierz pozycję Zarejestruj.

    Po utworzeniu aplikacji następuje przekierowanie do jej strony zasobów.

  6. 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:

  1. Na stronie zasobów aplikacji wybierz pozycję Uprawnienia interfejsu API w sekcji Zarządzanie menu aplikacji.

  2. Wybierz Dodaj uprawnienie.

  3. Na stronie Żądanie uprawnień interfejsu API przewiń w dół i wybierz pozycję Azure Key Vault.

  4. Wybieranie delegowanych uprawnień.

  5. Zaznacz pole wyboru, aby wybrać user_impersonation uprawnienia.

  6. Wybierz Przyznaj uprawnienia.

Utwórz wpis tajny klienta dodany do klastra Kubernetes w celu uwierzytelnienia w magazynie kluczy:

  1. Na stronie zasobów aplikacji wybierz pozycję Certyfikaty i wpisy tajne w sekcji Zarządzanie menu aplikacji.

  2. Wybierz Nowy klucz tajny klienta.

  3. Podaj opcjonalny opis wpisu tajnego, a następnie wybierz pozycję Dodaj.

  4. 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:

  1. 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 initpolecenia 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.

  1. 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 .

  2. 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
    
  3. Otwórz plik w preferowanym edytorze tekstów. Jeśli używasz k9s, wpisz e , aby edytować.

  4. 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: ""
    
  5. 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.