はじめに
今回は、2020年6月12日に Vinay Wagh 氏と Abhinav Garg 氏によって投稿されました「 Enterprise Cloud Service Public Preview on AWS 」で紹介されている Enterprise Security の1つである「 Customer-managed VPC 」のリージョナルエンドポイントについて、まとめました。
本記事のリンクは下記参照。
■リンク
・Customer-managed VPC
・Enterprise Cloud Service Public Preview on AWS
リージョナルエンドポイント(セキュアなクラスタ接続限定)
カスタママネージド VPC を使用してセキュアなクラスタ接続を行う場合は、AWS グローバルエンドポイントと比較して、より直接的な接続を実現し、コスト削減のために AWS サービスへのリージョナル VPC エンドポイントのみを使用するよう VPC を構成可能です。
以下の4つが、カスタマー管理のVPC を持つ Databricks ワークスペースが到達する必要がある AWS サービスです。
- STS
- S3
- Kinesis
- RDS (※デフォルトの Databricks メタストアを使用する場合のみ VPC から RDS サービスへの接続が必要)
RDS 以外の3つのサービスにおける、VPCエンドポイントを使用したネットワークの動作、ノートブック、またはクラスターレベルの Spark 構成による動作の変化や構成について説明します。
STS リージョナル VPC エンドポイント概要
AWS STSへのデータプレーンアクセスの場合:
- デフォルトでは VPC エンドポイントを設定すると、トラフィックは S3 VPC エンドポイントをバイパスし、グローバル STS URL を使用して送信します。全てのトラフィックがVPCエンドポイントを通過するようにするには、追加の設定が必要です。
- 関連する Spark 構成をノートブック、またはクラスターレベルに追加すると、STS VPC エンドポイントを介してトラフィックが出ます。
Databricks では、アクセスが一時的に使用される場合に備えて、STS グローバル URL へのアクセスを許可する出口装置を構成することをお勧めします。たとえば、最初のワークスペース作成後、ノートブック、またはクラスタ Spark 構成とクラスターポリシのセットアップ前に、Databricks はグローバル URL を使用しなくてはいけません。
S3 リージョナル VPC エンドポイント概要
コントロールプレーン内のアーティファクトとログ保存のための S3 へのデータプレーンアクセスのために VPC エンドポイントを構成すると、次のような動作になります。
- us-west-2、us-east-1 と us-east-2、リージョンへのトラフィックは S3 VPC エンドポイントを使用
- us-west-1 のリージョンの場合、関連するエンドポイントがクロスリージョンのため、S3 VPC エンドポイントはバイパスされる
DBFS ルートストレージ用のS3へのデータプレーンアクセスと、VPCリージョン内の独自のS3データストレージ用。
- デフォルトでは、VPC エンドポイントを設定すると、トラフィックは S3 VPC エンドポイントをバイパスし、グローバル S3 URL を使用して送信します。全てのトラフィックが VPC エンドポイントを通過するようにするには、追加の設定が必要です。
- ノートブック、またはクラスタレベルで関連する Spark 構成を追加すると、トラフィックは S3 VPC エンドポイントを使用して送信されます
Databricks では、アクセスが一時的に使用される場合に備えて、S3 グローバル URL へのアクセスを許可する出口装置を構成することをお勧めします。たとえば、最初のワークスペース作成後、ノートブック、またはクラスタ Spark 構成とクラスターポリシのセットアップ前に、Databricks はグローバル URL を使用しなくてはいけません。
Kinesis リージョナル VPC エンドポイント概要
コントロールプレーンのロギングおよび使用状況データエンドポイントのKinesisへのデータプレーンアクセスの場合:
- us-west-2、us-east-1 と us-east-2、リージョンへのトラフィックは Kinesis VPC エンドポイントを使用
- us-west-1 のリージョンの場合、関連するエンドポイントがクロスリージョンのため、Kinesis VPC エンドポイントはバイパスされる
VPCリージョン内の顧客データストリームのKinesisへのデータプレーンアクセスの場合:
- トラフィックは、Kinesis VPCエンドポイントを使用
リージョナルエンドポイントのセットアップ
ここでは、ノートブックやクラスタレベルでのアウトバウンドアクセスの制限や、Spark の設定を追加するためのオプションの手順と、リージョナルエンドポイントの設定方法を説明します。
S3 VPC ゲートウェイエンドポイントのセットアップ
AWS コンソール、または AWS CLI ツールで利用できます。
■CLI コマンド
1 2 3 4 |
aws ec2 create-vpc-endpoint \ --vpc-id <vpc-id> \ --service-name com.amazonaws.<region>.s3 \ --route-table-ids <workspace-route-table-id> |
STS VPC ゲートウェイエンドポイントのセットアップ
AWS コンソール、または AWS CLI ツールで利用できます。
■CLI コマンド
1 2 3 4 5 6 |
aws ec2 create-vpc-endpoint \ --vpc-id <aws-vpc-id> \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.<aws-region>.sts \ --subnet-ids <aws-subnet-ids-list> \ --security-group-ids <aws-security-group-id-list> |
■AWS コンソール
1. AWS コンソール画面より、 VPC サービスの画面に移動
2. 左のナビゲーションより「エンドポイント」を選択し、「エンドポイントの作成」をクリック
3. 「サービス名」フィールドで sts を検索し、ユーザの利用しているリージョンのを選択
4. 「VPCフィールド」で Databricks デプロイメントと関連づいている VPC を選択
5. 同じフィールドで、ワークスペースのサブネットを選択(本番環境への導入時は、エンドポイントネットワークインターフェイス用のサブネットはワークスペースのサブネットとは異なる必要がある。)
6. 「DNS 名を有効化」にチェック
7. VPC で DNS ホスト名と DNS 解決が有効になっていることを確認
8. セキュリティグループ画面で、Datarbricks ワークスペースに関連づいたセキュリティグループを選択
9. ポリシー画面にて「フルアクセス」を選択
10. STS インターフェイスエンドポイントが AWS VPC コンソールのエンドポイントセクションに表示されていることを確認
おわりに
Customer Managed VPC の リージョナルエンドポイントに関するまとめは以上です。
詳細については、元記事をご参照ください。