Удостоверение модуля Azure AAD с центром событий Azure

У меня есть требование использовать механизм управляемой идентификации для доступа к концентратору событий из потокового приложения Spark, работающего в кубернетах. Я прохожу через управляемое удостоверение модуля Azure AAD для подключения к концентратору событий Azure и не нашел никаких документов, касающихся концентратора событий.

  1. Поддерживает ли удостоверение модуля Azure AAD безопасный доступ к ресурсу концентратора событий с помощью Azure Active Directory.

  2. Может ли кто-нибудь предоставить шаги / код для использования концентратора событий с модулем AAD

заранее спасибо

1 ответ

Да, удостоверение модуля Aad поддерживает подключение к Azure Eventhub. Вот шаги: Во-первых, настройте свой кластер для включения управляемого удостоверения. Кроме того, этот сценарий относится к кластерам с отключенным RBAC.

  • az aks update -g <rg-name> -n <cluster-name> --enable-managed-identity
  • az aks update -g <rg-name> -n <cluster-name> --enable-pod-identity --enable-pod-identity-with-kubenet

После этой настройки вы можете включить идентификацию модуля aad:

  • kubectl apply -f https://raw.githubusercontent.com/Azure/aad-pod-identity/v1.8.13/deploy/infra/deployment.yaml
  • kubectl apply -f https://raw.githubusercontent.com/Azure/aad-pod-identity/v1.8.13/deploy/infra/mic-exception.yaml

проверьте, что 3 модуля в пространстве имен по умолчанию запущены и работают —>kubectl get po

создайте идентификатор модуля aad с помощью cli:

      az aks pod-identity add --resource-group <rg-name>
   --cluster-name <cluster-name> --namespace <your-ns> --name <name> --identity-resource-id <resource-id>
   --binding-selector <name_that_use_in_aks>

проверял тождество присвоено или нет?

      az aks show -g <rg-name> -n <cluster-name> | grep -i
   <user-assigned-managed-identiy-name>

Если ваша конфигурация действительна, вот пример кода Java:

          ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder() //
                        .clientId("your_id") //
                        .maxRetry(1) //
                        .retryTimeout(duration -> Duration.ofMinutes(1)) //
                        .build();
    
EventHubProducerAsyncClient eventHubProducerAsyncClient = new EventHubClientBuilder() //
                        .credential("fullyQualifiedNamespace", "eventhub-name", managedIdentityCredential) //
                        .buildAsyncProducerClient();
EventData eventData = new EventData(message.getBytes(StandardCharsets.UTF_8));
        eventData.setContentType("application/json");
        CreateBatchOptions options = new CreateBatchOptions() //
                .setPartitionKey("1");

        eventHubProducerAsyncClient.createBatch(options) //
                .flatMap(batch -> { //
                    batch.tryAdd(eventData);
                    return eventHubProducerAsyncClient.send(batch);
                }) //
                .subscribe(unused -> {
                }, error -> {
                    LOGGER.error("Error occurred while sending message:" + error);

                    // Omit the exceptions in case sth went wrong while sending merge result
                }, () -> { //
                    LOGGER.debug("Message send successfully.");
                });

Больше подробностей:

страница, связанная с майкрософтстраница, связанная с идентификацией модуля aad

Другие вопросы по тегам