顧客管理 VPC の設定

概要

デフォルトでは、クラスターは、Databricks が AWS アカウントで作成および構成する単一の AWS VPC (仮想プライベート クラウド) に作成されます。 必要に応じて、独自の VPC に Databricks ワークスペース ( 顧客管理 VPC と呼ばれる機能) を作成できます。 顧客管理 VPC を使用すると、ネットワーク構成をより詳細に制御し、組織が必要とする特定のクラウドセキュリティおよびガバナンス標準に準拠できます。 任意のタイプの接続で AWS PrivateLink を使用するようにワークスペースを設定するには、ワークスペースで顧客管理 VPC を使用する必要があります。

カスタマーマネージドVPCは、次のような場合に適しています。

  • セキュリティポリシーによって、PaaSプロバイダーが独自のAWSアカウントにVPCを作成できない場合。

  • 新しいVPCを作成するための承認プロセスがあり、VPCが内部の情報セキュリティチームまたはクラウドエンジニアリングチームによって十分に文書化された方法で設定および保護されている場合。

カスタマーマネージドVPCのメリットは次のとおりです。

  • 権限レベルの低下: 自分のAWSアカウントをより詳細に制御できます。また、DatabricksマネージドVPCの場合ほど多くの権限をクロスアカウントIAMロールを介してDatabricksに付与する必要がありません。たとえば、VPCを作成するための権限は必要ありません。権限セットが制限されていることにより、プラットフォームスタックでDatabricksを使用するための承認を簡単に得ることができます。

  • ネットワーク運用の簡素化: ネットワークスペースの使用率が向上します。必要に応じて、ワークスペースのサブネットを、デフォルトのCIDR /16と比較して小さく設定できます。また、他のソリューションでは必要となる場合がある複雑なVPCピアリング設定が必要ありません。

  • VPC の統合: 複数の Databricks ワークスペースは、単一のクラシック コンピュート プレーン VPC を共有できます。これは、多くの場合、請求やインスタンス管理に好まれます。

  • 送信接続を制限する: 当然のことですが、クラシック コンピュート プレーンは Databricks Runtime ワーカーからの送信接続を制限しません。 顧客管理 VPC を使用するように構成されたワークスペースの場合、送信ファイアウォールまたはプロキシ アプライアンスを使用して、送信トラフィックを許可された内部または外部データ ソースのリストに制限できます。

顧客管理VPC

カスタマーマネージドVPCを利用するには、最初にDatabricksワークスペースを作成するときにVPCを指定する必要があります。DatabricksマネージドVPCを使用している既存のワークスペースを、カスタマーマネージドVPCを使用するように移行することはできません。ただし、ワークスペース設定のネットワーク設定オブジェクトを更新することで、カスタマーマネージドVPCを使用している既存のワークスペースを、あるVPCから別のVPCに移動させることはできます。「実行中または問題が発生したワークスペースを更新する」を参照してください。

独自のVPCにワークスペースをデプロイするには、次のことを行う必要があります。

  1. VPCの要件に記載されている要件に従ってVPCを作成します。

  2. ワークスペースを作成するときに、DatabricksのVPCネットワーク設定を参照します。

    VPCをDatabricksに登録するときに、VPC ID、サブネットID、セキュリティグループIDを指定する必要があります。

VPCの要件

Databricksワークスペースをホストするには、VPCがこのセクションで説明されている要件を満たしている必要があります。

VPCのリージョン

カスタマーマネージドVPCをサポートしているAWSリージョンのリストについては、「Databricksクラウドとリージョン」を参照してください。

VPCのサイジング

1 つの VPC を 1 つの AWS アカウントで複数のワークスペースと共有できます。 ただし、Databricks では、ワークスペースごとに一意のサブネットとセキュリティ グループを使用することが推奨されています。 VPC とサブネットのサイズは、それに応じて設定してください。 Databricks では、ノードごとに 2 つの IP アドレス (1 つは管理トラフィック用、もう 1 つは Apache Sparkアプリケーション用) が割り当てられます。 各サブネットのインスタンスの総数は、使用可能な IP アドレスの数の半分に等しくなります。 詳細については、「 サブネット」を参照してください。

VPCのIPアドレス範囲

DatabricksではワークスペースVPCのネットマスクを制限していませんが、各ワークスペースのサブネットには/17/26のネットマスクが必要です。つまり、ワークスペースに2つのサブネットがあり、両方のネットマスクが/26の場合、ワークスペースVPCのネットマスクは /25以下である必要があります。

重要

VPCにセカンダリCIDRブロックを設定している場合は、Databricksワークスペースのサブネットが同じVPC CIDRブロックで設定されていることを確認してください。

DNS

VPCでDNSホスト名とDNS解決が有効になっている必要があります。

サブネット

Databricksは、ワークスペースごとに少なくとも2つのサブネットにアクセスできる必要があります(各サブネットは異なるアベイラビリティゾーンにあります)。ネットワーク設定の作成APIコールでアベイラビリティゾーンごとに複数のDatabricksワークスペースサブネットを指定することはできません。ネットワーク設定の一環としてアベイラビリティゾーンごとに複数のサブネットを設定することはできますが、Databricksワークスペースに選択できるサブネットはアベイラビリティゾーンごとに1つだけです。

1 つのサブネットを複数のワークスペースで共有するか、両方のサブネットをワークスペース間で共有するかを選択できます。 たとえば、同じ VPC を共有する 2 つのワークスペースを持つことができます。 1 つのワークスペースでサブネット AB を使用し、別のワークスペースでサブネット ACを使用できます。 複数のワークスペースでサブネットを共有する場合は、VPC とサブネットのサイズを、使用量に応じてスケーリングするのに十分な大きさにしてください。

Databricksは、ノードごとに2つのIPアドレス(1つは管理トラフィック用、もう1つはSparkアプリケーション用)を割り当てます。各サブネットのインスタンスの合計数は、使用可能なIPアドレスの数の半分になります。

各サブネットには、/17/26のネットマスクが必要です。

追加のサブネット要件

  • サブネットはプライベートである必要があります。

  • サブネットは、NATゲートウェイインターネットゲートウェイ、またはその他の同様のカスタマーマネージドアプライアンスインフラストラクチャを使用して、パブリックネットワークへのアウトバウンドアクセスが可能である必要があります。

  • NATゲートウェイは、クアッドゼロ0.0.0.0/0)トラフィックをインターネットゲートウェイまたは他のカスタマーマネージドアプライアンスインフラストラクチャにルーティングする独自のサブネット内に設定する必要があります。

重要

ワークスペースには、VPC からパブリック ネットワークへのアウトバウンド アクセスが必要です。

サブネット・ルート・テーブル

ワークスペース サブネットのルート テーブルには、適切なネットワーク デバイスをターゲットとするクアッドゼロ ( 0.0.0.0/0 ) トラフィックが必要です。 クアッドゼロトラフィックは、NATゲートウェイ、または独自の管理対象NATデバイスまたはプロキシアプライアンスをターゲットにする必要があります。

重要

Databricks では、サブネットが許可リストに0.0.0.0/0を追加する必要があります。 このルールは優先順位を付ける必要があります。 送信トラフィックを制御するには、送信ファイアウォールまたはプロキシ アプライアンスを使用して、ほとんどのトラフィックをブロックしますが、Databricks が接続する必要がある URL は許可します。 「 ファイアウォールと送信アクセスの構成」を参照してください。

これはあくまでも基本ガイドラインです。 構成要件は異なる場合があります。 ご不明な点がございましたら、Databricks アカウント チームにお問い合わせください。

セキュリティグループ

Databricks ワークスペースには、少なくとも 1 つの AWS セキュリティ グループと 5 つ以下のセキュリティ グループにアクセスできる必要があります。 新しいセキュリティ グループを作成するのではなく、既存のセキュリティ グループを再利用できます。 ただし、Databricks では、ワークスペースごとに一意のサブネットとセキュリティ グループを使用することが推奨されています。

セキュリティグループには、次のルールが必要です。

エグレス(アウトバウンド):

  • ワークスペースセキュリティグループへのすべてのTCPおよびUDPアクセスを許可します(内部トラフィック用)。

  • 次のポートで0.0.0.0/0へのTCPアクセスを許可します。

イングレス(インバウンド): すべてのワークスペースに必要です(これらは個別のルールにすることも、1つにまとめることもできます)。

  • トラフィックソースが同じセキュリティグループを使用する場合、すべてのポートでTCPを許可します。

  • トラフィックソースが同じセキュリティグループを使用する場合、すべてのポートでUDPを許可します。

サブネットレベルのネットワークACL

サブネットレベルのネットワークACLは、いかなるトラフィックに対してもイングレスまたはエグレスを拒否してはなりません。Databricksは、ワークスペースの作成時に次のルールを検証します。

エグレス(アウトバウンド):

  • 内部トラフィックに対して、ワークスペースVPC CIDRへのすべてのトラフィックを許可します。

    • 次のポートで0.0.0.0/0へのTCPアクセスを許可します。

      • 443: Databricksインフラストラクチャ、クラウドデータソース、ライブラリリポジトリ用。

      • 3306: メタストア用。

      • 6666: PrivateLinkを使用する場合にのみ必要です。

重要

アウトバウンドトラフィックに対して追加のALLOWまたはDENYルールを設定する場合は、Databricksが要求するルールを最高の優先度(最も小さいルール番号)に設定して、それらが優先されるようにします。

イングレス (インバウンド):

  • ALLOW ALL from Source 0.0.0.0/0.このルールは優先順位を付ける必要があります。

注:

Databricks では、 0.0.0.0/0を許可リストに追加するには、サブネット レベルのネットワーク ACL が必要です。 出力トラフィックを制御するには、出力ファイアウォールまたはプロキシ アプライアンスを使用して、ほとんどのトラフィックをブロックしますが、Databricks が接続する必要がある URL は許可します。 「 ファイアウォールと送信アクセスの構成」を参照してください。

VPCを作成する

さまざまなツールを使用してVPCを作成することができます。

AWSコンソールを使用してVPCと関連オブジェクトを作成および設定するための基本的な手順を以下に示します。詳細な手順については、AWSのドキュメントを参照してください。

注:

これらの基本的な手順は、すべての組織に適用されるとは限りません。 構成要件は異なる場合があります。 このセクションでは、NAT、ファイアウォール、またはその他のネットワーク インフラストラクチャを構成するすべての方法を網羅しているわけではありません。 ご不明な点がございましたら、先に進む前に Databricks アカウント チームにお問い合わせください。

  1. AWSのVPC ページに移動します。

  2. 右上のリージョンピッカーを参照してください。必要に応じて、ワークスペースのリージョンに切り替えます。

  3. 右上にあるオレンジ色のボタン [VPC を作成する] をクリックします。

    新しいVPCエディタを作成する
  4. [VPCなど] をクリックします。

  5. [ネームタグ自動生成] に、ワークスペースの名前を入力します。Databricksでは、名前にリージョンを含めることをお勧めしています。

  6. 必要に応じて、VPCアドレス範囲を変更します。

  7. パブリックサブネットの場合は、2をクリックします。これらのサブネットはDatabricksワークスペースでは直接使用されませんが、このエディターでNATを有効にするために必要です。

  8. プライベートサブネットの場合は、ワークスペースサブネットの最小値として2をクリックします。必要に応じてさらに追加できます。

    Databricks ワークスペースには、少なくとも 2 つのプライベート サブネットが必要です。 サイズを変更するには、「 サブネットCIDRブロックのカスタマイズ」をクリックします。

  9. NATゲートウェイを使用する場合は、[1つのアベイラビリティーゾーンで] をクリックします。

  10. 下部にある [DNSホスト名を有効化] フィールドと [DNS解決を有効化] フィールドが有効になっていることを確認します。

  11. [VPCを作成する] をクリックします。

  12. 新しいVPCを表示しているときに、左側のナビゲーションアイテムをクリックして、VPCの関連設定を更新します。[VPCでフィルタリング] フィールドで新しいVPCを選択することで、関連オブジェクトを見つけやすくなります。

  13. [ サブネット ] をクリックし、AWS が 1 と 2 というラベルの付いた プライベート サブネットと呼ぶもので、メインのワークスペースサブネットの設定に使用します。 「VPC 要件」で指定されているサブネットを変更します。

    PrivateLinkで使用するために追加のプライベートサブネットを作成した場合は、「AWS PrivateLinkを有効にする」で指定されているようにプライベートサブネット3を設定します。

  14. [セキュリティグループ] をクリックし、「セキュリティグループ」で指定されているようにセキュリティグループを変更します。

    バックエンドPrivateLink接続を使用する場合は、「ステップ1: AWSネットワークオブジェクトを設定する」セクションのPrivateLinkの記事で指定されているように、インバウンドルールとアウトバウンドルールを使用して追加のセキュリティグループを作成します。

  15. [ネットワークACL] をクリックし、「サブネットレベルのネットワーク ACL」で指定されているようにネットワークACLを変更します。

  16. この記事で後述する任意の設定を行うかどうかを選択してください。

  17. VPCをDatabricksに登録し、アカウントコンソールまたはアカウントAPIを使用してネットワーク設定を作成します。

CIDRの更新

あとで元のサブネットと重複するサブネットCIDRの更新が必要となる場合があります。

CIDRおよびその他のワークスペースオブジェクトを更新するには、次のことを行います。

  1. 更新する必要があるサブネットで実行されているすべての実行中のクラスター(およびその他のコンピュートリソース)を終了します。

  2. AWSコンソールを使用して、更新するサブネットを削除します。

  3. 更新されたCIDR範囲でサブネットを再作成します。

  4. 2つの新しいサブネットのルートテーブルの関連付けを更新します。各アベイラビリティーゾーンのものを既存のサブネットに再利用できます。

    重要

    このステップをスキップしたり、ルートテーブルを誤って設定したりすると、クラスターの起動に失敗する可能性があります。

  5. 新しいサブネットで新しいネットワーク設定オブジェクトを作成します。

  6. この新しく作成されたネットワーク設定オブジェクトを使用するようにワークスペースを更新します。

ファイアウォールと送信アクセスを構成する

ほとんどのトラフィックをブロックし、Databricks が接続する必要がある URL を許可するには、出力ファイアウォールまたはプロキシ アプライアンスを使用する必要があります。

  • ファイアウォールまたはプロキシアプライアンスがDatabricksワークスペースVPCと同じVPCにある場合は、トラフィックをルーティングし、次の接続を許可するように設定します。

  • ファイアウォールまたはプロキシアプライアンスが別のVPCまたはオンプレミスネットワークにある場合は、最初に0.0.0.0/0をそのVPCまたはネットワークにルーティングし、次の接続を許可するようにプロキシアプライアンスを設定します。

重要

Databricksでは、宛先をIPアドレスではなく、エグレスインフラストラクチャのドメイン名として指定することを強くお勧めしています。

次の発信接続を許可します。接続タイプごとに、リンクに従ってワークスペースリージョンのIPアドレスまたはドメインを取得してください。

  • Databricks Webアプリケーション: 必須です。ワークスペースへのREST APIコールにも使用されます。

    Databricks コントロール プレーン アドレス

  • Databricks セキュア クラスター接続 (SCC) リレー: セキュアなクラスター接続に必要です。

    Databricks コントロール プレーン アドレス

  • AWS S3グローバル URL: DatabricksがルートS3バケットにアクセスするために必要です。 リージョンに関係なく、s3.amazonaws.com:443を使用します。

  • AWS S3 リージョン別 URL: オプション。 他のリージョンにある可能性のある S3 バケットを使用する場合は、S3 リージョンエンドポイントも許可する必要があります。 AWS では、リージョン エンドポイント (s3.<region-name>.amazonaws.com:443) のドメインとポートを提供していますが、Databricks では、このトラフィックが AWS ネットワーク バックボーン経由でプライベート トンネルを通過するように、代わりに VPC エンドポイント を使用することをお勧めします。 「 (推奨) リージョン エンドポイントを構成する」を参照してください。

  • AWS STS グローバル URL: 必須。 リージョンに関係なく、次のアドレスとポートを使用します。 sts.amazonaws.com:443

  • AWS STS リージョン URL: リージョン エンドポイントへの切り替えが予想されるため、必須です。 VPC エンドポイントを使用します。 「 (推奨) リージョン エンドポイントを構成する」を参照してください。

  • AWS Kinesis リージョン URL: 必須。 Kinesis エンドポイントは、ソフトウェアの管理とモニタリングに必要なログをキャプチャするために使用されます。 リージョンの URL については、「 Kinesis アドレス」を参照してください。

  • テーブル メタストア RDS リージョン URL (コンピュート プレーン リージョン別): Databricks ワークスペースでデフォルト Hive metastoreを使用する場合は必須です。

    Hive metastoreは常にコンピュートプレーンと同じリージョンにありますが、コントロールプレーンとは異なるリージョンにある可能性があります。

    レガシーHive metastoreのRDSアドレス

    注:

    デフォルト Hive metastoreを使用する代わりに、 独自のテーブル メタストア インスタンスを実装することもできますが、その場合は、ネットワーク ルーティングを担当します。

  • コントロール プレーン インフラストラクチャ: 必須。 Databricks サービスの安定性を向上させるために、スタンバイ Databricks インフラストラクチャ用に Databricks によって使用されます。

    Databricks コントロール プレーン アドレス

リージョン エンドポイントのトラブルシューティング

上記の手順に従ったにもかかわらず、VPC エンドポイントが意図したとおりに機能しない場合 (たとえば、データソースにアクセスできない場合や、トラフィックがエンドポイントをバイパスしている場合など)、VPC エンドポイントを使用する代わりに、2 つの方法のいずれかを使用して、S3 と STS のリージョンエンドポイントのサポートを追加できます。

  1. クラスター構成に環境変数 AWS_REGION を追加し、AWS リージョンに設定します。 すべてのクラスターで有効にするには、 クラスターポリシーを使用します。 この環境変数は、DBFS マウントを使用するように既に構成されている可能性があります。

  2. 必要な Apache Spark 構成を追加します。 次のいずれかの方法を実行します。

    • 各ソース ノートブックで、次の操作を行います

      %scala
      spark.conf.set("fs.s3a.stsAssumeRole.stsEndpoint", "https://sts.<region>.amazonaws.com")
      spark.conf.set("fs.s3a.endpoint", "https://s3.<region>.amazonaws.com")
      
      %python
      spark.conf.set("fs.s3a.stsAssumeRole.stsEndpoint", "https://sts.<region>.amazonaws.com")
      spark.conf.set("fs.s3a.endpoint", "https://s3.<region>.amazonaws.com")
      
    • または、クラスターの Apache Spark 構成で次のようにします*。

      spark.hadoop.fs.s3a.endpoint https://s3.<region>.amazonaws.com
      spark.hadoop.fs.s3a.stsAssumeRole.stsEndpoint https://sts.<region>.amazonaws.com
      
  3. ファイアウォールまたはインターネットアプライアンスを使用して従来のコンピュートプレーンからのエグレスを制限する場合は、これらのリージョンエンドポイントアドレスを許可リストに追加します。

すべてのクラスターにこれらの値を設定するには、 クラスターポリシーの一部として値を構成します。

(オプション)インスタンスプロファイルを使用した S3 へのアクセス

インスタンスプロファイルを使用して S3 マウントにアクセスするには、次の Spark 設定を設定します。

  • 各ソース ノートブックで、次のいずれかの操作を行います。

    %scala
    spark.conf.set("fs.s3a.stsAssumeRole.stsEndpoint", "https://sts.<region>.amazonaws.com")
    spark.conf.set("fs.s3a.endpoint", "https://s3.<region>.amazonaws.com")
    
    %python
    spark.conf.set("fs.s3a.stsAssumeRole.stsEndpoint", "https://sts.<region>.amazonaws.com")
    spark.conf.set("fs.s3a.endpoint", "https://s3.<region>.amazonaws.com")
    
  • または 、クラスターの Apache Spark 構成で次のようにします。

    spark.hadoop.fs.s3a.endpoint https://s3.<region>.amazonaws.com
    spark.hadoop.fs.s3a.stsAssumeRole.stsEndpoint https://sts.<region>.amazonaws.com
    

すべてのクラスターにこれらの値を設定するには、 クラスターポリシーの一部として値を構成します。

警告

S3 サービスの場合、ノートブックまたはクラスターレベルで追加のリージョンエンドポイント設定を適用することには制限があります。 特に、グローバル S3 URL がエグレスファイアウォールまたはプロキシで許可されている場合でも、クロスリージョン S3 アクセスへのアクセスはブロックされます。 Databricks デプロイでリージョン間の S3 アクセスが必要になる可能性がある場合は、ノートブック レベルまたはクラスター レベルで Spark 構成を適用しないことが重要です。

(オプション)S3 バケットへのアクセスを制限する

S3 からのほとんどの読み取りと書き込みは、コンピュートプレーン内で自己完結型です。 ただし、一部の管理操作は、Databricks によって管理されるコントロール プレーンから発生します。 S3 バケットへのアクセスを、指定したソース IP アドレスのセットに制限するには、S3 バケットポリシーを作成します。 バケットポリシーで、 aws:SourceIp リストの IP アドレスを含めます。 VPC エンドポイントを使用する場合は、ポリシーの aws:sourceVpceに追加してアクセスを許可します。

S3 バケットポリシーの詳細については、Amazon S3 ドキュメントのバケットポリシーの例を参照してください。 このトピックには、バケット ポリシーの実例も含まれています。

バケットポリシーの要件

バケットポリシーは、クラスターが正しく起動し、それらに接続できるように、次の要件を満たしている必要があります。

注:

S3 バケットポリシーの制限を使用して新しいワークスペースをデプロイする場合は、 us-west リージョンのコントロールプレーン NAT-IP へのアクセスを許可する必要があり、そうしないとデプロイが失敗します。 ワークスペースがデプロイされたら、 us-west 情報を削除し、コントロール プレーン NAT-IP を更新してリージョンを反映できます。

必要な IP とストレージ バケット

ワークスペースの S3 バケットへのアクセスを制限するために S3 バケット ポリシーと VPC エンドポイント ポリシーを構成するために必要な IP アドレスとドメインについては、 「Databricks コントロール プレーンからのアウトバウンド」を参照してください。

バケットポリシーの例

これらの例では、プレースホルダーテキストを使用して、推奨IPアドレスと必要なストレージバケットを指定する場所を示します。 要件を確認して、クラスターが正しく起動し、それらに接続できることを確認します。

Databricks コントロール プレーン、コンピュート プレーン、信頼できる IP へのアクセスを制限します。

この S3 バケットポリシーでは、拒否条件を使用して、指定したコントロールプレーン、NAT ゲートウェイ、および企業 VPN IP アドレスからのアクセスを選択的に許可します。 プレースホルダーのテキストを環境の値に置き換えます。 ポリシーには任意の数の IP アドレスを追加できます。 保護する S3 バケットごとに 1 つのポリシーを作成します。

重要

VPC エンドポイントを使用する場合、このポリシーは完全ではありません。 「 Databricks コントロール プレーン、VPC エンドポイント、信頼できる IP へのアクセスを制限する」を参照してください。

{
  "Sid": "IPDeny",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:*",
  "Resource": [
    "arn:aws:s3:::<S3-BUCKET>",
    "arn:aws:s3:::<S3-BUCKET>/*"
  ],
  "Condition": {
    "NotIpAddress": {
      "aws:SourceIp": [
        "<CONTROL-PLANE-NAT-IP>",
        "<DATA-PLANE-NAT-IP>",
        "<CORPORATE-VPN-IP>"
      ]
    }
  }
}

Databricks コントロール プレーン、VPC エンドポイント、信頼できる IP へのアクセスを制限します。

VPC エンドポイントを使用して S3 にアクセスする場合は、ポリシーに 2 番目の条件を追加する必要があります。 この条件は、VPC エンドポイントを aws:sourceVpce リストに追加することで、VPC エンドポイントからのアクセスを許可します。

このバケットは、VPC エンドポイント、および指定したコントロールプレーンと企業 VPN IP アドレスからのアクセスを選択的に許可します。

VPC エンドポイントを使用する場合は、S3 バケットポリシーの代わりに VPC エンドポイントポリシーを使用できます。 VPCE ポリシーでは、ルート S3 バケットへのアクセスと、 リージョンに必要なアーティファクト、ログ、共有データセットバケットへのアクセスを許可する必要があります。 VPC エンドポイントポリシーについては、AWS のドキュメントをご覧ください。

プレースホルダーのテキストを環境の値に置き換えます。

{
  "Sid": "IPDeny",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:*",
  "Resource": [
    "arn:aws:s3:::<S3-BUCKET>",
    "arn:aws:s3:::<S3-BUCKET>/*"
  ],
  "Condition": {
    "NotIpAddressIfExists": {
      "aws:SourceIp": [
        "<CONTROL-PLANE-NAT-IP>",
        "<CORPORATE-VPN-IP>"
      ]
    },
    "StringNotEqualsIfExists": {
      "aws:sourceVpce": "<VPCE-ID>"
    }
  }
}