Azure Key Vault のファイアウォールと仮想ネットワークを構成する

この記事では、Azure Key Vault ファイアウォールを構成する方法に関するガイダンスを示します。 このドキュメントでは Key Vault ファイアウォールのさまざまな構成について詳しく説明すると共に、他のアプリケーションや Azure サービスと連携するように Azure Key Vault を構成する手順について説明します。

詳細については、「Azure Key Vault の仮想ネットワーク サービス エンドポイント」を参照してください。

ファイアウォール設定

このセクションでは、Azure Key Vault ファイアウォールを構成するためのさまざまな方法について説明します。

Key Vault ファイアウォールを無効にする (既定値)

既定では、新しいキー コンテナーを作成するとき、Azure Key Vault ファイアウォールは無効になります。 すべてのアプリケーションおよび Azure サービスから、キー コンテナーにアクセスし、キー コンテナーに要求を送信することができます。 なお、この構成は、お客様のキー コンテナー上で任意のユーザーが操作を行えるということを意味するものではありません。 キー コンテナーは、Azure Active Directory 認証およびアクセス ポリシーのアクセス許可を必要とすることで、キー コンテナーに格納されているシークレット、キー、および証明書に引き続き制限されます キー コンテナー認証の詳細については、こちらのキー コンテナー認証の基礎に関するドキュメントを参照してください。 詳細については、「ファイアウォールの向こう側にある Azure Key Vault へのアクセス」を参照してください。

Key Vault ファイアウォールを有効にする (信頼されたサービスのみ)

Key Vault ファイアウォールを有効にすると、[Allow trusted Microsoft services to bypass this firewall](信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する) に対するオプションが表示されます。 信頼されたサービスのリストには、単一の Azure サービスがすべてが含まれるわけではありません。 たとえば、Azure DevOps は信頼されたサービスのリストに掲載されていません。 これは、信頼されたサービスのリストに表示されないサービスが信頼されていない、またはセキュリティで保護されていないということを意味するものではありません。 信頼されたサービスのリストには、サービス上で実行されるすべてのコードを Microsoft が制御するサービスが含まれます。 Azure DevOps などの Azure サービス内ではユーザーがカスタム コードを記述できるため、Microsoft はサービスの包括的承認を作成するオプションを提供していません。 さらに、サービスが、信頼されたサービスのリストに掲載されていたからといって、それがすべてのシナリオに対して許可されるわけではありません。

使おうとしているサービスが信頼されたサービスのリストにあるかどうかを判断するには、こちらのドキュメントを参照してください。 攻略ガイドについては、こちらのポータル、Azure CLI、PowerShell 向けの手順に従ってください。

Key Vault ファイアウォールを有効にする (IPv4 アドレスおよび範囲 - 静的 IP)

Key Vault ファイアウォールを経由してキー コンテナーにアクセスする特定のサービスを承認したい場合は、その IP アドレスをキー コンテナー ファイアウォール許可リストに追加します。 この構成は、静的 IP アドレスまたは既知の範囲を使用するサービスに最適です。 この場合、CIDR 範囲については、1000 までという制限があります。

Web アプリやロジック アプリなどの Azure リソースの IP アドレスまたは範囲を許可するには、次の手順を行います。

  1. Azure Portal にログインする
  2. リソース (サービスの特定のインスタンス) を選択する
  3. [設定] の下にある [プロパティ] ブレードをクリックする
  4. [IP アドレス] フィールドを探す。
  5. この値または範囲をコピーし、キー コンテナー ファイアウォール許可リストに入力する。

Key Vault ファイアウォールを介して Azure サービス全体を許可するには、こちらの Azure 用の公式に文書化されたデータセンター IP アドレスのリストを使用してください。 目的のリージョンで必要なサービスに関連付けられている IP アドレスを見つけ、それらの IP アドレスを上記の手順を使用してキー コンテナー ファイアウォールに追加します。

Key Vault ファイアウォールを有効にする (仮想ネットワーク - 動的 IP)

キー コンテナーを介して仮想マシンなどの Azure リソースを許可しようとしている場合は、静的 IP アドレスを使用できない可能性があり、さらに Azure Virtual Machines の一部の IP アドレスにキー コンテナーへのアクセスを許可したくないこともあります。

この場合は、仮想ネットワーク内にリソースを作成し、特定の仮想ネットワークおよびサブネットからのトラフィックがご利用のキー コンテナーにアクセスするのを許可する必要があります。 このためには、次の手順を実行します。

  1. Azure Portal にログインする
  2. 構成するキー コンテナーを選択する
  3. [ネットワーク] タブを選択する
  4. [+ 既存の仮想ネットワークを追加] を選択する
  5. キー コンテナー ファイアウォールを介して許可する仮想ネットワークおよびサブネットを選択する。

ご利用のキー コンテナー上でプライベート リンク接続を構成する方法については、こちらのドキュメントを参照してください。

重要

ファイアウォール ルールを有効にした後は、要求が許可された仮想ネットワークまたは IPv4 アドレス範囲から送信された場合にのみ、ユーザーは Key Vault データ プレーンの操作を実行できます。 これは、Azure portal から Key Vault にアクセスする場合にも適用されます。 ユーザーは Azure portal からキー コンテナーを参照できますが、クライアント マシンが許可リストに登録されていない場合、キー/シークレット/証明書を一覧表示できない場合があります。 これは、他の Azure サービスによる Key Vault 選択機能にも影響します。 ファイアウォール ルールでクライアント マシンが許可されていない場合、ユーザーはキー コンテナーを一覧表示できても、キーは一覧表示できないことがあります。

注意

構成に関する次の制限事項に注意してください。

  • 最大で 127 個の仮想ネットワーク規則と 127 個の IPv4 ルールを指定できます。
  • IP ネットワーク ルールは、パブリック IP アドレスに対してのみ許可されます。 プライベート ネットワーク用に予約されている IP アドレス範囲 (RFC 1918 で定義) は、IP ルールでは許可されません。 プライベート ネットワークには、10.172.16-31、および 192.168. で始まるアドレスが含まれます。
  • 現時点でサポートされているのは、IPv4 アドレスのみです。

Azure ポータルの使用

Azure portal を使用して Key Vault ファイアウォールと仮想ネットワークを構成する方法を次に示します。

  1. セキュリティで保護するキー コンテナーに移動します。
  2. [ネットワーク] を選択してから、 [ファイアウォールと仮想ネットワーク] タブを選択します。
  3. [許可するアクセス元][選択されたネットワーク] を選択します。
  4. 既存の仮想ネットワークをファイアウォールと仮想ネットワークの規則に追加するには、 [+ 既存の仮想ネットワークを追加] を選択します。
  5. 表示される新しいブレードで、このキー コンテナーへのアクセスを許可するサブスクリプション、仮想ネットワーク、サブネットを選択します。 選択する仮想ネットワークとサブネットでサービス エンドポイントが有効になっていない場合は、サービス エンドポイントを有効にする必要があることを確認して、 [有効] を選択します。 有効になるまでに最大 15 分かかることがあります。
  6. [IP ネットワーク] では、CIDR (Classless Inter-Domain Routing) 表記で IPv4 アドレスの範囲を入力して IPv4 アドレス範囲を追加するか、個々の IP アドレスを追加します。
  7. 信頼された Microsoft サービスが Key Vault ファイアウォールをバイパスすることを許可する場合には、[はい] を選択します。 Key Vault で現在信頼されているサービスの完全な一覧については、次のリンクを参照してください。 Azure Key Vault の信頼済みサービス
  8. [保存] を選択します。

[+ 新しい仮想ネットワークを追加] を選択し、新しい仮想ネットワークとサブネットを追加して、新しく作成した仮想ネットワークとサブネットのサービス エンドポイントを有効にすることもできます。 その後、プロンプトに従います。

Azure CLI の使用

Azure CLI を使用して Key Vault ファイアウォールと仮想ネットワークを構成する方法を次に示します

  1. Azure CLI をインストールしてサインインします。

  2. 使用可能な仮想ネットワーク規則の一覧を表示します。 このキー コンテナーに対してルールを何も設定していない場合、一覧は空になります。

    az keyvault network-rule list --resource-group myresourcegroup --name mykeyvault
    
  3. 既存の仮想ネットワークとサブネット上の Key Vault のサービス エンドポイントを有効にします。

    az network vnet subnet update --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --service-endpoints "Microsoft.KeyVault"
    
  4. 仮想ネットワークとサブネットに対するネットワーク ルールを追加します。

    subnetid=$(az network vnet subnet show --resource-group "myresourcegroup" --vnet-name "myvnet" --name "mysubnet" --query id --output tsv)
    az keyvault network-rule add --resource-group "demo9311" --name "demo9311premium" --subnet $subnetid
    
  5. そこから送信されたトラフィックを許可する IP アドレス範囲を追加します。

    az keyvault network-rule add --resource-group "myresourcegroup" --name "mykeyvault" --ip-address "191.10.18.0/24"
    
  6. すべての信頼されたサービスでこのキー コンテナーにアクセスできるようにする必要がある場合は、bypassAzureServices に設定します。

    az keyvault update --resource-group "myresourcegroup" --name "mykeyvault" --bypass AzureServices
    
  7. 既定のアクションを Deny に設定することによって、ネットワーク ルールを有効にします。

    az keyvault update --resource-group "myresourcegroup" --name "mekeyvault" --default-action Deny
    

Azure PowerShell の使用

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。 Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

PowerShell を使用して Key Vault ファイアウォールと仮想ネットワークを構成する方法を次に示します。

  1. 最新の Azure PowerShell をインストールしてサインインします。

  2. 使用可能な仮想ネットワーク規則の一覧を表示します。 このキー コンテナーに対してルールを何も設定していない場合、一覧は空になります。

    (Get-AzKeyVault -VaultName "mykeyvault").NetworkAcls
    
  3. 既存の仮想ネットワークとサブネット上の Key Vault のサービス エンドポイントを有効にします。

    Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Set-AzVirtualNetworkSubnetConfig -Name "mysubnet" -AddressPrefix "10.1.1.0/24" -ServiceEndpoint "Microsoft.KeyVault" | Set-AzVirtualNetwork
    
  4. 仮想ネットワークとサブネットに対するネットワーク ルールを追加します。

    $subnet = Get-AzVirtualNetwork -ResourceGroupName "myresourcegroup" -Name "myvnet" | Get-AzVirtualNetworkSubnetConfig -Name "mysubnet"
    Add-AzKeyVaultNetworkRule -VaultName "mykeyvault" -VirtualNetworkResourceId $subnet.Id
    
  5. そこから送信されたトラフィックを許可する IP アドレス範囲を追加します。

    Add-AzKeyVaultNetworkRule -VaultName "mykeyvault" -IpAddressRange "16.17.18.0/24"
    
  6. すべての信頼されたサービスでこのキー コンテナーにアクセスできるようにする必要がある場合は、bypassAzureServices に設定します。

    Update-AzKeyVaultNetworkRuleSet -VaultName "mykeyvault" -Bypass AzureServices
    
  7. 既定のアクションを Deny に設定することによって、ネットワーク ルールを有効にします。

    Update-AzKeyVaultNetworkRuleSet -VaultName "mykeyvault" -DefaultAction Deny
    

References

次のステップ