Azure Private Link を使用して、ネットワークを Azure Automation に安全に接続する

Azure プライベート エンドポイントは、Azure Private Link を使用するサービスに、プライベートで安全に接続するためのネットワーク インターフェイスです。 プライベート エンドポイントは、ご自分の VNet からのプライベート IP アドレスを使用して、Automation サービスを実質的に VNet に取り込みます。 VNet 上のマシンと Automation アカウントの間のネットワーク トラフィックは、VNet と Microsoft バックボーン ネットワーク上のプライベート リンクを経由することで、パブリック インターネットからの露出を排除します。

たとえば、発信インターネット アクセスを無効にした VNet があるとします。 ただし、Automation アカウントにプライベートにアクセスし、Hybrid Runbook Worker 上で Webhook、State Configuration、runbook ジョブなどの Automation 機能を使用する必要があります。 さらに、VNET を通じてのみユーザーが Automation アカウントにアクセスできるようにしたいと考えています。 プライベート エンドポイントをデプロイすると、これらの目標を達成することができます。

この記事では、Automation アカウントでプライベート エンドポイントを使用する場合および設定する方法について説明します。

Conceptual overview of Private Link for Azure Automation

Note

Azure Automation での Private Link のサポートは、Azure Commercial および Azure US Government のクラウドでのみご利用いただけます。

利点

Private Link を使用すると、次のことができます。

  • パブリック ネットワーク アクセスを開かずに Azure Automation にプライベートに接続する。

  • パブリック ネットワーク アクセスを開かずに Azure Monitor Log Analytics ワークスペースにプライベートに接続する。

    Note

    Log Analytics ワークスペース用の別のプライベート エンドポイントが必要になるのは、ジョブ データを転送するために Automation アカウントが Log Analytics ワークスペースにリンクされていて、Update Management、変更履歴とインベントリ、State Configuration、Start/Stop VMs during off-hours などの機能が有効になっている場合です。 Azure Monitor のプライベート リンクの詳細については、「Azure Private Link を使用して、ネットワークを Azure Monitor に安全に接続する」を参照してください。

  • 承認されたプライベート ネットワーク経由でのみ Automation データにアクセスできるようにする。

  • プライベート エンドポイント経由で接続する Azure Automation リソースを定義して、プライベート ネットワーク経由のデータ流出を防ぐ。

  • ExpressRoute と Private Link を使用して、オンプレミスのプライベート ネットワークを Azure Automation に安全に接続する。

  • すべてのトラフィックを Microsoft Azure のバックボーン ネットワーク内に収める。

詳細については、Private Link の主な利点に関する記事を参照してください。

制限事項

  • Private Link の現在の実装では、Automation アカウントのクラウド ジョブは、プライベート エンドポイントを使用してセキュリティ保護された Azure リソースにアクセスできません。 たとえば、Azure Key Vault、Azure SQL、Azure Storage アカウントなどです。これを回避するには、代わりに Hybrid Runbook Worker を使用します。 そのため、Private Link が有効になっている Automation アカウントに対して Hybrid Runbook Worker を実行するためにオンプレミス VM がサポートされています。
  • Windows または Linux の場合、最新バージョンの Log Analytics エージェントを使用する必要があります。
  • Log Analytics ゲートウェイでは、Private Link はサポートされていません。
  • Automation アカウントの構成で [パブリック アクセス][無効] に設定されている場合、Azure アラート (メトリック、ログ、アクティビティ ログ) を使って Automation Webhook をトリガーすることはできません。

動作方法

Azure Automation プライベート リンクは、1 つまたは複数のプライベート エンドポイント (および、それらが含まれている仮想ネットワーク) を、Automation アカウント リソースに接続します。 これらのエンドポイントは、Webhook を使用して Runbook を開始するマシン、Hybrid Runbook Worker ロールをホストするマシン、および Desired State Configuration (DSC) ノードです。

Automation のプライベート エンドポイントを作成した後で、公開される Automation URL のそれぞれが、VNet の 1 つのプライベート エンドポイントにマップされます。 ご自身またはマシンが Automation URL に直接アクセスできます。

Webhook のシナリオ

Webhook URL に対して POST を行うことで、Runbook を開始できます。 たとえば、URL は https://<automationAccountId>.webhooks.<region>.azure-automation.net/webhooks?token=gzGMz4SMpqNo8gidqPxAJ3E%3d のようになります。

Hybrid Runbook Worker のシナリオ

Azure Automation のユーザー Hybrid Runbook Worker 機能を使用すると、Azure または Azure 以外のマシン (Azure Arc 対応サーバーに登録されているサーバーを含む) で Runbook を直接実行できます。 ロールをホストしているマシンまたはサーバーで、環境内のリソースに対して Runbook を直接実行して、それらのローカル リソースを管理できます。

JRDS エンドポイントは、Runbook の開始と停止、Runbook の worker へのダウンロード、Automation サービスへのジョブ ログ ストリームの送信を行うためにハイブリッド worker によって使用されます。 JRDS エンドポイントを有効にすると、URL は https://<automationaccountID>.jrds.<region>.privatelink.azure-automation.net のようになります。 これにより、Azure Virtual Network に接続されたハイブリッド worker での Runbook の実行により、インターネットへの送信接続を開かなくてもジョブを実行できるようになります。

Note

Azure Automation 用のプライベート リンクの現在の実装では、Azure 仮想ネットワークに接続されている Hybrid Runbook Worker でのジョブの実行のみがサポートされており、クラウド ジョブはサポートされていません。

Update Management でのハイブリッド worker のシナリオ

システム Hybrid Runbook Worker では、Windows および Linux のマシンにユーザー指定の更新プログラムをインストールするために設計された Update Management 機能によって使用される、非表示の一連の Runbook がサポートされています。 Azure Automation Update Management を有効にすると、Log Analytics ワークスペースに接続されたマシンはすべて、システム Hybrid Runbook Worker として自動的に構成されます。

Update Management の概要と構成方法については、「Update Management の概要」をご覧ください。 Update Management 機能は、Log Analytics ワークスペースに依存しているため、このワークスペースを Automation アカウントにリンクする必要があります。 Log Analytics ワークスペースでは、ソリューションによって収集されたデータを格納し、ログ検索とビューをホストします。

Update Management 用に構成されたマシンを、Private Link チャネルを介して安全な方法で Automation および Log Analytics ワークスペースに接続するには、Private Link を使用して構成された Automation アカウントにリンクされている Log Analytics ワークスペースに対して Private Link を有効にする必要があります。

プライベート リンク スコープの外部から Log Analytics ワークスペースにアクセスする方法を制御するには、「Log Analytics の構成」に記載されている手順に従います。 [Allow public network access for ingestion]\(取り込みにパブリック ネットワークを許可する\)[いいえ] に設定した場合、接続されているスコープ外のマシンは、このワークスペースにデータをアップロードできません。 [Allow public network access for queries]\(クエリにパブリック ネットワークを許可する\)[いいえ] に設定した場合、スコープ外のマシンは、このワークスペースのデータにアクセスできません。

DSCAndHybridWorker ターゲット サブリソースを使用して、ユーザーおよびシステムのハイブリッド worker に対して Private Link を有効にします。

Note

Azure の外部でホストされているマシンで、Update Management によって管理され、ExpressRoute プライベート ピアリング、VPN トンネル、ピアリングされた仮想ネットワーク (プライベート エンドポイントを使用) 経由で Azure VNet に接続されているものは、Private Link をサポートしています。

State Configuration (agentsvc) のシナリオ

State Configuration は、任意のクラウドまたはオンプレミスのデータセンターのノードについて PowerShell Desired State Configuration (DSC) の構成を記述、管理、およびコンパイルできる Azure 構成管理サービスを提供します。

コンピューター上のエージェントは DSC サービスに登録され、サービス エンドポイントを使用して DSC 構成をプルします。 エージェント サービス エンドポイントは https://<automationAccountId>.agentsvc.<region>.azure-automation.net のようになります。

パブリック エンドポイントとプライベート エンドポイントの URL は同じですが、プライベート リンクが有効になっている場合は、プライベート IP アドレスにマップされます。

ネットワークに基づく計画

Automation アカウント リソースを設定する前に、ネットワークの分離要件を検討してください。 パブリック インターネットへの仮想ネットワークへのアクセスと、Automation アカウントに対するアクセス制限を評価します (Automation アカウントと統合されている場合は、Azure Monitor ログに対するプライベート リンク グループ スコープの設定も含みます)。 また、サポートされている機能が問題なく動作することを確保するためのプランの一部として、Automation サービス DNS レコードのレビューも含みます。

プライベート エンドポイントへの接続

Automation アカウントのプライベート エンドポイントを作成するには、次の手順に従います。

  1. Azure portal の Private Link センターに移動して、ネットワークに接続するためのプライベート エンドポイントを作成します。

  2. [Private Link センター] で、[プライベート エンドポイントの作成] を選択します。

    Screenshot of how to create a private endpoint.

  3. [基本] で、次の詳細を入力します。

    • サブスクリプション
    • リソース グループ
    • 名前
    • ネットワーク インターフェイス名
    • [リージョン] を入力し、[次へ: リソース] を選択します。

    Screenshot of how to create a private endpoint in Basics tab.

  4. [リソース] で、次の詳細を入力します。

    • [接続方法] (既定のオプション - [マイ ディレクトリ内の Azure リソースに接続します。] を選択します)。
    • サブスクリプション
    • リソースの種類
    • リソース
    • [ターゲット サブリソース] では、シナリオに応じて [Webhook] または [DSCAndHybridWorker] を指定し、[次へ: 仮想ネットワーク] を選択します。

    Screenshot of how to create a private endpoint in Resource tab.

  5. [仮想ネットワーク] で、次の詳細を入力します。

    • 仮想ネットワーク
    • サブネット
    • [このサブネット内のすべてのプライベート エンドポイントに対してネットワーク ポリシーを有効にします] のチェックボックスをオンにします。
    • [IP アドレスを動的に割り当てる] を選択し、[次へ: DNS] を選択します。

    Screenshot of how to create a private endpoint in Virtual network tab.

  6. [DNS] で、[基本][リソース][仮想ネットワーク] タブに入力された情報に従ってデータが設定され、プライベート DNS ゾーンが作成されます。 次の詳細情報を入力します:

    • [プライベート DNS ゾーンと統合する]
    • サブスクリプション
    • [リソース グループ] を入力し、[次へ: タグ] を選択します

    Screenshot of how to create a private endpoint in DNS tab.

  7. [タグ] では、リソースを分類できます。 [名前][値] を選択し、[確認および作成] を選択します。

[確認および作成] ページが表示され、Azure によって構成が検証されます。 パブリック ネットワーク アクセスと Private Link に対する変更が適用されてから、有効になるまでに最長で 35 分かかります。

[Private Link センター] で、[プライベート エンドポイント] を選択して、プライベート リンク リソースを表示します。

Screenshot Automation resource private link.

リソースを選択すると、すべての詳細が表示されます。 これにより、Automation アカウントの新しいプライベート エンドポイントが作成され、仮想ネットワークのプライベート IP アドレスが割り当てられます。 [接続状態][承認済み] と表示されていることを確認します。

同様に、State Configuration (agentsvc) と Hybrid Runbook Worker ジョブ ランタイム (jrds) 用の一意の完全修飾ドメイン名 (FQDN) が作成されます。 それぞれには VNet から別の IP が割り当てられ、[接続状態][承認済み] と表示されます。

サービスのコンシューマーに Automation のリソースに対する Azure RBAC アクセス許可がある場合、コンシューマーは自動の承認方法を選択できます。 この場合、要求が Automation プロバイダーのリソースに到達したときにサービス プロバイダーからのアクションは必要なく、接続が自動的に承認されます。

パブリック ネットワーク アクセスのフラグを設定する

Automation アカウントの構成によって、すべてのパブリック構成を拒否し、プライベート エンドポイント経由の接続のみを許可するようにして、ネットワーク セキュリティを強化できます。 Automation アカウントへのアクセスを VNet 内のみに制限し、パブリック インターネットからのアクセスを許可しない場合は、publicNetworkAccess プロパティを $false に設定できます。

[公衆ネットワーク アクセス] の設定を $false に設定すると、プライベート エンドポイント経由の接続のみが許可され、パブリック エンドポイント経由のすべての接続は Unauthorized というエラー メッセージと HTTP 状態コード 401 が表示されて拒否されます。

次の PowerShell スクリプトは、パブリック ネットワーク アクセス プロパティを Automation アカウント レベルで Get および Set する方法を示しています。

$account = Get-AzResource -ResourceType Microsoft.Automation/automationAccounts -ResourceGroupName "<resourceGroupName>" -Name "<automationAccountName>" -ApiVersion "2020-01-13-preview"
$account.Properties | Add-Member -Name 'publicNetworkAccess' -Type NoteProperty -Value $false -Force
$account | Set-AzResource -Force -ApiVersion "2020-01-13-preview"

また、Azure portal から公衆ネットワーク アクセス プロパティを制御することもできます。 お使いの Automation アカウントで、左側のペインの[アカウント設定] セクションで [ネットワークの分離] を選択します。 [公衆ネットワーク アクセス] の設定を [いいえ] に設定すると、プライベート エンドポイント経由の接続のみが許可され、パブリック エンドポイント経由の接続はすべて拒否されます。

Public Network Access setting

DNS の構成

接続文字列の一部として完全修飾ドメイン名 (FQDN) を使用してプライベート リンク リソースに接続する場合は、割り当てられたプライベート IP アドレスに解決されるように DNS 設定を正しく構成することが重要です。 既存の Azure サービスには、パブリック エンドポイント経由で接続するときに使用する DNS 構成が既に存在している場合があります。 プライベート エンドポイントを使用して接続するには、DNS 構成を確認して更新する必要があります。

プライベート エンドポイントに関連付けられたネットワーク インターフェイスには、特定のプライベート リンク リソースに割り当てられた FQDN やプライベート IP アドレスなど、DNS を構成するために必要な情報の完全なセットが含まれています。

次のオプションを使用して、プライベート エンドポイントの DNS 設定を構成できます。

  • ホスト ファイルを使用する (テストにのみ推奨)。 仮想マシン上のホスト ファイルを使用して、最初に名前解決のために DNS を使用してオーバーライドすることができます。 DNS エントリは次の例のようになります: privatelinkFQDN.jrds.sea.azure-automation.net

  • プライベート DNS ゾーンを使用する。 プライベート DNS ゾーンを使用して、特定のプライベート エンドポイントの DNS 解決をオーバーライドすることができます。 プライベート DNS ゾーンを自分の仮想ネットワークにリンクして、特定のドメインを解決することができます。 仮想マシン上のエージェントがプライベート エンドポイント経由で通信できるようにするには、プライベート DNS レコードを privatelink.azure-automation.net として作成します。 新しい DNS A レコード マッピングをプライベート エンドポイントの IP に追加します。

  • DNS フォワーダーを使用する (オプション)。 DNS フォワーダーを使用して、特定のプライベート リンク リソースの DNS 解決をオーバーライドすることができます。 お使いの DNS サーバーが仮想ネットワーク上にホストされている場合は、プライベート DNS ゾーンを使用する DNS 転送規則を作成して、すべてのプライベート リンク リソースの構成を簡略化することができます。

詳細については、「Azure プライベート エンドポイントの DNS 構成」をご覧ください。

次のステップ

プライベート エンドポイントの詳細については、「Azure プライベート エンドポイントとは」を参照してください。