Amazon Web Services ブログ
VMware Cloud on AWS で Amazon S3 VPC Endpoint を利用する際の設計上の考慮事項
この投稿は AWS Partner Solution Architect である Kiran Reid、同じく Specialist Solutions Architect である Ziv Klempner、Jordi Minguez Orozco が執筆したものの日本語訳バージョンとなります。元の英語記事はこちらです。
2021年初めにリリースされた AWS PrivateLink for Amazon S3 の一般提供により、お客様は仮想ネットワークのプライベート IP を使用して Amazon S3 とオンプレミスリソース間のプライベート接続を利用できます。この投稿では、Amazon S3 のインターフェイス VPC エンドポイント (AWS PrivateLink) を活用する方法と、VMware Cloud on AWS との統合について説明しています。これにより、VMware のエンタープライズクラスの Software-Defined Data Center (SDDC) ソフトウェアが AWS クラウドにもたらされます。
多くの組織では、最高情報責任者 (CIO) と最高情報セキュリティ責任者 (CISO) が、ゼロトラストイニシアチブを推進してビジネスリスクを軽減しています。費用対効果の高いソリューションを維持しつつ、ワークロード・トラフィックがパブリックインターネットを通過しないようにするなど、規制やコンプライアンスの要件を満たす必要があります。以前は、VMware Cloud on AWS のワークロードは、接続された AWS アカウントのゲートウェイ VPC エンドポイントを利用するか、パブリックインターネットを介して Amazon Simple Storage Service(Amazon S3)にアクセスしていました。インターフェイス VPC エンドポイントを使用すると、Amazon 仮想プライベートクラウド (VPC) とサブネットで S3 に直接かつ安全にアクセスできるようになります。
これにより、プライベート IP アドレスを使用して S3 にアクセスできるようになり、セキュリティグループを Elastic Network Interface(ENI)に関連付けてアクセス制御を行い、エンドポイントを保護することで既存のゲートウェイ VPC エンドポイントの機能が拡張されます。組織にとってのメリットとしては、VMware Cloud on AWS ワークロードと Amazon S3 間のハイブリッドクラウド接続の簡素化、データフローをプライベートかつ安全に維持できることが挙げられます。
VPC エンドポイント: ゲートウェイ型とインターフェース型の比較
まず VPC エンドポイントについて説明してから使用可能なさまざまなエンドポイントについて説明します。VPC エンドポイントは、プライベート接続を使用して VPC 内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを AWS サービスに接続するネットワークコンポーネントです。VPC エンドポイントでは、EC2 インスタンスは、サポートされているサービスと通信するために、ネットワークアクセス変換 (NAT) デバイス、仮想プライベートネットワーク (VPN) 接続、インターネットゲートウェイ、または AWS Direct Connect を必要としません。グローバルな AWS インフラストラクチャ上の AWS ネットワークバックボーン内でのみ通信できます。
Figure 1 – VPC エンドポイントの種類
ゲートウェイ型 VPC エンドポイント
ゲートウェイ VPC エンドポイントは当初 Amazon S3 に対して提供が開始され、後に Amazon DynamoDB のサポートが追加されました。ゲートウェイ VPC エンドポイントを使用すると、インターネットゲートウェイ、NAT デバイス、VPN 接続を必要とせずに、サポートされている AWS サービスから VPC にプライベートに接続できます。ゲートウェイ VPC エンドポイントは、サービスのプレフィックスリストを持つ宛先とエンドポイント ID を持つターゲットを指定するエントリをルートテーブルに追加します。これにより、VPC 内のリソースがプライベート IPv4 アドレスを使用して VPC 外の AWS リソースと通信できるようになり、パブリック IPv4 アドレスを使う必要がなくなります。さらに、VPC とエンドポイント間のトラフィックは AWS のネットワークから外に出ることはありません。
ゲートウェイ VPC エンドポイントを保護するために、AWS Identity and Access Management (IAM) ポリシーでは、オペレーションの実行に使用する方法に関係なく、アクションのアクセス権限を定義できます。
S3 でゲートウェイ型 VPC エンドポイントを利用する
このセクションでは、VPC ゲートウェイエンドポイントを使用して Amazon S3 に接続する手順について説明します。ここでは、必要な構成、ルートテーブル、ファイアウォール設定の概要について説明します。
Figure 2 – ゲートウェイ型 VPC エンドポイントを利用した Amazon S3 への接続
設定の全体像
- SDDC の作成プロセスでは、VPC が Connected VPC として指定されます。ENI は、Connected VPC 内の指定したサブネットに作成されます。
- Connected VPC に S3 バケットをデプロイして設定し、オブジェクトストレージサービスを提供します
- Amazon S3 ゲートウェイエンドポイントは、ストレージゲートウェイサービスと S3 バケットへのプライベートアクセスを提供します。
- VMware Cloud on AWS の VPC は、VMware Cloud on AWS サービスを利用しているグループまたは事業部門のアカウント内にあります。
- NSX Edge は SDDC の一部である Tier-0 ルーターとして機能し、North-South トラフィック(SDDC に出入りするトラフィック、または管理ゲートウェイとコンピューティングゲートウェイ間のトラフィック)を処理します。
- 仮想マシン (VM) セグメントから S3 サービスが配置されている VPC およびサブネットへのトラフィックを許可するように VMware Cloud on AWS コンピュートゲートウェイを設定します。
- Connected VPC の ENI は、SDDC 内の VM とネイティブ AWS サービスの間で、広帯域と低レイテンシーのアクセスを提供します。
- ゲートウェイエンドポイントと VMware Cloud on AWS SDDC 間のトラフィックを制御するために、VPC 内のルートテーブルを利用してトラフィックが VPC ルーターを経由するようにします。
次に、SDDC からゲートウェイ VPC エンドポイントを使用して S3 へのアクセスを設定するプロセス全体について説明します。ゲートウェイ VPC エンドポイントが作成されると、新しいエントリがルートテーブルに追加されます。
Figure 3 – ルートテーブルに追加されたゲートウェイ型 VPC エンドポイント
VMware Cloud on AWS コンソールから、コンピューティングゲートウェイファイアウォールは、Connected VPC および S3 プレフィックスとの通信を許可する必要があります。
Figure 4 – 通信を許可するためのゲートウェイファイヤーウォールの設定(VMware Cloud on AWS コンソール)
デフォルトでは接続された Amazon VPC 内の ENI を介した Amazon S3 アクセスは有効になっています。インターネットゲートウェイ経由の S3 アクセスを許可するためにこのアクセスを無効にした場合は、再度有効にする必要があります。
Figure 5 – デフォルトで有効化される Amazon S3 エンドポイント
Amazon S3 でインターフェイス VPC エンドポイントを使用する
2018年、AWS は AWS PrivateLink を利用したインターフェイス VPC エンドポイントと呼ばれる機能をリリースしました。AWS PrivateLink は Hyperplane と呼ばれるテクノロジーに基づいています。Hyperplane は、接続の管理に使用される拡張性の高い分散システムです。
Hyperplane は、NAT ゲートウェイやネットワークロードバランサーなどの AWS サービスを支えているのと同じテクノロジーです。インターフェイスエンドポイントは、エンドポイント自体とエンドポイントがアクセスを提供するリソースのリソースポリシーを使用して保護されます。インターフェイスエンドポイントでは、セキュリティグループを使用してエンドポイントへのアクセスを制限できます。AWS PrivateLink は、仮想プライベートクラウド内に伸縮自在なネットワークインターフェイスを公開しています。サービスの PrivateLink エンドポイントを作成すると、その VPC 内で指定したサブネット内に ENI が作成されます。
このインターフェイスには、PrivateLink が管理するサービスへのすべてのトラフィックのエントリポイントとして機能するプライベート IP があります。インターフェイス VPC エンドポイントは可用性が高く、高いネットワークパフォーマンスを提供でき、AWS によって管理されます。VMware Cloud on AWS で実行されている vSphere ワークロードから Amazon S3 への API および HTTPS リクエストは、DNS 解決を活用しインターフェイスエンドポイント経由で自動的に送信できます。ゲートウェイ VPC エンドポイントとは異なり、ルートテーブルを変更する必要はありません。
Figure 6 – AWS PrivateLink を利用した Amazon S3 への接続
設定の全体像
- SDDC の作成プロセスでは、VPC が Connected VPC として指定されます。ENI は、Connected VPC 内の指定したサブネットに作成されます。
- Connected VPC に S3 バケットをデプロイして設定し、オブジェクトストレージサービスを提供します。
- VMware Cloud on AWS サブネットと S3 サービスがプロビジョニングされる Amazon VPC サブネット間の通信を許可するように AWS セキュリティグループを設定します。
- インターフェイスエンドポイントは、サブネット内のプライベート IP アドレスを持つ ENI を公開します。
- VMware Cloud on AWS VPC は、VMware Cloud on AWS サービスに加入しているグループまたは事業部門に対応するアカウントに基づいています。
- NSX Edge は SDDC の一部である Tier-0 ルーターとして機能し、North-South トラフィック(SDDC に出入りするトラフィック、または管理ゲートウェイとコンピューティングゲートウェイ間のトラフィック)を処理します。
- VM のセグメントから S3 サービスがある VPC およびサブネットへのトラフィックを許可するように VMware Cloud on AWS コンピュートゲートウェイを設定します。
- Connected VPC の ENI は、SDDC 内の VM とネイティブ AWS サービスの間で、広帯域と低レイテンシーのアクセスを提供します。
- セキュリティグループを使用して、インターフェイスエンドポイントと VMware Cloud on AWS SDDC 間のトラフィックが VPC ルーターを経由するようにします。
SDDC 内の VM ワークロードのネットワークセグメントから、インターフェイス VPC エンドポイントの ENI が作成されたサブネットへのトラフィックを許可するように、セキュリティグループを設定する必要があります。
Figure 7 – S3 インターフェイス型エンドポイントにセキュリティグループ設定を適用する
SDDC ゲートウェイファイアウォールでは、Connected VPC へのトラフィックのみを許可する必要があります。
Figure 8 – Connected VPC への通信を許可するためのゲートウェイファイヤーウォールの設定(VMware Cloud on AWS コンソール)
ゲートウェイ VPC エンドポイントまたはパブリック S3 アクセスを使用していないため、VMware Cloud on AWS コンソールの S3 の「サービスアクセス」を「無効」に設定できます。
Figure 9 – Amazon S3 エンドポイントは有効・無効を選択可(VMware Cloud on AWS コンソール)
プライベート DNS 名は現在、Amazon S3 インターフェイス VPC エンドポイント (AWS PrivateLink) では作成時にサポートされていないことを知っておくことが重要です。エイリアスレコードを持つ Amazon Route 53 プライベートホストゾーンを手動で作成し、VPC にアタッチすることができます。すべてのトラフィックは、そのエンドポイントを経由して自動的に流れます。次の表に、Amazon S3 アクセスの主な相違点の概要を示します。
パブリックインターネット | ゲートウェイ型エンドポイント | インターフェイス型エンドポイント | |
Data transfer | パブリックインターネット | ENI | ENI |
動作方法 | S3 のパブリック IP を利用 | S3 エンドポイントが prefix list ID を用いて Connected VPC のルートテーブルに挿入される | プライベート IP を持つエンドポイント用 ENI が作成される |
リージョン間アクセス | サポート | 非サポート | サポート (VPC peering 利用) |
クロスアカウントアクセス | サポート | 非サポート | サポート |
共有サービス VPC | サポート | 非サポート(ルートテーブル当たり 1 ゲートウェイ型エンドポイント) | サポート (共有サービスVPC当たり 1 インターフェイス型エンドポイント) |
VPC flow logs | No | No | Yes |
料金 | リージョン内は無料 | 追加費用なし | 追加費用あり |
セキュリティのベストプラクティス
インターフェイスまたはゲートウェイエンドポイントを作成するときに、接続先のサービスへのアクセスを制御するエンドポイントポリシーをインターフェイスまたはゲートウェイエンドポイントにアタッチできます。エンドポイントポリシーは JSON 形式で記述する必要があります。
Amazon S3 の VPC エンドポイントを使用している場合は、S3 バケットポリシーを使用して、特定のエンドポイントまたは特定の VPC からのバケットへのアクセスを制御することもできます。詳細については、「Amazon S3 バケットポリシー」を参照してください。
VPC エンドポイントポリシーを使用する
VPC エンドポイントポリシーは、エンドポイントを作成または変更するときにエンドポイントにアタッチする IAM リソースポリシーです。エンドポイントの作成時にポリシーをアタッチしない場合、AWS はサービスへのフルアクセスを許可するデフォルトのポリシーをアタッチします。
サービスがエンドポイントポリシーをサポートしていない場合、エンドポイントはサービスへのフルアクセスを許可します。エンドポイントポリシーは、IAM ユーザーポリシーやサービス固有のポリシー (S3 バケットポリシーなど) を上書きしたり、置き換えたりすることはありません。エンドポイントから指定されたサービスへのアクセスを制御する別のポリシーです。
1つのエンドポイントに複数のポリシーをアタッチすることはできませんが、ポリシーはいつでも変更できます。ポリシーを変更した場合、変更が反映されるまでに数分かかることがあります。ポリシーの作成の詳細については、『IAM ユーザーガイド』の「IAM ポリシーの概要」を参照してください。
エンドポイントポリシーは IAM ポリシーと同様ですが、次の点に注意してください。
- ポリシーには Principal 要素が含まれている必要があります。ゲートウェイ VPC エンドポイントに関する追加情報については、ゲートウェイ VPC エンドポイントのエンドポイントポリシーに関するドキュメントを参照してください。
- エンドポイントポリシーのサイズは 20,480 文字 (空白を含む) を超えることはできません。
ゲートウェイ VPC エンドポイントのエンドポイントポリシー
ゲートウェイ VPC エンドポイントに適用されるエンドポイントポリシーの場合、”AWS”:”AWS-account-ID” または”AWS”:”arn:aws:iam::AWS-account-ID:root”の形式でプリンシパルを指定すると、アクセスは AWS アカウントのルートユーザーのみに付与され、アカウントのすべての IAM ユーザーとロールには付与されません。
Principal 要素に Amazon リソースネーム (ARN)を指定した場合、ARN はポリシーの保存時に一意のプリンシパル ID に変換されます。詳細については、Amazon S3 のエンドポイントポリシーに関するドキュメントを参照してください。
セキュリティグループ
インターフェイスエンドポイントを作成すると、VPC で作成されたエンドポイントネットワークインターフェイスにセキュリティグループを関連付けることができます。セキュリティグループを指定しない場合、VPC のデフォルトのセキュリティグループはエンドポイントネットワークインターフェイスに自動的に関連付けられます。
セキュリティグループのルールで、エンドポイントネットワークインターフェイスと、サービスと通信する VPC 内のリソースとの間の通信が許可されていることを確認する必要があります。
ゲートウェイエンドポイントの場合、セキュリティグループのアウトバウンドルールが制限されている場合は、VPC からエンドポイントで指定されているサービスへのアウトバウンドトラフィックを許可するルールを追加する必要があります。そのためには、サービスの AWS プレフィックスリスト ID をアウトバウンドルールの宛先として使用できます。
詳細については、セキュリティグループの変更に関するドキュメントを参照してください。
コストに関する考慮事項
インターフェイスエンドポイントとゲートウェイロードバランサーエンドポイントの 2 種類の AWS PrivateLink エンドポイントを選択できます。
AWS PrivateLink エンドポイントを作成して、AWS が所有するサービス、または AWS の顧客またはパートナーが所有するサービスへのプライベート接続を有効にすることができます。VPC エンドポイントとサービスとの関連付けの状態に関係なく、各 AWS アベイラビリティーゾーンで VPC エンドポイントがプロビジョニングされたままの 1 時間ごとに請求されます。詳細については、AWS ウェブサイトを参照してください。
VPC エンドポイントに対するこのような時間単位の請求は、削除すると停止します。また、エンドポイントサービスの所有者が VPC エンドポイントのサービスへのアタッチを拒否し、そのサービスが削除された場合も、時間単位の請求は停止します。このような VPC エンドポイントは再利用できないため、削除する必要があります。
データ処理料金は、トラフィックの送信元または送信先に関係なく、VPC エンドポイントで処理された Gigabyte ごとに適用されます。VPC エンドポイントの 1 時間未満が消費された場合は、1 時間分として請求されます。VPC エンドポイントにデータを送信すると、VPC エンドポイントの関連付けの状態に関係なく、データ転送料金が発生します。
結論
VMware Cloud on AWS では、Amazon S3 などの AWS ネイティブサービスを利用できる接続オプションが増えています。この記事では、VMware Cloud on AWS への接続に関するインターフェイス型 VPC エンドポイントとゲートウェイ型 VPC エンドポイントの違いについて説明しました。また、セキュリティとコストに関する考慮事項についても取り上げました。
Connected VPC の VPC エンドポイントは、低レイテンシー、高スループット、VPC ワークロードやその他の AWS サービスへのシームレスな接続を提供します。これにより、プライベート IP アドレスを使用して S3 にアクセスできるようになり、セキュリティグループを ENI に関連付けることでエンドポイントのセキュリティを確保できるため、既存のゲートウェイ VPC エンドポイントの機能が拡張され、ビジネスへのリスクが軽減されます。
これらのアーキテクチャをお客様の環境に実装するためのサポートについては、AWS までお問い合わせください。
この投稿の翻訳は Solutions Architect の有岡が担当させていただきました。