Scripted Actions Azure Runbook プライベートエンドポイントの有効化

この Scripted Actions は、プライベートエンドポイントとサービスエンドポイントを追加し、Nerdio ManagerApp Serviceがパブリックインターネットを経由するトラフィックなしで、プライベートネットワーク経由でSQL データベース、Key Vault、およびAutomation アカウントに到達できるようにします。次に、SQL データベース、Key Vault、およびそれがカバーするその他のコンポーネントへのパブリックアクセスを制限します。

スクリプトはいつでも再実行でき、新しく有効化されたコンポーネントを同じプライベートネットワークに取り込むことができます。スクリプトは、以前の実行で制限されたものに対してパブリックアクセスを再有効化することはありません。

スクリプトがカバーするコンポーネント

スクリプトは、環境内にデプロイされている場合、以下のコンポーネントをカバーします。

  • Nerdio Manager: Key Vault、SQL Server、Nerdio ManagerAutomation アカウント、Scripted Actions Automation アカウント、App Service、DPSストレージアカウント、およびScripted Actionsストレージアカウント。

  • Cost Calculator: Key Vault、ストレージアカウント、およびWebアプリ。

  • Intune Insights: Key Vault、SQL Server、およびWebアプリ。

  • Real Time Insights: Key Vault、SQL Server、Webアプリ、およびストレージアカウント。

スクリプトの実行後にコンポーネントを有効にした場合は、スクリプトを再度実行して、同じプライベートネットワークに組み込んでください。このスクリプトは、Azure Monitor、Log Analytics、または Application Insights を処理しません。スクリプトでプライベート化されないもの を参照してください。

スクリプトを実行する前に

重要

デフォルトの CssaStorageAccount 値 (Restricted)、または Private を使用すると、スクリプトは Scripted Actions ストレージアカウントへのパブリックアクセスを制限します。Azure runbook がダウンロード モードで実行されている場合、Azure Automation はそれ以降、Scripted Actions のスクリプトをダウンロードできなくなり、その後のすべての Scripted Actions は何も行わずに終了します。これには、このスクリプトのその後の実行も含まれます。スクリプトを実行する前に、Azure Runbook の実行モードを Inline Script に切り替えてください。詳細については、Azure Runbook 用の Scripted Actions を参照してください。

  • ホストが Scripted Actions ストレージアカウントまたは Real-Time Insights App Service へのアクセスを必要とする仮想ネットワークを、Nerdio Manager にリンクします。Restricted 設定では、リンクされたネットワークのサブネットからのみアクセスが許可されます。Azure 環境: リンクされたネットワークとリソースグループ

  • Scripted Actions Automation アカウントで以下の PowerShell モジュールが使用可能であることを確認してください。Az.Accounts、Az.Resources、Az.KeyVault、Az.Sql、Az.Storage、Az.Websites、Az.Network、Az.PrivateDns、および Az.Automation。モジュールが見つからない場合、スクリプトは何も変更せずに停止し、そのモジュール名を表示します。

スクリプトの動作

スクリプトを実行すると、次の処理を実行します。

  • プライベートエンドポイント VNet とそのサブネットを作成するか、既存のものを使用します。スクリプトは、まず Nerdio Manager リソース グループ内で VNet を検索し、次にサブスクリプションの残りの部分で検索します。

  • プライベート DNS ゾーンを作成して VNet にリンクするか、既存のゾーンを使用します (ExistingDNSZonesRG および SkipDNS を参照)。スクリプトはサブスクリプションで既存のプライベートエンドポイントを検索します。

  • プライベートエンドポイントを作成し、App Service を App Service サブネットに接続し、指定した VNet をピアリングします。

  • VNet 統合された App Service ワーカー内から、Key Vault (ポート 443)、SQL Server (ポート 1433)、および DPS ストレージアカウント (BLOB、ポート 443) への接続プローブを実行します。いずれかのターゲットで失敗した場合、スクリプトはエラーで停止し、その実行では何もプライベート化されません。

  • 以下のパラメーターに従い、対象となるコンポーネントのパブリックネットワークアクセスを無効にします。プライベートエンドポイントまたは DNS ゾーングループの作成に失敗した場合、スクリプトは何もプライベート化せず、失敗したコンポーネントを一覧表示します。

  • ストレージアカウントと SQL Server の最小 TLS バージョンを 1.2 に設定し、ストレージアカウントでの匿名パブリック BLOB アクセスを禁止します。

  • プライベートエンドポイントサブネットまたは App Service サブネットにアタッチされているネットワークセキュリティグループとルートテーブルについて警告します。スクリプトはそれらをレポートするだけです。変更は行いません。

  • Nerdio Manager App Service を再起動します。

同じスクリプトが過去 10 分以内に実行された場合、スクリプトは再実行されず、前回の出力を再表示します。

プライベートエンドポイント名など、スクリプトが作成するリソースの名前をカスタマイズするには、スクリプトをクローン作成し、スクリプトの先頭にある変数を編集してください。

ランタイムパラメーター

次のパラメーターは、ランタイムで指定できます。

パラメータ

既定

説明

PrivateLinkVnetName

nmw-private-vnet

プライベートエンドポイント用の VNet。VNet が存在しない場合は、作成されます。既存の VNet を指定する場合、VNet またはそのリソースグループは、[システム] > [設定] > [Azure] で Nerdio Manager にリンクする必要があります。

VnetAddressRange

10.250.250.0/23

プライベートエンドポイント VNet のアドレス範囲。VNet が既に存在する場合は無視されます。

PrivateEndpointSubnetName

nmw-privateendpoints-subnet

プライベートエンドポイントサブネットの名前。サブネットが存在しない場合は、作成されます。

PrivateEndpointSubnetRange

10.250.250.0/24

プライベートエンドポイント VNet のアドレス範囲。サブネットが既に存在する場合は無視されます。

AppServiceSubnetName

nmw-app-subnet

App Service サブネットの名前。サブネットが存在しない場合は、作成されます。

AppServiceSubnetRange

10.250.251.0/26

App Service サブネットのアドレス範囲。サブネットが既に存在する場合は無視されます。既存のサブネットのサイズを変更するには、「App Service サブネットのサイズ変更」を参照してください。

ExistingDNSZonesRG

なし

新しいプライベートエンドポイントで使用するためにすでに設定されたプライベート DNS ゾーンがある場合は、ここにそのリソースグループを指定してください。スクリプトは既存の DNS ゾーンを見つけて使用します。ゾーン名については、「プライベート DNS ゾーン」を参照してください。

注記

このリソースグループは、システム > 設定 > Azure 内の Nerdio Manager にリンクする必要があります。または、Nerdio Manager にゾーンに対する「プライベート DNS ゾーン共同作成者」ロールが付与されている必要があります。

ExistingDNSZonesSubId

なし

リソース グループが Nerdio Manager とは異なるサブスクリプションにある場合の、ExistingDNSZonesRG のサブスクリプション ID です。このパラメーターは、ExistingDNSZonesRG と一緒にのみ使用してください。

CssaStorageAccount

Restricted

Scripted Actions のストレージアカウントへのネットワークアクセスを制御します。有効な値は次のとおりです。

  • Restricted:プライベートエンドポイントを作成し、Microsoft.Storage サービスエンドポイントが有効になっているリンク済みネットワークのサブネットに対してのみ、ストレージアカウントのパブリックエンドポイントへのアクセスを制限します。ストレージアカウントとは異なるリージョンのサブネットには、Microsoft.Storage.Global を使用してください。

  • パブリックストレージアカウントは変更されません。

  • Private:プライベートエンドポイントを作成し、許可リストはなく、パブリックアクセスを完全に無効にします。

このスクリプトは、作成していないサブネット上でサービス エンドポイントを有効にしません。サービス エンドポイントがないサブネットをレポートし、それらをスキップします。サービス エンドポイントを持つサブネットを持つリンク済みネットワークがない場合、Restricted は何も変更しません。空の許可リストでストレージ アカウントを制限することは Private と同じ効果を持つためです。

より制限の厳しい設定が、後の実行で緩和されることはありません。パブリックアクセスを再度許可するには、Azure ポータルで変更してください。

注記

Privateを使用すると、AVD セッションホストを含む、プライベートエンドポイントへのネットワークアクセスがないクライアントは、ストレージアカウントへのアクセスを失い、それを必要とする Scripted Actions はそれらのホスト上で失敗します。PeerVnetIdsを使用して、セッションホストのVNetをプライベートエンドポイントのVNetにピアリングし、DNSがストレージアカウントのFQDNをプライベートエンドポイントに解決するようにしてください。または、Restrictedを使用します。

PeerVnetIds

なし

オプション。有効な値は「すべて」またはプライベートエンドポイント VNet にピア接続する VNets の Azure リソース ID のカンマ区切りリストです。Allを指定すると、同じサブスクリプション内のすべてのリンク済みVNetがピアリングされます。VNetまたはそのリソースグループは、System > Settings > AzureのNerdio Managerにリンクされている必要があり、VNetはNerdio Managerと同じサブスクリプション内にある必要があります。他のサブスクリプションのVNetは手動でピアリングしてください。

MakeAppServicePrivateがtrueであるか、RtiAppServiceがPublicではない場合、スクリプトはアプリサービスのプライベートDNSゾーンをピアリングされたVNetにもリンクします。

MakeAppServicePrivate

False

Nerdio ManagerApp ServiceおよびIntune Insights Webアプリへのアクセスを制限します。これをtrueに設定すると、このスクリプトが作成するVNet上のホスト、またはピアリングされたVNet上のホストのみがそれらにアクセスできます。Intune Insights WebアプリはNerdio Manager内に表示されるため、両方に同じクライアントから到達できる必要があります。

警告

このオプションを有効にすると、Nerdio Managerにアクセスできなくなる可能性があります。パラメーターをfalseに戻しても、パブリックアクセスは再度有効になりません。パブリックアクセスを再度許可するには、Azure ポータルで変更してください。

RtiAppService

パブリック

Real-Time Insights App Service のネットワークアクセスを制御します。有効な値は次のとおりです。

  • パブリックApp Serviceを変更せずにそのままにします。

  • Restricted:Microsoft.Webサービスエンドポイントが有効になっているリンク済みネットワークのサブネットに対して、パブリックエンドポイントを制限します。

  • Private:パブリックネットワークアクセスを完全に無効にします。

警告

RestrictedおよびPrivateは、Windows 365 Cloud PCやローミング中のIntune管理デバイスなど、プライベートVNetへのネットワークアクセス権を持たないデバイスを、警告なしに遮断する可能性があります。ピアリングやファイアウォールルールによって、それらのアクセスを復元することはできません。唯一の症状は、Real Time Insightsの履歴が表示されなくなることです。

SkipDNS

False

プライベートエンドポイントのAレコードを書き込むゾーングループを含め、すべてのDNSゾーンの作成、検索、およびリンクをスキップします。ご自身でDNSを管理している場合にのみ使用してください。SkipDNSとExistingDNSZonesRGの両方を設定すると、スクリプトはエラーで停止します。

警告

スクリプトは、同じ実行でKey VaultおよびSQL Serverのパブリックアクセスを無効にします。DNSレコードがプライベートエンドポイントに解決されるまで、Nerdio Managerはそれらに到達できません。

App Serviceへのアクセス

次の表は、スクリプトが各App Serviceへのパブリックアクセスをどのように制御するかを示しています。

App Service

制御元

振る舞い

App Service

MakeAppServicePrivate

trueに設定すると、スクリプトはパブリックアクセスを無効にします。それ以外の場合は、パブリックアクセスをそのままにします。

Intune Insights Webアプリ

MakeAppServicePrivate

Nerdio ManagerApp Service内に表示されるため、それに従います。Nerdio Manager

コスト計算ツールWebアプリ

構成不可

MakeAppServicePrivateに関係なく、常にプライベートになります。Nerdio ManagerApp Serviceのみがこれと通信し、そのトラフィックはプライベートネットワークを使用します。

Real-Time Insights App Service

RtiAppService

Publicはそのままにし、Restrictedはパブリックエンドポイントをリンクされたネットワークに制限し、Privateはパブリックアクセスを無効にします。

スクリプトがプライベートにしないもの

  • Azure Resource Managerコントロールプレーンのトラフィック(management.azure.com、または米国政府クラウドの場合はmanagement.usgovcloudapi.net)。

  • Azure Monitor、Log Analytics ワークスペース、Application Insights。スクリプトはそれらを変更しません。

  • ストレージアカウントのキューおよびファイルサブリソース。このスクリプトは、対象となる各ストレージアカウントに対してBLOB プライベートエンドポイントを作成し、Real-Time Insights ストレージアカウントに対してテーブルプライベートエンドポイントを作成します。これは、Nerdio Manager内のいずれも他を使用しないためです。

プライベート DNS ゾーン

このスクリプトは、以下のプライベート DNS ゾーンを作成するか、ExistingDNSZonesRG 内でそれらを検索します。

サービス

Azure Commercial

Azure US Government

Key Vault

privatelink.vaultcore.azure.net

privatelink.vaultcore.usgovcloudapi.net

SQL サーバー

privatelink.database.windows.net

privatelink.database.usgovcloudapi.net

自動化

privatelink.azure-automation.net

privatelink.azure-automation.us

Blob Storage

privatelink.blob.core.windows.net

privatelink.blob.core.usgovcloudapi.net

テーブルストレージ

privatelink.table.core.windows.net

privatelink.table.core.usgovcloudapi.net

App Service

privatelink.azurewebsites.net

privatelink.azurewebsites.us

ロックアウトから復旧する

このスクリプトは、パブリックネットワークアクセスを無効にするだけです。再度有効にすることはありません。リソースへのパブリックアクセスを再度許可するには、Azure ポータルでネットワーク設定を変更してください。

  • SkipDNS を true に設定し、プライベートエンドポイントの DNS レコードがプライベート IP アドレスに解決されない場合、Nerdio Manager は Key Vault と SQL Server に到達できず、アプリは 500.30 エラーで読み込みに失敗します。DNS レコードを作成するか、解決されるまで Azure ポータルで Key Vault と SQL Server へのパブリックアクセスを許可してください。

  • MakeAppServicePrivate を true に設定した後に Nerdio Manager に到達できない場合は、プライベート VNet またはピアリングされた VNet 上のホストから接続するか、Azure ポータルで App Service へのパブリックアクセスを許可してください。

  • Scripted Actions のストレージアカウントが制限された後に Scripted Actions の実行が停止した場合は、Azure Runbook の実行モードを Inline Script に切り替えてください。Azure Runbook 用 Scripted Actions

App Service サブネットのサイズ変更

このスクリプトは、既存の App Service サブネットのアドレス範囲を変更しません。Azure では、App Service のリージョン VNet 統合に /28 以上のサブネットが必要であり、サブネットに統合される最大 4 つのアプリ(Nerdio Manager App Service、Intune Insights、Cost Calculator、Real-Time Insights)に対しては /26 が推奨されます。以前のバージョンのスクリプトでは、/28 サブネットが作成されていました。デフォルトは /26 です。

既存のサブネットが /28 より小さい場合、スクリプトはエラーで停止します。また、/27 または /28 の場合は警告が表示されます。アプリがサブネットと統合されている間は、サブネットの範囲を広げることはできません。

既存の App Service サブネットを広げるには:
  1. Azure ポータルで、そのサブネットを使用している各アプリから VNet 統合を削除します。

  2. サブネットのアドレス範囲を /26 以上に変更します。

  3. スクリプトを実行してください。これにより、アプリがサブネットと再統合されます。

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください

コメント (0件のコメント)

サインインしてコメントを残してください。