Удостоверение модуля Azure AAD с центром событий Azure
У меня есть требование использовать механизм управляемой идентификации для доступа к концентратору событий из потокового приложения Spark, работающего в кубернетах. Я прохожу через управляемое удостоверение модуля Azure AAD для подключения к концентратору событий Azure и не нашел никаких документов, касающихся концентратора событий.
Поддерживает ли удостоверение модуля Azure AAD безопасный доступ к ресурсу концентратора событий с помощью Azure Active Directory.
Может ли кто-нибудь предоставить шаги / код для использования концентратора событий с модулем 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