Snowflake
はじめるにあたり
ガイド
開発者
参照情報
リリース
ステータス
Ctrl+K

ガイド

  1. 概要
  2. Snowflakeへの接続
  3. 仮想ウェアハウス
  4. データベース、テーブル、およびビュー
  5. データ型
  6. データのロード
  7. データのアンロード
  8. クエリ
  9. データ共有
  10. アラートおよび通知
  11. セキュリティ
    1. 機能の概要
    2. 認証
    3. フェデレーション認証および SSO
    4. キーペア認証およびローテーション
    5. 多要素認証(MFA)
    6. Snowflake OAuth
    7. 外部 OAuth
    8. ネットワーキングおよびプライベート接続
    9. ネットワークポリシー
    10. Snowflake内部ステージへのプライベート接続
    11. Snowflakeサービスへのプライベート接続
      1. AWS PrivateLink
      2. Azure PrivateLink
      3. Google Cloud Private Service Connect
    12. 管理および承認
    13. セッションおよびセッションポリシー
    14. SCIM
    15. アクセス制御
    16. エンドツーエンド暗号化
    17. 暗号化キー管理
  12. データガバナンス
  13. 組織およびアカウント管理
  14. ビジネス継続性およびデータ復旧
  15. コスト管理

AWS PrivateLink とSnowflake¶

Snowflake logo in black (no text) Business Critical機能

この機能には、Business Critical(またはそれ以上)が必要です。

このトピックでは、 AWS PrivateLink を構成して、Snowflakeアカウントを1つ以上の AWS VPCs に直接接続する方法について説明します。

AWS PrivateLink は、Snowflakeが提供するサービスでは ありません。PrivateLinkは、SnowflakeがSnowflakeアカウントでの使用をサポートしている AWS のサービスです。

このトピックの内容:

  • AWS PrivateLink とは

  • AWS PrivateLink の有効化

  • AWS VPC 環境の構成

    • ステップ1: VPC エンドポイント(VPCE)を作成および構成する

    • ステップ2: VPC ネットワークを構成する

    • ステップ3: Amazon S3用 AWS VPC インターフェイスエンドポイントを作成する

  • Snowflakeに接続する

  • パブリックアクセスのブロック --- オプション

  • Snowflakeクライアントの構成

    • ステップ1:Snowflakeクライアントが OCSP キャッシュサーバーをサポートしていることを確認する

    • ステップ2:Snowflakeクライアントのホスト名を指定する

  • AWS PrivateLink と SSO の併用

  • AWS PrivateLink でのクライアントリダイレクトの使用

  • トラブルシューティング

AWS PrivateLink とは¶

AWS PrivateLink は AWS のサービスで、プライベート VPC エンドポイントを作成するためのものです。これにより、パブリックインターネットを経由せずに、ご使用の AWS VPCs と Snowflake VPC の間の直接的かつ安全な接続が可能になります。接続は、同じ AWS リージョン内の AWS VPCs 用です。

外部関数の記述 の場合は、 AWS PrivateLink を プライベートエンドポイント で使用することもできます。

さらに、オンプレミス環境(例: ホストされていないデータセンター)がある場合は、 AWS Direct Connect と AWS PrivateLink を組み合わせて使用し、すべての仮想環境と物理環境を単一のプライベートネットワークで接続することを選択できます。

注釈

AWS Direct Connectは独立した AWS のサービスで、 AWS PrivateLink とは独立して実装する必要があり、このトピックの範囲外です。AWS Direct Connectの実装については、Amazonにお問い合わせください。

AWS PrivateLink の有効化¶

注釈

現在、このセクションのセルフサービス有効化プロセスは、マネージドクラウドサービスまたはサードパーティベンダーからの AWS アカウント識別子の承認をサポートしていません。

このユースケースの AWS アカウント識別子を承認するには、ベンダーから AWS アカウント識別子を取得し、 Snowflakeサポート にご連絡ください。

Snowflakeアカウントで AWS PrivateLink を有効にするには、次のステップを実行します。

  1. コマンドライン環境で、次の AWS CLI STS コマンドを実行し、出力を保存します。出力は、次のステップで federated_token 引数の値として使用されます。

    aws sts get-federation-token --name sam
    

    get-federation-token には、IDと AWS のアクセス管理ユーザーか、 AWS アカウントルートユーザーが必要です。詳細については、 AWS ドキュメント をご参照ください。

    "FederatedUserId" 値の12桁の数字を抽出します(切り捨て)。たとえば、トークンに次が含まれている場合、

    {
       ...
       "FederatedUser": {
           "FederatedUserId": "185...:sam",
           "Arn": "arn:aws:sts::185...:federated-user/sam"
       },
       "PackedPolicySize": 0
     }
    

    185... を抽出します。この12桁の数字は、次のステップにある aws_id の値になります。

  2. Snowflakeアカウント管理者(つまり、 ACCOUNTADMIN システムロールを持つユーザー)として、 SYSTEM$AUTHORIZE_PRIVATELINK 関数を呼び出して、Snowflakeアカウントの AWS PrivateLink を承認(つまり、有効化)します。

    select SYSTEM$AUTHORIZE_PRIVATELINK ( '<aws_id>' , '<federated_token>' );
    

    条件:

    • 'aws_id'

      Amazon Web Services(AWS)アカウントを文字列として一意に識別する12桁の識別子。

    • 'federated_token'

      フェデレーションユーザーのアクセス認証情報を文字列として含むフェデレーショントークン値。

    例:

    use role accountadmin;
    
    select SYSTEM$AUTHORIZE_PRIVATELINK (
        '185...',
        '{
           "Credentials": {
               "AccessKeyId": "ASI...",
               "SecretAccessKey": "enw...",
               "SessionToken": "Fwo...",
               "Expiration": "2021-01-07T19:06:23+00:00"
           },
           "FederatedUser": {
               "FederatedUserId": "185...:sam",
               "Arn": "arn:aws:sts::185...:federated-user/sam"
           },
           "PackedPolicySize": 0
        }'
      );
    

承認済みの構成を検証するには、 AWS のSnowflakeアカウントで SYSTEM$GET_PRIVATELINK 関数を呼び出します。この関数は、Snowflakeアカウントの承認に使用されたものと同じ引数値を 'aws_id' と 'federated_token' に使用します。

Snowflakeは、承認に成功すると Account is authorized for PrivateLink. を返します。

Snowflakeアカウントで AWS PrivateLink を 無効 にする必要がある場合は、 'aws-id' と 'federated_token' に同じ引数値を使用して、 SYSTEM$REVOKE_PRIVATELINK 関数を呼び出します。

重要

federated_token は12時間後に期限切れになります。

Snowflakeアカウントによる AWS PrivateLink の使用を承認、検証、または無効化するためのシステム関数を呼び出す際にトークンが無効な場合は、このセクションにある手順の最初に示されている AWS CLI STS コマンドを使用してトークンを再生成します。

AWS VPC 環境の構成¶

注意

このセクションでは、 VPC 環境を設定するためのSnowflake固有の詳細のみを説明します。

また、必要な AWS VPC のエンドポイント、セキュリティグループルール、および DNS レコードの実際の構成に対し、Snowflakeは責任を 負いません 。これらの構成タスクのいずれかで問題が発生した場合は、 AWS サポートに直接お問い合わせください。

ステップ1: VPC エンドポイント(VPCE)を作成および構成する¶

VPC エンドポイントを作成および構成するには、次のステップを実行します。AWS VPC 環境で、

  1. Snowflakeアカウント管理者(つまり、 ACCOUNTADMIN システムロールを持つユーザー)として、 SYSTEM$GET_PRIVATELINK_CONFIG 関数を呼び出し、 privatelink-vpce-id 値を記録します。

  2. AWS 環境で、前のステップの privatelink-vpce-id 値を使用して VPC エンドポイントを作成します。

  3. AWS 環境で、Snowflakeの送信接続を VPCE CIDR (クラスレスドメイン間ルーティング)のポート 443 および 80 に接続する、サービスのセキュリティグループを承認します。

詳細については、AWS のドキュメントをご参照ください。

  • VPCs とサブネットの操作

  • VPC エンドポイント

  • VPC エンドポイントサービス(AWS PrivateLink)

  • VPC のセキュリティグループ

ステップ2: VPC ネットワークを構成する¶

AWS PrivateLink エンドポイントを介してSnowflakeにアクセスするには、 DNS に CNAME 記録を作成して、 SYSTEM$GET_PRIVATELINK_CONFIG 関数からのエンドポイント値を VPC エンドポイントの DNS 名に解決する必要があります。

これらのエンドポイント値により、Snowflake、 Snowsight、および Snowflake Marketplace にアクセスするのと同時に、 OCSP を使用して、Snowflakeクライアントが HTTPS および 接続 URLs を介してエンドポイントへの接続を試みる際に、証明書が取り消されていないかどうかを確認できるようになります。

取得する関数値は次のとおりです。

  • privatelink-account-url

  • privatelink-connection-urls

  • privatelink-ocsp-url

  • regionless-snowsight-privatelink-url

  • snowsight-privatelink-url

regionless-snowsight-privatelink-url と snowsight-privatelink-url の値により、プライベート接続を使用して Snowsight と Snowflake Marketplace にアクセスできることに注意してください。ただし、 URL リダイレクトを有効にする場合は、追加の構成があります。

詳細については、 Snowsightおよびプライベート接続 をご参照ください。

DNS 構成の詳細については、内部の AWS 管理者にお問い合わせください。

重要

OCSPキャッシュサーバーのホスト名の構造は、 Snowflakeクライアントの構成 (このトピック内)のステップ1で説明されているように、インストールされているクライアントのバージョンによって異なります。

  • リストにあるバージョン(またはそれ以上)を使用している場合は、上記のフォームを使用します。これにより、同じ地域に複数のSnowflakeアカウント(例: 開発、テスト、運用)がある場合に DNS の解決度が向上します。クライアントドライバーを更新して OCSP を PrivateLink で使用する場合は、ファイアウォールルールを更新して OCSP ホスト名を許可します。

  • 古いクライアントバージョンを使用している場合、 OCSP キャッシュサーバーのホスト名は ocsp.<リージョンID>.privatelink.snowflakecomputing.com (つまり、 アカウント識別子 なし)の形式を取ります。

  • また、 DNS 記録は、使用する VPC 内のプライベート IP アドレスで解決する必要があります。パブリック IP アドレスに解決される場合は、記録が正しく構成されていません。

ステップ3: Amazon S3用 AWS VPC インターフェイスエンドポイントを作成する¶

このステップは、SnowflakeクライアントからのAmazon S3トラフィックが AWS バックボーンにとどまるために必要です。Snowflakeクライアント(例: SnowSQL、 JDBC ドライバー)は、さまざまなランタイム操作を実行するために、Amazon S3へのアクセスを必要とします。

AWS VPC ネットワークがパブリックインターネットへのアクセスを許可しない場合は、内部ステージへのプライベート接続を構成するか、Snowflakeクライアントに必要なAmazon S3ホスト名に、より多くのゲートウェイエンドポイントを構成する必要があります。

全体として、Amazon S3へのアクセスを設定するための3つのオプションがあります。最初の2つのオプションはパブリックインターネットを回避し、3番目のオプションは回避しません。

  1. 内部ステージ の AWS VPC インターフェイスエンドポイントを構成します。このオプションをお勧めします。

  2. Amazon S3ゲートウェイエンドポイントを設定します。詳細については、以下の注意をご参照ください。

  3. インターフェイスエンドポイントまたはゲートウェイエンドポイントを構成しないでください。これにより、パブリックインターネットを使用したアクセスが可能になります。

注意

Amazon S3バケットとSnowflakeを使用する AWS VPC の間の通信においてパブリックインターネットの使用を防止するには、Amazon S3ゲートウェイエンドポイントをAmazon S3バケットの AWS リージョンと同一の設定にします。この理由は、 AWS PrivateLink では VPCs 間での通信のみを許可し、Amazon S3バケットは VPC に含まれないためです。

Amazon S3ゲートウェイエンドポイントを構成して、特定のユーザー、S3リソース、ルート、およびサブネットへのアクセスを制限できますが、Snowflakeではこの構成を必要としません。詳細については、 Amazon S3用エンドポイント をご参照ください。

Amazon S3ゲートウェイエンドポイントポリシーを構成して、SnowflakeにAmazon S3リソースのみを使用するよう明確に制限するには、次のオプションのいずれかを選択します。

  • Snowflakeアカウントで使用される特定のAmazon S3ホスト名アドレスを使用します。アカウントで使用されるホスト名の包括的なリストについては、 SYSTEM$ALLOWLIST をご参照ください。

  • Snowflake S3ホスト名に一致するAmazon S3ホスト名パターンを使用します。このシナリオでは、Snowflakeへの接続には、 VPC ツー VPC または オンプレミスツー VPC の2種類の接続があります。

    接続タイプに基づいて、次の点に注意します。

    VPC ツー VPC

    Amazon S3ゲートウェイエンドポイントが存在することを確認します。オプションで、S3ゲートウェイエンドポイントポリシーを変更して、 Amazon S3ホスト名 テーブルに示されている特定のホスト名パターンに一致させます。

    オンプレミスツー VPC

    Amazon S3トラフィックがパブリックゲートウェイで許可されて いない ときは、ファイアウォールまたはプロキシ構成にS3ホスト名パターンを含めるように設定を定義します。

アカウントのSnowflakeが管理するS3バケットに固有である必要がない場合に、ゲートウェイエンドポイントを作成できるAmazon S3ホスト名パターンを次のテーブルに示します。

Amazon S3ホスト名

メモ

すべての地域

sfc-*-stage.s3.amazonaws.com:443

US 東部以外のすべての地域

sfc-*-stage.s3-<地域ID>.amazonaws.com:443

パターンは、地域 ID の前にハイフン(-)を使用します。

sfc-*-stage.s3.<地域ID>.amazonaws.com:443

パターンは、地域 ID の前にピリオド(.)を使用します。

ゲートウェイエンドポイントの作成の詳細については、 ゲートウェイ VPC エンドポイント をご参照ください。

Snowflakeに接続する¶

Snowflakeに接続する前に、 オプションで SnowCD (Snowflake Connectivity Diagnostic Tool)を活用して、Snowflakeおよび AWS PrivateLink とのネットワーク接続を評価できます。

詳細については、 SnowCD および SYSTEM$ALLOWLIST_PRIVATELINK をご参照ください。

それ以外の場合は、プライベート接続アカウント URL を使用してSnowflakeに接続します。

AWS PrivateLink を介してSnowsightに接続する場合は、 Snowsightドキュメント の手順に従います。

パブリックアクセスのブロック --- オプション¶

AWS PrivateLink を使用してSnowflakeへのプライベート接続をテストした後、 オプションで Snowflakeへのパブリックアクセスをブロックできます。つまり、ユーザーは、接続リクエストがSnowflakeネットワークポリシーで指定された特定の CIDR ブロック範囲内の IP アドレスから発信された場合にのみSnowflakeにアクセスできます。

ネットワークポリシーを使用してパブリックアクセスをブロックするには、

  1. 新しいネットワークポリシーを作成するか、既存のネットワークポリシーを編集します。組織の CIDR ブロック範囲を追加します。

  2. アカウントのネットワークポリシーをアクティブにします。

詳細については、 ネットワークポリシー をご参照ください。

Snowflakeクライアントの構成¶

ステップ1:Snowflakeクライアントが OCSP キャッシュサーバーをサポートしていることを確認する¶

Snowflake OCSP キャッシュサーバーは、Snowflakeクライアントとサーバー間の接続の問題を軽減します。インストール済みのSnowflakeクライアントが OCSP サーバーキャッシュを利用できるようにするには、次のクライアントバージョンを使用していることを確認してください。

  • SnowSQL 1.1.57 (またはそれ以上)

  • Pythonコネクタ 1.8.2(またはそれ以上)

  • JDBC ドライバー3.8.3(またはそれ以上)

  • ODBC ドライバー2.19.3(またはそれ以上)

注釈

Snowflake OCSP キャッシュサーバーは、ポート 80 をリッスンします。 ステップ1: VPC エンドポイント(VPCE)を作成および構成する で、 AWS PrivateLink VPCE セキュリティグループを構成し、このポートとあわせてポート 443 (他のすべてのSnowflakeトラフィックに必要)を受け入れるようにしたのはこのためです。

ステップ2:Snowflakeクライアントのホスト名を指定する¶

各Snowflakeクライアントには、Snowflakeアカウントに接続するためのホスト名が必要です。

ホスト名は、 ステップ2: VPC ネットワークの構成 の CNAME レコードで指定したホスト名と同じです。

このステップは、 Snowflake Marketplace へのアクセスには適用されません。

たとえば、 xy12345 という名前のアカウントの場合、

  • アカウントが US 西部にある場合、ホスト名は xy12345.us-west-2.privatelink.snowflakecomputing.com です。

  • アカウントが EU (フランクフルト)にある場合、ホスト名は xy12345.eu-central-1.privatelink.snowflakecomputing.com です。

重要

ホスト名を指定する方法は、クライアントによって異なります。

  • Sparkコネクタと ODBC および JDBC ドライバーについては、ホスト名全体を指定します。

  • 他のすべてのクライアントについては、ホスト名全体を指定 しません。

    代わりに、 アカウント識別子 を privatelink セグメント(つまり、 <アカウント識別子>.privatelink)で指定します。これは、Snowflakeが snowflakecomputing.com と連結してホスト名を動的に構築します。

Snowflakeクライアントのアカウント名またはホスト名の指定の詳細については、各クライアントのドキュメントをご参照ください。

AWS PrivateLink と SSO の併用¶

Snowflakeは、AWS PrivateLinkでSSOの使用をサポートしています。詳細については、次をご参照ください。

  • プライベート接続でのSSO

  • OAuth およびプライベート接続

AWS PrivateLink でのクライアントリダイレクトの使用¶

Snowflakeは、 AWS PrivateLink でのクライアントリダイレクトの使用をサポートしています。

詳細については、 クライアント接続のリダイレクト をご参照ください。

トラブルシューティング¶

次のSnowflakeコミュニティの記事に注意してください。

  • PrivateLink セルフサービス用に AWS からフェデレーショントークンを取得する方法

  • FAQ: AWS を使用した PrivateLink セルフサービス

  • トラブルシューティング: AWS PrivateLink 用Snowflakeセルフサービス関数

このページは役に立ちましたか?

Snowflakeに移動する
問題がありますか? サポートを要請する
コミュニティでの会話にご参加ください
ブログでの最新情報を表示する
Snowflakeで開発する
Snowflake認定を取得する
プライバシー通知サイト規約© 2023 Snowflake, Inc. All Rights Reserved.
  1. AWS PrivateLink とは
  2. AWS PrivateLink の有効化
  3. AWS VPC 環境の構成
  4. Snowflakeに接続する
  5. パブリックアクセスのブロック --- オプション
  6. Snowflakeクライアントの構成
  7. AWS PrivateLink と SSO の併用
  8. AWS PrivateLink でのクライアントリダイレクトの使用
  9. トラブルシューティング
言語: 日本語
English
Français
Deutsch
日本語
한국어
Português