クイックスタート: Azure CLI を使用して Azure Virtual Network Manager でメッシュ ネットワーク トポロジを作成する
すべての仮想ネットワークの接続を管理するため、Azure CLI で Azure Virtual Network Manager を使用する方法を説明します。
このクイックスタートでは、3 つの仮想ネットワークをデプロイし、Azure Virtual Network Manager を使用してメッシュ ネットワーク トポロジを作成します。 次に、接続構成が適用されたことを確認します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- 最新の Azure CLI。またはポータルで Azure Cloud Shell を使用することもできます。
- Azure Virtual Network Manager 拡張機能。 これを追加するには、
az extension add -n virtual-network-manager
を実行します。 - 動的ネットワーク グループを変更するには、アクセス権の付与が Azure RBAC ロールの割り当てのみを使用して行われている必要があります。 従来の管理者/レガシ承認はサポートされていません。
Azure アカウントにサインインしてサブスクリプションを選択する
構成を始めるには、Azure アカウントにサインインします。 Cloud Shell の試してみる機能を使用している場合は、自動的にサインインします。
az login
Virtual Network Manager がデプロイされるサブスクリプションを選びます。
az account set \
--subscription "<subscriptionID>"
Azure CLI 用の Virtual Network Manager 拡張機能を更新します。
az extension update --name virtual-network-manager
リソース グループを作成する
このタスクでは、az group create を使用して、ネットワーク マネージャー インスタンスをホストするリソース グループを作成します。 この例では、resource-group というリソース グループを "(米国) 西部 2" の場所に作成します。
az group create \
--name "resource-group" \
--location "westus2"
Virtual Network Manager インスタンスを作成する
このタスクでは、この Virtual Network Manager インスタンスのスコープとアクセスの種類を定義します。 az network manager create を使用してスコープを作成します。 値 <subscriptionID>
を、Virtual Network Manager で仮想ネットワークを管理するサブスクリプションに置き換えます。 <mgName\>
を、管理する管理グループに置き換えます。
az network manager create \
--location "westus2" \
--name "network-manager" \
--resource-group "resource-group" \
--scope-accesses "Connectivity" "SecurityAdmin" \
--network-manager-scopes subscriptions="/subscriptions/<subscriptionID>"
ネットワーク グループを作成する
このタスクでは、az network manager group create を使用して、ネットワーク グループを作成します。
az network manager group create \
--name "network-group" \
--network-manager-name "network-manager" \
--resource-group "resource-group" \
--description "Network Group for Production virtual networks"
仮想ネットワークを作成する
このタスクでは、az network vnet create を使用して 3 つの仮想ネットワークを作成します。 この例では、three virtual という仮想ネットワークを "(米国) 西部 2" の場所に作成します。 各仮想ネットワークには、動的メンバーシップに使用される networkType
のタグがあります。 作成するメッシュ ネットワークに含める仮想ネットワークが既にある場合は、次のセクションに進めます。
az network vnet create \
--name "vnet-00" \
--resource-group "resource-group" \
--address-prefix "10.0.0.0/16" \
--tags "NetworkType=Prod"
az network vnet create \
--name "vnet-01" \
--resource-group "resource-group" \
--address-prefix "10.1.0.0/16" \
--tags "NetworkType=Prod"
az network vnet create \
--name "vnet-02" \
--resource-group "resource-group" \
--address-prefix "10.2.0.0/16" \
--tags "NetworkType=Prod"
各仮想ネットワークにサブネットを追加します。
このタスクでは、/24 サブネットをそれぞれに追加して、仮想ネットワークの構成を完了します。 az network vnet subnet create を使用して default という名前のサブネット構成を作成します。
az network vnet subnet create \
--name "default" \
--resource-group "resource-group" \
--vnet-name "vnet-00" \
--address-prefix "10.0.0.0/24"
az network vnet subnet create \
--name "default" \
--resource-group "resource-group" \
--vnet-name "vnet-01" \
--address-prefix "10.1.0.0/24"
az network vnet subnet create \
--name "default" \
--resource-group "resource-group" \
--vnet-name "vnet-02" \
--address-prefix "10.2.0.0/24"
メッシュ構成のメンバーシップを定義する
Azure Virtual Network Manager を使用すると、ネットワーク グループにメンバーシップを追加するために 2 つの方法を使用できます。 静的メンバーシップでは仮想ネットワークを手動で追加し、動的メンバーシップでは Azure Policy を使用して、条件に基づいて仮想ネットワークを動的に追加します。 メッシュ構成メンバーシップに対して実行するオプションを選択します。
静的メンバーシップを使用して、az network manager group static-member create で、メッシュ構成用の 3 つの仮想ネットワークをネットワーク グループに手動で追加します。 <subscriptionID>
を、これらの仮想ネットワークが作成されたときのサブスクリプションに置き換えます。
az network manager group static-member create \
--name "vnet-00" \
--network-group "network-group" \
--network-manager "network-manager" \
--resource-group "resource-group" \
--resource-id "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/virtualnetworks/vnet-00"
az network manager group static-member create \
--name "vnet-01" \
--network-group "network-group" \
--network-manager "network-manager" \
--resource-group "resource-group" \
--resource-id "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/virtualnetworks/vnet-01"
az network manager group static-member create \
--name "vnet-02" \
--network-group "network-group" \
--network-manager "network-manager" \
--resource-group "resource-group" \
--resource-id "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/virtualnetworks/vnet-02"
構成を作成する
このタスクでは、az network manager connect-config create を使用してメッシュ ネットワーク トポロジの構成を作成します。 <subscriptionID>
は、サブスクリプション ID で置き換えてください。
az network manager connect-config create \
--configuration-name "connectivityconfig" \
--description "Production Mesh Connectivity Config Example" \
--applies-to-groups '[{"networkGroupId": "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/networkManagers/network-manager/networkGroups/network-group", "groupConnectivity": "None"}]' \
--connectivity-topology "Mesh" \
--network-manager-name "network-manager" \
--resource-group "resource-group"
デプロイをコミットする
構成を有効にするには、az network manager post-commit を使用して、ターゲット リージョンに構成をコミットします。
az network manager post-commit \
--network-manager-name "network-manager" \
--commit-type "Connectivity" \
--configuration-ids "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/networkManagers/network-manager/connectivityConfigurations/connectivityconfig" \
--target-locations "westus2" \
--resource-group "resource-group"
構成を確認する
az network manager list-effective-connectivity-config を使うと、仮想ネットワークに適用されている構成が表示されます。
az network manager list-effective-connectivity-config \
--resource-group "resource-group" \
--virtual-network-name "vnet-00"
az network manager list-effective-connectivity-config \
--resource-group "resource-group" \
--virtual-network-name "vnet-01"
az network manager list-effective-connectivity-config \
--resource-group "resource-group" \
--virtual-network-name "vnet-02"
接続構成の一部である仮想ネットワークの場合、次の例のような出力が表示されます。
{
"skipToken": "",
"value": [
{
"appliesToGroups": [
{
"groupConnectivity": "None",
"isGlobal": "False",
"networkGroupId": "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/networkManagers/network-manager/networkGroups/network-group",
"useHubGateway": "False"
}
],
"configurationGroups": [
{
"description": "Network Group for Production virtual networks",
"id": "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/networkManagers/network-manager/networkGroups/network-group",
"provisioningState": "Succeeded",
"resourceGroup": "resource-group"
}
],
"connectivityTopology": "Mesh",
"deleteExistingPeering": "False",
"description": "Production Mesh Connectivity Config Example",
"hubs": [],
"id": "/subscriptions/<subscriptionID>/resourceGroups/resource-group/providers/Microsoft.Network/networkManagers/network-manager/connectivityConfigurations/connectivityconfig",
"isGlobal": "False",
"provisioningState": "Succeeded",
"resourceGroup": "resource-group"
}
]
}
リソースをクリーンアップする
Azure Virtual Network Manager インスタンスとその他のリソースが不要になったら、az group delete を使用してリソース グループを削除します。
az group delete \
--name "resource-group"
次のステップ
この手順では、セキュリティ管理者の構成を使用してネットワーク トラフィックをブロックする方法について説明します。