M07-ユニット 5 仮想ネットワーク サービス エンドポイントを使用して、PaaS リソースへのネットワーク アクセスを制限する
演習のシナリオ
仮想ネットワーク サービス エンドポイントを使うと、一部の Azure サービス リソースへのネットワーク アクセスを、仮想ネットワーク サブネットに制限できます。 また、リソースに対するインターネット アクセスを排除することもできます。 サービス エンドポイントにより、使用している仮想ネットワークからサポートされている Azure サービスへの直接接続が提供されるため、ご自身の仮想ネットワークのプライベート アドレス スペースを使用して、Azure サービスにアクセスできるようになります。 サービス エンドポイントを介して Azure リソースに送信されるトラフィックは、常に Microsoft Azure のバックボーン ネットワーク上に留まります。
この演習では、次のことを行います。
- タスク 1: 仮想ネットワークを作成する
- タスク 2: サービス エンドポイントを有効にする
- タスク 3: サブネットのネットワーク アクセスを制限する
- タスク 4: アウトバウンド規則を追加する
- タスク 5: RDP 接続へのアクセスを許可する
- タスク 6: リソースへのネットワーク アクセスを制限する
- タスク 7: ストレージ アカウントにファイル共有を作成する
- タスク 8: サブネットへのネットワーク アクセスを制限する
- タスク 9: 仮想マシンを作成する
-
タスク 10: ストレージ アカウントへのアクセスを確認する
メモ: このラボをご自分のペースでクリックして進めることができる、 ラボの対話型シミュレーション が用意されています。 対話型シミュレーションとホストされたラボの間に若干の違いがある場合がありますが、示されている主要な概念とアイデアは同じです。
推定時間: 35 分
タスク 1: 仮想ネットワークを作成する
-
Azure portal にログインします。
-
Azure portal のホーム ページで、仮想ネットワークを検索し、結果から [仮想ネットワーク] を選択します。
-
[+ 作成] を選択します。
-
次の情報を入力または選択します。
設定 Value サブスクリプション サブスクリプションを選択します。 リソース グループ (新規の) myResourceGroup Name CoreServicesVNet 場所 [米国東部] を選択します。 -
[IP アドレス] タブを選択し、次の値を入力します (サブネット名を変更するには、 [既定値] を選択します)。
設定 Value アドレス空間 10.0.0.0/16 サブネット名 パブリック サブネットのアドレス範囲 10.0.0.0/24 -
[セキュリティ] タブを選択し、次の値を入力します。
設定 Value BastionHost 無効 DDoS ネットワーク保護 無効 ファイアウォール 無効 -
[確認および作成] を選択します。 リソースが検証された後、[作成] を選択します。
タスク 2: サービス エンドポイントを有効にする
サービス エンドポイントはサービスごと、サブネットごとに有効にします。 サブネットを作成し、そのサブネットに対してサービス エンドポイントを有効にします。
-
ポータルの上部にある [リソース、サービス、ドキュメントの検索] ボックスで、「CoreServicesVNet」と入力します。 検索結果に “CoreServicesVNet” が表示されたら、それを選びます。
-
仮想ネットワークにサブネットを追加します。 次の図に示すように、 [設定] で [サブネット] を選んで、 [+ サブネット] を選びます。
-
[サブネットの追加] で、次の情報を選択または入力します。
設定 Value Name プライベート アドレス範囲 10.0.1.0/24 サービス エンドポイント: サービス [Microsoft.Storage] を選択します -
[保存] を選択します。
2 つのサブネットが構成されているはずです。
タスク 3: サブネットのネットワーク アクセスを制限する
既定では、サブネット内のすべての VM はすべてのリソースと通信できます。 ネットワーク セキュリティ グループを作成し、それをサブネットに関連付けることで、サブネット内のすべてのリソース間の通信を制限できます。
-
ポータルの上部にある [リソース、サービス、ドキュメントの検索] ボックスで、「セキュリティ グループ」と入力します。 検索結果に “ネットワーク セキュリティ グループ” が表示されたら、それを選択します。
-
[ネットワーク セキュリティ グループ] で、[+ 作成] を選択します。
-
次の情報を入力または選択します。
設定 Value サブスクリプション サブスクリプションを選択します。 リソース グループ myResourceGroup Name ContosoPrivateNSG 場所 [米国東部] を選択します。 -
[確認および作成] を選択し、[作成] を選択します。
-
ContosoPrivateNSG ネットワーク セキュリティ グループが作成された後、[リソースに移動] を選択します。
-
[設定] で [送信セキュリティ規則] を選びます。
-
[+ 追加] を選択します。
-
Azure Storage サービスへの送信方向の通信を許可するルールを作成します。 次の情報を入力または選択します。
設定 Value source Service Tag を選びます 発信元サービス タグ VirtualNetwork を選びます。 Source port ranges * 宛先 Service Tag を選びます 宛先サービス タグ [Storage] を選びます サービス Custom 宛先ポート範囲 * プロトコル [任意] アクション Allow 優先度 100 Name Allow-Storage-All -
[追加] を選択します。
タスク 4: アウトバウンド規則を追加する
インターネットへの通信を拒否する別の送信セキュリティ ルールを作成します。 このルールは、送信方向のインターネット通信を許可する、すべてのネットワーク セキュリティ グループ内の既定のルールをオーバーライドします。
-
[送信セキュリティ規則] で [+ 追加] を選択します。
-
次の情報を入力または選択します。
設定 Value source Service Tag を選びます 発信元サービス タグ VirtualNetwork を選びます。 Source port ranges * 宛先 Service Tag を選びます 宛先サービス タグ [インターネット] を選びます サービス Custom 宛先ポート範囲 * プロトコル [任意] アクション Deny Priority 110 Name Deny-Internet-All -
[追加] を選択します。
タスク 5: RDP 接続へのアクセスを許可する
任意の場所からサブネットへのリモート デスクトップ プロトコル (RDP) トラフィックを許可する受信セキュリティ規則を作成します。 この規則は、インターネットからのすべての受信トラフィックを拒否する既定のセキュリティ規則をオーバーライドします。 後のステップで接続をテストできるように、サブネットへのリモート デスクトップ接続を許可します。
-
ContosoPrivateNSG の下の [設定] で、[受信セキュリティ規則] を選択します。 -
[+ 追加] を選択します。
-
[受信セキュリティ規則の追加] で、次の値を入力します。
設定 Value source [任意] ソース ポート範囲 * 宛先 VirtualNetwork を選びます。 サービス Custom 宛先ポート範囲 3389 Protocol [任意] アクション Allow Priority 120 Name Allow-RDP-All - [追加] を選択します。
警告: RDP ポート 3389 がインターネットに公開されます。 これはテストにのみ推奨されます。 運用環境では、VPN またはプライベート接続を使用することをお勧めします。
-
[設定] で、 [サブネット] を選択します。
-
[+ 関連付け] を選択します。
-
[サブネットの関連付け] で [仮想ネットワーク] を選択し、[仮想ネットワークの選択] で [CoreServicesVNet] を選択します。
-
[サブネットの選択] で Private を選び、 [OK] を選びます。
タスク 6: リソースへのネットワーク アクセスを制限する
サービス エンドポイントを有効にした Azure サービスを介して作成されたリソースへのネットワーク アクセスを制限するために必要な手順は、サービスによって異なります。 各サービスの具体的な手順については、それぞれのサービスのドキュメントをご覧ください。 この演習の残りの部分では、例として、Azure Storage アカウントのネットワーク アクセスを制限する手順を示します。
-
Azure portal で、[ストレージ アカウント] を選択します。
-
[+ 作成] を選択します。
-
次の情報を入力または選択し、それ以外の情報は既定値を受け入れます。
設定 Value サブスクリプション サブスクリプションを選択します。 リソース グループ myResourceGroup 名前 「contosostoragexx」と入力します (固有なものにするため、xx は、ご自分のイニシャルに置き換えてください) パフォーマンス Standard StorageV2 (汎用 v2) 場所 [米国東部] を選択します。 レプリケーション ローカル冗長ストレージ (LRS) -
[確認] を選択し、 [作成] を選択します。
タスク 7: ストレージ アカウントにファイル共有を作成する
- ストレージ アカウントを作成した後、ポータルの上部にある Search resources, services, and docs ボックスにストレージ アカウントの名前を入力します。 指定したストレージ アカウントの名前が検索結果に表示されたら、それを選びます。
- 次の図に示すように、 [ファイル共有] を選択します。
- [+ ファイル共有] を選択します。
- [名前] に「marketing」と入力し、 [次へ: バックアップ] を選びます。
- 次の図に示すように、 [バックアップの有効化] をオフにします。
- [確認および作成] を選択します。 リソースが検証された後、[作成] を選択します。
タスク 8: サブネットへのネットワーク アクセスを制限する
既定では、ストレージ アカウントは、インターネットを含む任意のネットワーク上のクライアントからのネットワーク接続を受け入れます。 CoreServicesVNet 仮想ネットワーク内の Private サブネットを除く、インターネットおよびすべての仮想ネットワーク内のその他すべてのサブネットからのネットワーク アクセスを拒否します。
-
ストレージ アカウントの [セキュリティとネットワーク] で、[ネットワーク] を選択します。
-
[選択した仮想ネットワークと IP アドレスから有効] を選択します。
-
[+ 既存の仮想ネットワークを追加] を選択します。
-
[ネットワークの追加] で、次の値を選択します。
設定 Value サブスクリプション サブスクリプションを選択します。 仮想ネットワーク [CoreServicesVNet] を選択します 。 サブネット [Private] を選択します。 -
[追加] を選択します。
-
[保存] を選択します。
-
ストレージ アカウントの [セキュリティとネットワーク] で、[アクセス キー] を選択します。
-
Show Keys を選択します。 [キー] の値をメモします。後の手順でファイル共有を VM のドライブ文字にマップするときに、この値を手入力する必要があります。
タスク 9: 仮想マシンを作成する
ストレージ アカウントへのネットワーク アクセスをテストするには、各サブネットに VM を展開します。
- Azure portal で、右上の [Cloud Shell] アイコンを選択します。 必要に応じて、シェルを構成します。
- [PowerShell] を選択します。
- [ストレージ アカウントは必要ありません] と [サブスクリプション] を選択してから、[適用] を選択します。
- ターミナルが作成され、プロンプトが表示されるまで待ちます。
-
Cloud Shell 画面のツール バーで、[ファイルの管理] アイコンを選択し、ドロップダウン メニューで [アップロード] を選択して、VMs.json ファイルと VMs.parameters.json ファイルを、ソース フォルダー F:\Allfiles\Exercises\M07 から Cloud Shell のホーム ディレクトリに 1 つずつアップロードします。
-
次の ARM テンプレートをデプロイして、この演習に必要な VM を作成します。
注: 管理者パスワードを入力するように求められます。
$RGName = "myResourceGroup" New-AzResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile VMs.json -TemplateParameterFile VMs.parameters.json
- デプロイが完了したら、Azure portal のホーム ページに移動し、[仮想マシン] を選択します。
タスク 10: ストレージ アカウントへのアクセスを確認する
- ContosoPrivate VM の作成が完了したら、[リソースに移動] を選択して VM のブレードを開きます。 [接続] ボタンを選択し、[RDP] を選択します。
- [接続] ボタンと [RDP] を選択したら、[RDP ファイルのダウンロード] ボタンを選択します。 リモート デスクトップ プロトコル (.rdp) ファイルが作成され、お使いのコンピューターにダウンロードされます。
- ダウンロードされた rdp ファイルを開きます。 メッセージが表示されたら、[接続] を選択します。 VM の作成時に指定したユーザー名とパスワードを入力します。 場合によっては、 [その他] 、 [別のアカウントを使用する] を選択して、VM の作成時に入力した資格情報を指定する必要があります。
- [OK] を選択します。
- サインイン処理中に証明書の警告が表示される場合があります。 警告を受け取ったら、[はい] または [続行] を選択して接続処理を続行します。
- ContosoPrivate VM で、PowerShell を使用して、Azure ファイル共有を Z ドライブにマップします。 次のコマンドを実行する前に、
、 (つまり contosostoragexx) と、my-file-share (つまり マーケティング) を、ストレージ アカウントを作成するタスクで指定した値と置き換えます。
$acctKey = ConvertTo-SecureString -String "<storage-account-key>" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList "Azure\<storage-account-name>", $acctKey
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<storage-account-name>.file.core.windows.net\marketing" -Credential $credential
Azure ファイル共有は Z ドライブに正常にマップされました。
- VM にコマンド プロンプトからインターネットへの送信接続があることを確認します。
ping bing.com
Private サブネットに関連付けられているネットワーク セキュリティ グループはインターネットへの発信アクセスが許可されていないため、応答はありません。
- ContosoPrivate VM へのリモート デスクトップ セッションを終了します。
ストレージ アカウントへのアクセスが拒否されたことを確認する
-
ポータルの上部にある [リソース、サービス、ドキュメントの検索] ボックスで、「ContosoPublic」と入力します。
-
検索結果に “ContosoPublic” が表示されたら、それを選択します。
-
「ストレージ アカウントへのアクセスを確認する」タスクの手順 1 から 6 を、ContosoPublic VM に対して実行します。
少し待つと、”New-PSDrive : Access is denied” (New-PSDrive: アクセスが拒否されました) というエラーが表示されます。 ContosoPublic VM が Public サブネットにデプロイされているため、アクセスが拒否されました。 Public サブネットには Azure Storage に対して有効になっているサービス エンドポイントがありません。 ストレージ アカウントは Private サブネットからのネットワーク アクセスのみを許可し、Public サブネットからは許可しません。
-
パブリック VM に、コマンド プロンプトからインターネットへの送信接続がないことを確認します。
ping bing.com
-
ContosoPublic VM へのリモート デスクトップ セッションを終了します。
-
お使いのコンピューターから、Edge を使用して Azure Portal にアクセスします。
-
[リソース、サービス、ドキュメントの検索] ボックスに、作成したストレージ アカウントの名前を入力します。 指定したストレージ アカウントの名前が検索結果に表示されたら、それを選びます。
-
[ファイル共有] を選択したら、marketing ファイル共有を選択します。
-
Browse をクリックすると、次のスクリーンショットに示すようにエラーが表示されます。
お使いのコンピューターは CoreServicesVNet 仮想ネットワークの Private サブネットに含まれていないため、アクセスが拒否されます。
警告: 続行する前に、このラボで使用されているすべてのリソースを削除する必要があります。 Azure portal でこれを行うには、[リソース グループ] を選択します。 作成したリソース グループを選択します。 リソース グループのブレードで、[リソース グループの削除] を選択し、リソース グループ名を入力して、[削除] を選択します。 作成した他のリソース グループについても、このプロセスを繰り返します。 これを行わないと、他のラボで問題が発生する可能性があります。
結果: これで、このラボが完了しました。
リソースをクリーンアップする
注:新規に作成し、使用しなくなったすべての Azure リソースを削除することを忘れないでください。 使用していないリソースを削除することで、予期しない料金が発生しなくなります。
-
Azure portal で、 [Cloud Shell] ペイン内に PowerShell セッションを開きます。
-
次のコマンドを実行して、このモジュールのラボ全体を通して作成したすべてのリソース グループを削除します。
Remove-AzResourceGroup -Name 'myResourceGroup' -Force -AsJob
注:このコマンドは非同期で実行されるため (-AsJob パラメーターによって決定されます)、同じ PowerShell セッション内で直後に別の PowerShell コマンドを実行できますが、リソース グループが実際に削除されるまでに数分かかります。
Copilot を使用して学習を拡張する
Copilot は、Azure スクリプト ツールの使用方法を学習するのに役立ちます。 Copilot は、ラボでは対象外の、またはさらに詳しい情報が必要な領域でも役立ちます。 Edge ブラウザーを開き、Copilot (右上) を選択するか、copilot.microsoft.com に移動します。 次のプロンプトを試すには数分かかります。
- Azure サービス エンドポイントとプライベート エンドポイントの違いは何ですか?
- サービス エンドポイントを使用できる Azure サービスはどれですか?
- サービス エンドポイントを使用して Azure Storage へのアクセスを制限する手順は何ですか?
自習トレーニングでさらに学習する
- ネットワーク セキュリティ グループとサービス エンドポイントを使うことで Azure リソースへのアクセスをセキュリティで保護し、分離する。 このモジュールでは、仮想ネットワーク サービス エンドポイントを使用して Azure サービスとの間のネットワーク トラフィックを制御する方法を説明します。
要点
- 仮想ネットワーク サービス エンドポイントを使用して、自分の Azure サービスに直接接続できるようにすることで、Azure 内のプライベート アドレス空間を拡張します。
- サービス エンドポイントを使うと、Azure リソースを自分の仮想ネットワークだけに限定できます。 サービス トラフィックは Azure のバックボーンに残り、インターネットに送信されることはありません。
- Azure サービス エンドポイントは、Azure Storage、Azure SQL Database、Azure Cosmos DB など、多くのサービスで使用できます。
- 既定では、仮想ネットワーク サービス エンドポイントはオンプレミス ネットワークからアクセスできません。 オンプレミス ネットワークからリソースにアクセスするには、NAT IP を使います。