この 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 分以内に実行された場合、スクリプトは再実行されず、前回の出力を再表示します。
プライベートエンドポイント名など、スクリプトが作成するリソースの名前をカスタマイズするには、スクリプトをクローン作成し、スクリプトの先頭にある変数を編集してください。
次のパラメーターは、ランタイムで指定できます。
|
パラメータ |
既定 |
説明 |
|---|---|---|
|
|
|
プライベートエンドポイント用の VNet。VNet が存在しない場合は、作成されます。既存の VNet を指定する場合、VNet またはそのリソースグループは、[システム] > [設定] > [Azure] で Nerdio Manager にリンクする必要があります。 |
|
|
|
プライベートエンドポイント VNet のアドレス範囲。VNet が既に存在する場合は無視されます。 |
|
|
|
プライベートエンドポイントサブネットの名前。サブネットが存在しない場合は、作成されます。 |
|
|
|
プライベートエンドポイント VNet のアドレス範囲。サブネットが既に存在する場合は無視されます。 |
|
|
|
App Service サブネットの名前。サブネットが存在しない場合は、作成されます。 |
|
|
|
App Service サブネットのアドレス範囲。サブネットが既に存在する場合は無視されます。既存のサブネットのサイズを変更するには、「App Service サブネットのサイズ変更」を参照してください。 |
|
|
なし |
新しいプライベートエンドポイントで使用するためにすでに設定されたプライベート DNS ゾーンがある場合は、ここにそのリソースグループを指定してください。スクリプトは既存の DNS ゾーンを見つけて使用します。ゾーン名については、「プライベート DNS ゾーン」を参照してください。 注記このリソースグループは、システム > 設定 > Azure 内の Nerdio Manager にリンクする必要があります。または、Nerdio Manager にゾーンに対する「プライベート DNS ゾーン共同作成者」ロールが付与されている必要があります。 |
|
|
なし |
リソース グループが Nerdio Manager とは異なるサブスクリプションにある場合の、 |
|
|
|
Scripted Actions のストレージアカウントへのネットワークアクセスを制御します。有効な値は次のとおりです。
このスクリプトは、作成していないサブネット上でサービス エンドポイントを有効にしません。サービス エンドポイントがないサブネットをレポートし、それらをスキップします。サービス エンドポイントを持つサブネットを持つリンク済みネットワークがない場合、 より制限の厳しい設定が、後の実行で緩和されることはありません。パブリックアクセスを再度許可するには、Azure ポータルで変更してください。 注記
|
|
|
なし |
オプション。有効な値は「すべて」またはプライベートエンドポイント VNet にピア接続する VNets の Azure リソース ID のカンマ区切りリストです。
|
|
|
False |
Nerdio ManagerApp ServiceおよびIntune Insights Webアプリへのアクセスを制限します。これを 警告このオプションを有効にすると、Nerdio Managerにアクセスできなくなる可能性があります。パラメーターを |
|
|
パブリック |
Real-Time Insights App Service のネットワークアクセスを制御します。有効な値は次のとおりです。
警告
|
|
|
False |
プライベートエンドポイントのAレコードを書き込むゾーングループを含め、すべてのDNSゾーンの作成、検索、およびリンクをスキップします。ご自身でDNSを管理している場合にのみ使用してください。 警告スクリプトは、同じ実行でKey VaultおよびSQL Serverのパブリックアクセスを無効にします。DNSレコードがプライベートエンドポイントに解決されるまで、Nerdio Managerはそれらに到達できません。 |
次の表は、スクリプトが各App Serviceへのパブリックアクセスをどのように制御するかを示しています。
|
App Service |
制御元 |
振る舞い |
|---|---|---|
|
App Service |
|
|
|
Intune Insights Webアプリ |
|
Nerdio ManagerApp Service内に表示されるため、それに従います。Nerdio Manager |
|
コスト計算ツールWebアプリ |
構成不可 |
|
|
Real-Time Insights App Service |
|
|
-
Azure Resource Managerコントロールプレーンのトラフィック(
management.azure.com、または米国政府クラウドの場合はmanagement.usgovcloudapi.net)。 -
Azure Monitor、Log Analytics ワークスペース、Application Insights。スクリプトはそれらを変更しません。
-
ストレージアカウントのキューおよびファイルサブリソース。このスクリプトは、対象となる各ストレージアカウントに対してBLOB プライベートエンドポイントを作成し、Real-Time Insights ストレージアカウントに対してテーブルプライベートエンドポイントを作成します。これは、Nerdio Manager内のいずれも他を使用しないためです。
このスクリプトは、以下のプライベート DNS ゾーンを作成するか、ExistingDNSZonesRG 内でそれらを検索します。
|
サービス |
Azure Commercial |
Azure US Government |
|---|---|---|
|
Key Vault |
|
|
|
SQL サーバー |
|
|
|
自動化 |
|
|
|
Blob Storage |
|
|
|
テーブルストレージ |
|
|
|
App Service |
|
|
このスクリプトは、パブリックネットワークアクセスを無効にするだけです。再度有効にすることはありません。リソースへのパブリックアクセスを再度許可するには、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 サブネットのアドレス範囲を変更しません。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 サブネットを広げるには:
-
Azure ポータルで、そのサブネットを使用している各アプリから VNet 統合を削除します。
-
サブネットのアドレス範囲を /26 以上に変更します。
-
スクリプトを実行してください。これにより、アプリがサブネットと再統合されます。
コメント (0件のコメント)