Azure Stream Analytics ジョブからマネージド ID を使用して Event Hubs にアクセスする

Azure Stream Analytics では、Azure Event Hubs の入力と出力の両方に対してマネージド ID 認証がサポートされています。 マネージド ID を使用すると、パスワードの変更や 90 日ごとに発生するユーザー トークンの有効期限切れによる再認証の必要性など、ユーザー ベースの認証方法の制限がなくなります。 手動による認証の必要がなくなると、Stream Analytics のデプロイを完全に自動化できます。 

マネージド ID は、特定の Stream Analytics ジョブを表す Microsoft Entra ID に登録されているマネージド アプリケーションです。 ファイアウォールや仮想ネットワーク (VNet) の背後にあるイベント ハブなど、対象のリソースに対して認証を行うためにマネージド アプリケーションが使用されます。 ファイアウォールをバイパスする方法の詳細については、「プライベート エンドポイント経由での Azure Event Hubs 名前空間へのアクセスを許可する」を参照してください。

この記事では、Azure portal を使用して、Stream Analytics ジョブのイベント ハブの入力または出力に対してマネージド ID を有効にする方法を示します。 マネージド ID を有効にする前に、まず、Stream Analytics ジョブと Event Hubs リソースを用意する必要があります。

マネージド ID の作成

まず、Azure Stream Analytics ジョブに対するマネージド ID を作成します。 

  1. Azure portal で、Azure Stream Analytics ジョブを開きます。 

  2. 左側のナビゲーション メニューから、 [構成] の下にある [マネージド ID] を選択します。 次に、 [システム割り当てマネージド ID を使用] のチェック ボックスをオンにして、 [保存] を選択します。

    System assigned managed identity

  3. Stream Analytics ジョブの ID 用のサービス プリンシパルが Microsoft Entra ID に作成されます。 新しく作成された ID のライフ サイクルは、Azure によって管理されます。 Stream Analytics ジョブが削除されると、関連付けられた ID (つまりサービス プリンシパル) も Azure によって自動的に削除されます。 

    構成を保存すると、サービス プリンシパルのオブジェクト ID (OID) が、次に示すようにプリンシパル ID として表示されます。

    Principal ID

    サービス プリンシパルは、Stream Analytics ジョブと同じ名前を持ちます。 たとえば、ジョブの名前が MyASAJob であれば、サービス プリンシパルの名前も MyASAJob になります。 

Event Hubs にアクセスするためのアクセス許可を Stream Analytics ジョブに付与する

Stream Analytics ジョブでマネージド ID を使用してイベント ハブにアクセスするために、作成したサービス プリンシパルには、そのイベント ハブに対する特別なアクセス許可が必要です。

  1. [アクセス制御 (IAM)] を選択します。

  2. [追加]>[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。

  3. 次のロールを割り当てます。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

注意

リソースへのアクセス権を付与する場合は、必要最小限のアクセス権を付与する必要があります。 入力と出力とのどちらとしてイベント ハブを構成しているかによっては、Azure Event Hubs データ所有者ロールを割り当てる必要がない場合があります。このロールでは、Event Hubs リソースへの必要以上のアクセスが許可されるためです。 詳細については、「Microsoft Entra ID を使用してアプリケーションを認証して Event Hubs リソースにアクセスする」を参照してください

設定
Role Azure Event Hubs データ所有者
アクセスの割り当て先 ユーザー、グループ、またはサービス プリンシパル
メンバー <Stream Analytics ジョブの名前>

Screenshot that shows Add role assignment page in Azure portal.

また、このロールを Event Hubs 名前空間レベルで付与することもできます。こうすると、当然、その下に作成されたすべてのイベント ハブにアクセス許可が伝搬されます。 つまり、名前空間の下にあるすべてのイベント ハブは、Stream Analytics ジョブでマネージド ID 認証リソースとして使用できます。

注意

グローバル レプリケーションまたはキャッシュの待機時間が原因で、アクセス許可が取り消されたり付与されたりすると、遅延が発生することがあります。 変更は 8 分以内に反映される必要があります。

Event Hubs の入力または出力を作成する

これでマネージド ID が構成されたので、入力または出力としてイベント ハブ リソースを Stream Analytics ジョブに追加できます。 

入力としてイベント ハブを追加する

  1. Stream Analytics ジョブに移動し、 [ジョブ トポロジ] の下にある [入力] ページに移動します。

  2. [ストリーム入力の追加] > [イベント ハブ] を選択します。 入力プロパティ ウィンドウで、お使いのイベント ハブを検索して選択し、[認証モード] ドロップダウン メニューから [マネージド ID] を選択します。

  3. 残りのプロパティを入力し、 [保存] を選択します。

出力としてイベント ハブを追加する

  1. Stream Analytics ジョブに移動し、 [ジョブ トポロジ] の下にある [出力] ページに移動します。

  2. [追加] > [イベント ハブ] を選択します。 出力プロパティ ウィンドウで、お使いのイベント ハブを検索して選択し、[認証モード] ドロップダウン メニューから [マネージド ID] を選択します。

  3. 残りのプロパティを入力し、 [保存] を選択します。

次の手順