メインコンテンツまでスキップ

AWS S3 ストレージバケットへのプライベート接続を設定する

この機能は パブリック プレビュー段階です。このプレビューに参加するには、Databricks アカウント チームにお問い合わせください。

注記

2024 年 10 月 7 日より、 Databricks は、サーバレス コンピュート リソースが外部リソースに接続することで発生するネットワーク費用を顧客に請求するようになりました。 サーバレス ネットワーク請求は段階的に展開されているため、請求が徐々に変更される可能性があります。 課金の詳細については、「Databricks サーバレス ネットワーキングのコストについて」を参照してください。

このページでは、 アカウントコンソールのUIを使用して、サーバレス コンピュートからリージョン内のAWSS3 Databricksバケットへのプライベート接続を設定する方法について説明します。

AWS S3 ストレージバケットへのプライベート接続。

サーバレス コンピュートのプライベート接続を構成すると、次のものが提供されます。

  • 専用のプライベート接続: サーバレス ワークスペースと AWS S3間の安全で分離されたアクセスを確保し、アクセスを許可された接続のみに制限します。
  • データ流出の軽減策の強化: サーバレス コンピュート with Unity Catalog は組み込みデータ流出保護を提供しますが、PrivateLink はネットワーク防御のレイヤーを追加します。 AWS PrivateLinkを使用すると、データトラフィックは完全にAWSネットワークに留まり、パブリックインターネットを通過することはありません。このアーキテクチャは、VPC エンドポイントを介した制御されたアクセスと組み合わせることで、データ流出の攻撃対象領域を減らします。

必要条件

  • ワークスペースは Enterprise プランです。
  • あなたは Databricks アカウントのアカウント管理者です。
  • サーバレス コンピュートを使用して、少なくとも 1 つの機能ワークスペースがあります。
  • S3 バケットポリシーを作成および変更し、VPC エンドポイントを作成するための適切な AWS IAM アクセス許可がある。
  • 各 Databricks アカウントには、リージョンごとに最大 10 個の NCC を含めることができます。
  • 各リージョンには 30 個のプライベート エンドポイントがあり、必要に応じて 1 から 10 個の NCC に分散できます。
  • 各NCCは、最大50のワークスペースにアタッチできます。
  • 各 NCC は、1 つの AWS S3 プライベートエンドポイントルールを持つことができます。
  • 各プライベートエンドポイントルールには、最大 100 個の S3 バケットを含めることができます。

ステップ 1: ネットワーク接続構成 (NCC) オブジェクトを作成する

使用するリージョンと AWS アカウントに既存の NCC がある場合は、この手順をスキップできます。

  1. アカウントコンソール」で、「 クラウドリソース 」をクリックします。
  2. [ネットワーク ] タブを選択します。
  3. [ ネットワーク接続構成の追加] を選択します。
  4. NCC の名前を入力します。
  5. 地域を選択します。これは、ワークスペースのリージョンと一致する必要があります。
  6. [ 追加 ] をクリックします。

ステップ 2: AWS S3 インターフェイスエンドポイントを作成する

important

ステップ 3 を完了するまで、プライベート エンドポイントを有効にしないでください。

  1. NCC の [プライベート エンドポイント ルール ] セクションに移動します。
  2. [プライベート エンドポイント ルールの追加 ] を選択します。
  3. [リソースタイプ ] で [S3 バケット ] を選択します。
  4. ルール設定を構成します。
    • エンドポイントサービス: このフィールドは、プライベートエンドポイントの送信先リソースへの接続を確立するために自動的に入力されます。
    • S3 バケット名: 宛先リソースのバケット名を入力します。バケットは、NCC およびエンドポイントサービスと同じ AWS リージョンに存在する必要があります。

ステップ 3: VPC エンドポイントからのトラフィックを受け入れるように S3 バケットポリシーを適宜更新する

サーバレス コンピュートがプライベート エンドポイントを介してS3 バケットにアクセスできるようにするには、S3 AWSアカウントの バケット ポリシーを更新する必要がある場合があります。

追加する必要がある Allow 句の例を次に示します。

JSON
{
"Sid": "AllowVpcEndpointAccess",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::{bucket-name}", "arn:aws:s3:::{bucket-name}/*"],
"Condition": {
"StringEquals": {
"aws:SourceVpce": "vpce-12345" // This is the VPC endpoint returned in Step 2
}
}
}

バケットポリシーが Deny 句で設定されている場合は、ステップ 2 で返された VPC エンドポイント ID の例外条件を追加する必要があります。 条件の例を次に示します。

JSON
  {
...
"Effect": "Deny",
...
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-12345"
}
}
}
注記

このポリシー例には、許可リストに登録する可能性のある他のパブリックエンドポイントまたはプライベートエンドポイント (企業 VPN IP など) は含まれていません。

UI を更新するか、API 呼び出しを行って、ルールのステータスが ESTABLISHEDに変わることを確認します。

ステップ 4: プライベート エンドポイント ルールを有効にする

  1. ケバブメニューアイコンをクリックします。
  2. ルールを更新 をクリックします。
  3. [ルールを有効にする ] を選択します。
important

この手順では、プライベート エンドポイント ルールで設定されたすべての S3 バケットのトラフィックを、NCC に接続されているワークスペースの PrivateLink を介してルーティングします。先に進む前に、VPC エンドポイントからの S3 バケットアクセスを許可するステップ 3 が完了していることを確認してください。

ステップ 5: NCC を 1 つ以上のワークスペースにアタッチする

この手順では、設定したプライベート接続をサーバレス ワークスペースに関連付けます。 ワークスペースが目的の NCC に既にアタッチされている場合は、この手順をスキップします。NCC をワークスペースにアタッチするには:

  1. 左側のナビゲーションで [ワークスペース ] に移動します。
  2. 既存のワークスペースを選択します。
  3. [ワークスペースの更新] を選択します。
  4. [ネットワーク接続の構成 ] で、ドロップダウンを選択し、作成した NCC を選択します。
  5. この NCC を適用するすべてのワークスペースについて、この手順を繰り返します。

ステップ 6: 接続を確認する

接続性をテストするには、バケットを外部ロケーションとして登録する

  1. バケットを外部ロケーションとして登録する 外部ロケーションを参照してください。
  2. SQL エディターを開く
  3. ラン:
CREATE TABLE {catalog}.{schema}.test_connectivity LOCATION 's3://{your-s3-bucket}/test_connectivity'

接続が完全に確立されるまでに 10 分かかる場合があります。

注記

ネットワークポリシーで外部アクセスが制限されている場合、AWS S3 バケットの FQDN への直接接続 ( {your-s3-bucket}.s3.{region}.amazonaws.com など) はブロックされます。このアクセスを許可するには、必要な FQDN をネットワーク ポリシーの [許可されたドメイン ] に明示的に追加する必要があります。サーバレス egress 制御については、Manage network ポリシーを参照してください。

S3 バケットへのアクセスには、 {your-s3-bucket}.s3.{region}.amazonaws.comなどのリージョンエンドポイントを使用する必要があります。{your-s3-bucket}.s3.amazonaws.com などの従来のエンドポイントはサポートされていません。

次のステップ

  • AWS リソースへのプライベート接続を構成する : PrivateLink を使用して、パブリック インターネットをバイパスして、仮想ネットワークから AWS サービスへの安全で分離されたアクセスを確立します。「 VPC 内のリソースへのプライベート接続の設定」を参照してください。
  • サーバレス コンピュート アクセス用のファイアウォールを設定する : ファイアウォールを実装して、サーバレス コンピュート環境の受信および送信ネットワーク接続を制限し、セキュリティで保護します。 サーバレス コンピュート アクセス用のファイアウォールの設定を参照してください。
  • データ転送と接続のコストを理解する : データ転送と接続とは、サーバレス環境との間でデータを移動することを指します。 サーバレス製品のネットワーク料金は、サーバレス コンピュートを使用している顧客にのみ適用されます。 Databricks サーバレスのネットワーク・コストについてを参照してください。