ネットワークポリシーを使用したネットワークトラフィックの制御

SQL を使用したネットワークポリシーとネットワークルールの操作は一般公開されています。

注釈

ネットワークルールの導入以前に存在していたネットワークポリシーは、 Snowsight では変更できなくなりました。代わりに ALTER NETWORK POLICY コマンドを使用してください。

ネットワークポリシーを使用して、Snowflakeサービスおよび内部ステージへの インバウンド アクセスを制御できます。

Snowflakeから外部ネットワーク宛先への アウトバウンド トラフィックを制御する場合は、 外部ネットワークアクセスの概要 をご参照ください。

ネットワークポリシーについて

デフォルトでは、Snowflakeはユーザーが任意のコンピューターまたはデバイスからサービスおよび内部ステージに接続できるようにします。セキュリティ管理者(またはそれ以上)は、ネットワークポリシーを使って、リクエストの発信元に基づいてアクセスを許可または拒否できます。ネットワークポリシーの 許可リスト は、Snowflakeサービスまたは内部ステージへのアクセスを許可するリクエストを制御し、 ブロックリスト は、明示的にブロックするリクエストを制御します。

ネットワークポリシーが、許可リストやブロックリストにネットワーク識別子を直接指定することはありません。むしろ、ネットワークポリシーにより、許可リストとブロックリストに ネットワークルール が追加されます。これらのネットワークルールは、関連する識別子を論理ユニットにグループ化し、ネットワークポリシーの許可リストとブロックリストに追加します。

重要

ネットワークルールの導入以前に存在したネットワークポリシーは、まだ機能します。ただし、すべての新しいネットワークポリシーは、 ALLOWED_IP_LIST および BLOCKED_IP_LIST パラメーターではなく、ネットワークルールを使用して、 IP アドレスからのアクセスを制御する必要があります。ベストプラクティスは、同じネットワークポリシーで両方のアクセス制限方法を使用しないことです。

ワークフロー

ネットワークポリシーを使用して、インバウンドネットワークトラフィックを制御する一般的なワークフローは次のとおりです。

  1. 目的とネットワーク識別子のタイプに基づいて、 ネットワークルールを作成 します。

  2. 許可またはブロックする識別子を含むネットワークルールを含む、 1つまたは複数のネットワークポリシーを作成 します。

  3. アカウント、ユーザー、またはセキュリティ統合のネットワークポリシーをアクティブ化します。ネットワークポリシーは、有効になるまでネットワークトラフィックを制限しません。

許可リストとブロックリストの相互作用

ネットワークルールをネットワークポリシーの許可リストに追加する場合は、ブロックリストを使用して同じタイプの他の識別子を明示的にブロックする必要はありません。許可された識別子のみがアクセスできます。ただし、異なるタイプの識別子が自動的にブロックされるわけではありません。たとえば、 IPV4 ネットワークルールの許可リストに IP アドレスを1つだけ追加すると、他の IPv4 アドレスはすべてブロックされます。ブロックリストを使用して、他の IP アドレスからのアクセスを制限する必要はありません。ただし、追加のネットワークルールがネットワークポリシーに追加されない限り、 VPC エンドポイントはアクセス可能なままとなります。

例として、Azure LinkIDs や AWS VPCE IDs のようなプライベートエンドポイント識別子を使用してアクセスを制限するネットワークルールは、パブリックネットワークからのリクエストには影響しません。プライベートエンドポイント識別子に基づいてアクセスを制限し、パブリック IPv4 アドレスからのリクエストを完全にブロックする場合は、許可リスト用とブロックリスト用の2つの別々のネットワークルールを作成する必要があります。

以下のネットワークルールをネットワークポリシーで組み合わせて、パブリックネットワークトラフィックをブロックしながら、 VPCE ID を許可することができます。

CREATE NETWORK RULE block_public_access
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('0.0.0.0/0');

CREATE NETWORK RULE allow_vpceid_access
  MODE = INGRESS
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-0fa383eb170331202');

CREATE NETWORK POLICY allow_vpceid_block_public_policy
  ALLOWED_NETWORK_RULE_LIST = ('allow_vpceid_access')
  BLOCKED_NETWORK_RULE_LIST=('block_public_access');
Copy

IP 範囲

1つの IP アドレスを除いて、 IP アドレスの範囲を許可する場合、許可リスト用とブロックリスト用の2つのネットワークルールを作成できます。

たとえば、次の場合、 192.168.1.99 を除く、 192.168.1.0 から 192.168.1.255 の範囲にあるすべての IP アドレスからのリクエストが許可されます。範囲外の IP アドレスもブロックされます。

CREATE NETWORK RULE allow_access_rule
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('192.168.1.0/24');

CREATE NETWORK RULE block_access_rule
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('192.168.1.99');

CREATE NETWORK POLICY public_network_policy
  ALLOWED_NETWORK_RULE_LIST = ('allow_access_rule')
  BLOCKED_NETWORK_RULE_LIST=('block_access_rule');
Copy

ネットワークポリシーの優先順位

ネットワークポリシーは、アカウント、セキュリティ統合、またはユーザーに適用できます。複数のネットワークポリシーが適用されている場合、最も具体的なネットワークポリシーが、一般的なネットワークポリシーよりも優先されます。優先順位をまとめると次のようになります。

アカウント:

アカウントに適用されるネットワークポリシーは、最も一般的なネットワークポリシーです。これらのポリシーよりも、セキュリティ統合またはユーザーに適用されるネットワークポリシーが優先されます。

セキュリティ統合:

セキュリティ統合に適用されるネットワークポリシーは、アカウントに適用されるネットワークポリシーよりも優先されますが、ユーザーに適用されるネットワークポリシーのほうが優先されます。

ユーザー:

ユーザーに適用されるネットワークポリシーは、最も具体的なネットワークポリシーです。これらのポリシーは、アカウントとセキュリティ統合の両方よりも優先されます。

ネットワークポリシーのバイパス

DESCRIBE USER を実行して表示できるユーザーオブジェクトプロパティ MINS_TO_BYPASS_NETWORK_POLICY を構成することにより、設定された分数の間ネットワークポリシーを一時的にバイパスすることが可能です。このオブジェクトプロパティの値を設定できるのはSnowflakeだけです。このプロパティの値を設定するには、 Snowflakeサポート に連絡してください。

ネットワークルールについて

Snowflakeへの受信リクエストの制限は、最終的にネットワークポリシーでアカウント、ユーザー、セキュリティ統合に適用されますが、管理者はスキーマレベルのオブジェクトである ネットワークルール を使用して、これらの制限を整理できます。

各ネットワークルールは、特定のタイプのリクエスト元の識別子をグループ化します。たとえば、あるネットワークルールには、Snowflakeへのアクセスを許可するすべての IPv4 アドレスを含めることができ、別のネットワークルールには、ブロックするすべてのプライベートエンドポイントをグループ化できます。

しかしながら、ネットワークルールは、リクエストの発信元を許可するかブロックするかを指定しません。ネットワークルールは、単に関連するオリジンを論理的な単位に整理したものです。管理者が、ネットワークポリシーを作成または変更するときに、そのユニットを許可するかブロックするかを指定します。

ネットワークルールをネットワークポリシーで使用する戦略をすでに理解している場合は、 ネットワークルールの操作 をご参照ください。

ベストプラクティス

  • 範囲を限定します。ネットワークルールは、関連するネットワーク識別子の小さな単位をグループ化するように設計されています。以前は、ネットワークポリシーには、許可またはブロックする必要がある IP アドレスの大規模で単一的なリストが含まれていることがよくありました。ネットワークルールの導入により、この戦略は変わります。たとえば、ネットワーク識別子を次のように分割できます。

    • 北米地域のクライアント IP アドレスを含むネットワークルールを作成し、ヨーロッパおよび中東地域には別のルールを作成します。

    • 高度な権限を持つユーザーやサービスアカウントのユーザーなど、特別なユーザーのアクセスを許可することを目的としたネットワークルールを作成します。このネットワークルールは、個々のユーザーに適用されるネットワークポリシーに追加できます。

    • 1つまたは複数のデータアプリにスコープされるネットワークルールを作成します。

    ネットワークルールの導入に伴い、Snowflakeではネットワークポリシーの範囲も制限することを推奨しています。可能な限り、ネットワークポリシーの適用範囲を、アカウント全体ではなくユーザーグループまたはセキュリティ統合に絞り込みます。

  • コメントを追加。ネットワークルールを作成するときは、 COMMENT プロパティを使用して、ルールの目的を追跡します。Snowflakeでは、少数のモノリシックなルールよりも、多数の小さなターゲットを絞ったルールが推奨されているため、コメントは重要です。

    SHOW NETWORK RULES コマンドを使用すると、コメントも含めてすべてのネットワークルールをリストできます。

サポートされている識別子

各ネットワークルールには、同じタイプの1つまたは複数のネットワーク識別子のリストが含まれます(IPv4 アドレスルールやプライベートエンドポイントルールなど)。

ネットワークルールの TYPE プロパティは、ネットワークルールに含まれる識別子のタイプを識別します。

ネットワークルールを使用して制限できる識別子のタイプの完全なリストについては、 サポートされているネットワーク識別子 をご参照ください。

Snowflakeサービスの保護

このセクションでは、ネットワークルールを使用してSnowflakeサービスのみにアクセスを制限する方法について説明します。AWS でアカウントのサービスと内部ステージの両方へのアクセスを制限する場合は、 AWS の内部ステージの保護 をご参照ください。

Snowflakeサービスへのアクセスを制限するには、ネットワークルールの MODE プロパティを INGRESS に設定します。

次に、 TYPE プロパティを使用して、許可またはブロックする 識別子 を指定できます。

AWS の内部ステージの保護

このセクションでは、ネットワークルールを使用して、 AWS の内部ステージへのアクセスを制限する方法(Snowflakeサービスと内部ステージへのアクセスを同時に制限する方法など)について説明します。説明には次が含まれます。

注釈

ネットワークルールを使用して、Microsoft Azureの内部ステージへのアクセスを制限することはできません。ただし、 Azure Private Link を使用している場合は、Azureの内部ステージへのパブリックアクセスすべてをブロックできます。詳細については、 パブリックアクセスのブロック(オプション) をご参照ください。

制限事項

  • セキュリティ統合のために有効化されたネットワークポリシーは、内部ステージへのアクセスを制限しません。

  • GET_PRESIGNED_URL 関数で生成された URL を使用して内部ステージにアクセスするリクエストには、ネットワークルールの制限は適用されません。

前提条件: 内部ステージの制限の有効化

ネットワークルールを使用してアカウントの内部ステージへのアクセスを制限するには、アカウント管理者が ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES パラメーターを有効にする必要があります。ネットワークルールは、ルールのモードに関係なく、このパラメーターが有効になるまで内部ステージを保護しません。

ネットワークルールで内部ステージングへのアクセスを制限できるようにするには、次を実行します。

USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES = true;
Copy

内部ステージのガイドライン

ネットワークルールの ベストプラクティス に加えて、内部ステージへのアクセスを制限するネットワークルールを作成する場合は、次のガイドラインを遵守する必要があります。

  • 識別子の数を制限します。AWS S3セッションポリシーによる制限のため、内部ステージを保護する戦略は次の制限に準拠する必要があります。

    • IPv4 アドレスを含むネットワークルールには、 1つのルールにつき15 IP を超えるアドレス範囲 を含めることはできません。アドレス範囲が15を超える場合は、追加のネットワークルールを作成します。

    • VPC エンドポイントの VPCE IDs に基づいてトラフィックを許可またはブロックする場合、 ネットワークポリシーごとの累積制限は 10 VPCE IDs です。たとえば、あるネットワークルールに5 VPCE IDs が含まれ、別のネットワークルールに6 VPCE IDs が含まれる場合、両方のルールを同じネットワークポリシーに追加することはできません。

    AWS STS からスコープされた認証情報をフェッチするときに PolicySizeExceeded 例外が発生した場合は、ネットワーク識別子をより小さなネットワークルールに分割します。

  • サービスステージと内部ステージの両方を保護するために、同じルールを使用します。ルールに IPv4 アドレスが含まれ、ネットワークルールのモードが INGRESS の場合、1つのルールでSnowflakeサービスとアカウントの内部ステージの両方を保護できます。Snowflakeでは、サービスにアクセスする IP アドレスと内部ステージにアクセスする IP アドレスが異なる場合でも、1つのルールを使用することを推奨しています。このアプローチにより、組織、管理性、監査が改善されます。

  • ネットワークポリシーをテストします。Snowflakeでは、ユーザーレベルのネットワークポリシーを使用して、ネットワークルールをテストすることを推奨しています。AWS STS からスコープされた認証情報をフェッチするときに PolicySizeExceeded 例外が発生した場合は、ネットワーク識別子をより小さなネットワークルールに分割します。

内部ステージのみを保護する戦略

ネットワークトラフィックがSnowflakeサービスにアクセスする方法に影響を与えずに AWS 内部ステージへのアクセスを制限するには、次の設定でネットワークルールを作成します。

  • MODE パラメーターを INTERNAL_STAGE に設定します。

  • TYPE パラメーターを AWSVPCEID に設定します。

注釈

Snowflakeサービスへのアクセスを制限することなく、リクエストの IP アドレスに基づいて内部ステージへのアクセスを制限することはできません。

サービスと社内ステージの両方を保護する戦略

Snowflakeサービスと内部ステージの両方へのアクセスを制限する場合、ネットワークトラフィックがパブリックインターネットを通過するか、 AWS Private Linkを通過するかに応じて実装戦略が異なります。

次の比較では、「パブリック」はサービスまたは内部ステージへのトラフィックがパブリックインターネットを通過していることを示し、「プライベート」はトラフィックが AWS Private Linkを使用していることを示します。自分の環境に合った組み合わせを見つけ、それに応じて実装戦略を選択します。

サービス接続

内部ステージ接続

実装戦略

パブリック

パブリック

TYPE=IPV4 および MODE=INGRESS で1つのネットワークルールを作成します。サービスおよび内部ステージにアクセスするすべての IP アドレスを含めます。

プライベート

プライベート

プライベートな IP アドレスを使用してアクセスを制限するか、 VPC エンドポイントの VPCE ID を使用してアクセスを制限するかに応じて、戦略は異なります。

  • (推奨) VPCE IDs を使用する場合は、同じ VPC エンドポイントがサービスおよび内部ステージの両方に接続する場合でも、2つのネットワークルールを作成する必要があります。

    • サービスでは、 TYPE=AWSVPCEID および MODE=INGRESS でネットワークルールを作成します。

    • 内部ステージでは、 TYPE=AWSVPCEID および MODE=INTERNAL_STAGE でネットワークルールを作成します。

  • プライベート IP アドレスを使用する場合、 TYPE=IPV4 および MODE=INGRESS でネットワークルールを作成します。サービスおよび内部ステージにアクセスするすべてのプライベート IP アドレスを含めます。

パブリック [1]

プライベート

プライベートな IP アドレスを使用して内部ステージへのアクセスを制限するか、 VPC エンドポイントの VPCE ID を使用するかに応じて、戦略は異なります。

  • (推奨) VPCE IDs を使用する場合、サービスと内部ステージ用の2つのネットワークルールを作成します。

    • サービスでは、 TYPE=IPV4 および MODE=INGRESS でネットワークルールを作成します。

    • 内部ステージでは、 TYPE=AWSVPCEID および MODE=INTERNAL_STAGE でネットワークルールを作成します。

  • プライベート IP アドレスを使用する場合、 TYPE=IPV4 および MODE=INGRESS で1つのネットワークルールを作成します。サービスおよび内部ステージにアクセスするすべての IP アドレスを含めます。

プライベート

パブリック [1]

サービスにはプライベート IPs を使用する必要があります(VPCE IDs は使用できません)。 TYPE=IPV4 および MODE=INGRESS で1つのネットワークルールを作成します。サービスおよび内部ステージにアクセスするすべての IP アドレスを含めます。

ネットワークルールの操作

ネットワークルールのライフサイクル管理には、 Snowsight または SQL を使用できます。

ネットワークルールの作成

ネットワークルールを作成するには、スキーマの CREATE NETWORK RULE 権限が必要です。デフォルトでは、 ACCOUNTADMIN と SECURITYADMIN のロールとスキーマ所有者のみがこの権限を持ちます。

ネットワークポリシーで使用されるネットワークルールのモードは、 INGRESS または INTERNAL STAGE である必要があります。

ネットワークルールを作成するためのベストプラクティスと戦略について理解を深めるには、 ネットワークルールについて をご参照ください。

ネットワークルールを作成するには、 Snowsight を使用するか、 SQL コマンドを実行します。

Snowsight:
  1. Snowsight にサインインします。

  2. Admin » Security を選択します。

  3. Network Rules タブを選択します。

  4. + Network Rule を選択します。

  5. ネットワークルールの名前を入力します。

  6. ネットワークルールのスキーマを選択します。ネットワークルールはスキーマレベルのオブジェクトです。

  7. 必要に応じて、ネットワークルールに説明的なコメントを追加して、スキーマ内のネットワークルールの整理と管理に役立てます。

  8. Type ドロップダウンで、ネットワークルールで定義されている 識別子のタイプ を選択します。 Host Port タイプは、ネットワークポリシーで使用されるネットワークルールの有効なオプションではありません。

  9. Mode ドロップダウンで、 Ingress または Internal Stage を選択します。 Egress モードは、ネットワークポリシーで使用されるネットワークルールの有効なオプションではありません。

  10. ネットワークルールがネットワークポリシーに追加されたときに、許可またはブロックされる識別子をカンマ区切りで入力します。このリストの識別子はすべて、 Type ドロップダウンで指定されたタイプである必要があります。

  11. Create Network Policy を選択します。

SQL:

管理者は CREATE NETWORK RULE コマンドを実行して新しいネットワークルールを作成し、ネットワーク識別子のリストとその識別子のタイプを指定できます。

たとえば、カスタムロールを使用して、 IP アドレスの範囲からのトラフィックを許可またはブロックするために使用できるネットワークルールを作成します。

GRANT USAGE ON DATABASE securitydb TO ROLE network_admin;
GRANT USAGE ON SCHEMA securitydb.myrules TO ROLE network_admin;
GRANT CREATE NETWORK RULE ON SCHEMA securitydb.myrules TO ROLE network_admin;
USE ROLE network_admin;

CREATE NETWORK RULE cloud_network TYPE = IPV4 VALUE_LIST = ('47.88.25.32/27');
Copy

ネットワークルールの変更

既存のネットワークルールの識別子とコメントは変更できますが、タイプ、モード、名前、スキーマは変更できません。

Snowsight または SQL を使用して、既存のネットワークルールに識別子やコメントを追加または削除できます。

Snowsight:
  1. Snowsight にサインインします。

  2. Admin » Security を選択します。

  3. Network Rules タブを選択します。

  4. ネットワークルールを見つけ、 ... ボタン、 Edit の順に選択します。

  5. カンマ区切りの識別子のリストまたはコメントを変更します。

  6. Update Network Rule を選択します。

SQL:

ALTER NETWORK RULE ステートメントを実行します。

ネットワークポリシーの操作

ネットワーク識別子をネットワークルールにグループ化したら、それらのネットワークルールを新規または既存のネットワークポリシーの許可リストとブロックリストに追加する準備が整います。ネットワークポリシーに追加できるネットワークルールの数に制限はありません。

ネットワークポリシーがSnowflakeサービスおよび内部ステージへのインバウンドアクセスを制御する方法の一般的な情報については、 ネットワークポリシーについて をご参照ください。

ネットワークポリシーの作成

ネットワークポリシーを作成できるのは、セキュリティ管理者(つまり、 SECURITYADMIN ロールを持つユーザー)以上、 または CREATE NETWORK POLICY グローバル権限のあるロールのみです。ネットワークポリシーの所有権は、別のロールに譲渡できます。

Snowsight または SQL を使用して、ネットワークポリシーを作成できます。

Snowsight:
  1. Snowsight にサインインします。

  2. Admin » Security を選択します。

  3. Network Policies タブを選択します。

  4. + Network Policy を選択します。

  5. ネットワークポリシーの名前を入力します。

  6. 必要に応じて、説明的なコメントを入力します。

  7. 許可リストにネットワークルールを追加するには、 AllowedSelect rule の順に選択します。 Select rule を再選択することで、複数のネットワークルールを許可リストに追加できます。

  8. ブロックリストにネットワークルールを追加するには、 BlockedSelect rule の順に選択します。 Select rule を再選択することで、複数のネットワークルールをブロックリストに追加できます。

  9. Create Network Policy を選択します。

SQL:

CREATE NETWORK POLICY ステートメントを実行します。

アカウント内のネットワークポリシーの識別

Snowsight または SQL を使用して、アカウント内のネットワークポリシーを識別できます。

Snowsight:
  1. Snowsight にサインインします。

  2. Admin » Security を選択します。

  3. Network Policies タブを選択します。

SQL:

POLICY_REFERENCES Information Schemaテーブル関数を呼び出すか、 POLICY_REFERENCES または NETWORK_POLICIES Account Usageビューをクエリします。

ネットワークポリシーの変更

Snowsight または SQL を使用して、既存のネットワークポリシーの許可リストとブロックリストにネットワークルールを追加または削除できます。ネットワークルールの代わりに ALLOWED_IP_LIST および BLOCKED_IP_LIST パラメーターを使用するネットワークポリシーを編集する場合は、 SQL を使用してネットワークポリシーを変更する必要があります。

Snowsight:
  1. Snowsight にサインインします。

  2. Admin » Security を選択します。

  3. Network Policies タブを選択します。

  4. ネットワークポリシーを見つけ、 ... ボタン、 Edit の順に選択します。

  5. 許可リストにネットワークルールを追加するには、 AllowedSelect rule の順に選択します。 Select rule を再選択することで、複数のネットワークルールを許可リストに追加できます。

  6. ブロックリストにネットワークルールを追加するには、 BlockedSelect rule の順に選択します。 Select rule を再選択することで、複数のネットワークルールをブロックリストに追加できます。

  7. ネットワークポリシーの許可リストまたはブロックリストからネットワークルールを削除するには、次を実行します。

    1. Allowed または Blocked を選択します。

    2. リストからネットワークルールを探し、 X を選択して削除します。

SQL:

既存のネットワークポリシーにネットワークルールを追加または削除するには、 ALTER NETWORK POLICY コマンドを使用します。

ネットワークルールを許可リストまたはブロックリストに追加する場合、リスト内の既存のネットワークルールをすべて置き換えることも、既存のリストを維持したまま新しいルールを追加することもできます。次の例は、これらの各オプションを示しています。

  • SET 句を使用して、ブロックリストのネットワークルールを other_network という名前の新しいネットワークルールに置き換えます。

    ALTER NETWORK POLICY my_policy SET BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
    
    Copy
  • ADD 句を使用して、既存のネットワークポリシーの許可リストに、1つのネットワークルールを追加します。以前にポリシーの許可リストに追加されたネットワークルールは、引き続き有効です。

    ALTER NETWORK POLICY my_policy ADD ALLOWED_NETWORK_RULE_LIST = ( 'new_rule' );
    
    Copy

リスト全体を置き換えることなく、既存のリストからネットワークルールを削除することもできます。ネットワークポリシーのブロックリストからネットワークルールを削除する例は、次のようになります。

ALTER NETWORK POLICY my_policy REMOVE BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
Copy

ネットワークポリシーのアクティブ化

ネットワークルールは、アカウント、ユーザー、またはセキュリティ統合に対してアクティブ化されるまでは、インバウンドネットワークトラフィックを制限しません。各レベルにおけるアクティブ化の方法については、次をご参照ください。

異なるレベルで複数のネットワークポリシー(例: アカウントレベルとユーザーレベルの両方のネットワークポリシー)をアクティブ化する場合は、 ネットワークポリシーの優先順位 をご参照ください。

アカウントのネットワークポリシーのアクティブ化

アカウントのネットワークポリシーをアクティブ化すると、そのアカウントのすべてのユーザーに対してポリシーが適用されます。

アカウントでネットワークポリシーをアクティブ化できるのは、セキュリティ管理者(つまり、 SECURITYADMIN ロールを持つユーザー)以上、 または グローバル ATTACH POLICY 権限を持つロールのみです。

ポリシーがアカウントに関連付けられると、Snowflakeは許可リストとブロックリストに基づいて、アカウントへのアクセスを制限します。ルールによって制限されたネットワークオリジンからログインしようとするユーザーは、アクセスを拒否されます。さらに、ネットワークポリシーがアカウントに関連付けられている場合、既にSnowflakeにログインしている制限されたユーザーは、それ以上のクエリを実行できません。

複数のネットワークポリシーを作成できますが、アカウントに一度に関連付けられるネットワークポリシーは1つのみです。ネットワークポリシーをアカウントに関連付けると、現在関連付けられているネットワークポリシー(存在する場合)は自動的に削除されます。

現在の IP アドレスまたはプライベートエンドポイント識別子がポリシーの許可リストに含まれている必要があることに注意してください。それ以外の場合は、ポリシーをアクティブ化するとSnowflakeがエラーを返します。さらに、現在の識別子をブロックリストに含めることはできません。

新しいネットワークポリシーを有効にする前に、すでにアカウントレベルのネットワークポリシーがあるかどうかを確認する場合は、 アカウントまたはユーザーレベルで有効化されたネットワークポリシーの識別 をご参照ください。

Snowsight または SQL を使用して、アカウントのネットワークポリシーをアクティブ化できます。

Snowsight:
  1. Admin » Security を選択します。

  2. Network Policies タブを選択します。

  3. ネットワークポリシーを見つけ、 ... ボタン、 Activate の順に選択します。

  4. Activate policy を選択します。

SQL:

ALTER ACCOUNT ステートメントを実行して、アカウントの NETWORK_POLICY パラメーターを設定します。例:

ALTER ACCOUNT SET NETWORK_POLICY = my_policy;
Copy

個々のユーザーに対するネットワークポリシーのアクティブ化

Snowflakeアカウントの特定のユーザーにネットワークポリシーを適用するには、そのユーザーのネットワークポリシーをアクティブ化します。各ユーザーに対して一度にアクティブ化できるネットワークポリシーは1つのみです。ユーザーごとに異なるネットワークポリシーを有効にできるため、詳細な制御が可能です。ネットワークポリシーをユーザーに関連付けると、現在関連付けられているネットワークポリシー(存在する場合)は自動的に削除されます。

注釈

個々のユーザーのネットワークポリシーをアクティブにできるのは、ユーザー および ネットワークポリシーの両方に対する OWNERSHIP 権限を持つロールまたはそれ以上のロールのみです。

ポリシーがユーザーに関連付けられると、Snowflakeは許可リストとブロックリストに基づいて、ユーザーへのアクセスを制限します。有効化されたユーザーレベルのネットワークポリシーを持つユーザーが、ルールによって制限されているネットワークロケーションからログインしようとすると、そのユーザーはSnowflakeへのアクセスを拒否されます。

さらに、ユーザーレベルのネットワークポリシーがユーザーに関連付けられていて、ユーザーがすでにSnowflakeにログインしている場合、ユーザーのネットワークロケーションがユーザーレベルのネットワークポリシールールに一致しないと、Snowflakeはユーザーがそれ以上クエリを実行できないようにします。

新しいネットワークポリシーを有効にする前に、すでにユーザーレベルのネットワークポリシーがあるかどうかを確認する場合は、 アカウントまたはユーザーレベルで有効化されたネットワークポリシーの識別 をご参照ください。

個々のユーザーのネットワークポリシーをアクティブにするには、 ALTER USER コマンドを実行して、ユーザーの NETWORK_POLICY パラメーターを設定します。たとえば、次を実行します。

ALTER USER joe SET NETWORK_POLICY = my_policy;
Copy

セキュリティ統合のネットワークポリシーのアクティブ化

セキュリティ統合の中には、その統合によって管理されるネットワークトラフィックを制御するネットワークポリシーのアクティブ化をサポートしているものがあります。これらのセキュリティ統合には、統合のネットワークポリシーをアクティブ化する NETWORK_POLICY パラメーターがあります。現在、 SCIM とSnowflake OAuth は、統合レベルのネットワークポリシーをサポートしています。

注釈

セキュリティ統合のために有効化されたネットワークポリシーは、内部ステージへのアクセスを制限しません。

たとえば、新しいSnowflake OAuth セキュリティ統合を作成するときに、ネットワークポリシーをアクティブ化できます。ネットワークポリシーは、認証を試みるリクエストのアクセスを制限します。

CREATE SECURITY INTEGRATION oauth_kp_int
  TYPE = oauth
  ENABLED = true
  OAUTH_CLIENT = custom
  OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
  OAUTH_REDIRECT_URI = 'https://example.com'
  NETWORK_POLICY = mypolicy;
Copy

ALTER SECURITY INTEGRATION ... SET NETWORK_POLICY ステートメントを実行して、既存のセキュリティ統合のネットワークポリシーをアクティブ化できます。

アカウントまたはユーザーレベルで有効化されたネットワークポリシーの識別

アクティブ化されているネットワークポリシーは、アカウントレベルまたはユーザーレベルで識別できます。

アカウント:
  1. Admin » Security を選択します。

  2. Network Policies タブを選択します。

  3. アクティブなネットワークポリシーを表示するには、 Status 列を並べ替えます。これはアカウントレベルのポリシーです。

また、次を実行することで、アカウントレベルのネットワークポリシーを一覧表示することもできます。

SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT;
Copy
ユーザー:

ネットワークポリシーが特定のユーザーに設定されているかどうかを確認するには、 SHOW PARAMETERS コマンドを実行します。

SHOW PARAMETERS LIKE 'network_policy' IN USER <username>;
Copy

例:

SHOW PARAMETERS LIKE 'network_policy' IN USER jsmith;
Copy

ネットワークポリシーとネットワークルールでの複製の使用

Snowflakeは、ネットワークポリシーの割り当てを含め、ネットワークポリシーとネットワークルールの複製とフェールオーバー/フェールバックをサポートします。

詳細については、 複数のアカウントにわたるセキュリティ統合とネットワークポリシーの複製 をご参照ください。

Classic Console の使用

注釈

Classic Console の新機能はリリースされていません。Snowflakeでは、ネットワークルールをネットワークポリシーと組み合わせて使用できるように、 Snowsight または SQL を使用することをお勧めします。

Classic Console を使用したネットワークポリシーの作成

ネットワークポリシーを作成できるのは、セキュリティ管理者(つまり、 SECURITYADMIN ロールを持つユーザー)以上、 または CREATE NETWORK POLICY グローバル権限のあるロールのみです。ネットワークポリシーの所有権は、別のロールに譲渡できます。

  1. Account アカウントタブ » Policies をクリックします。 Policies ページが表示されます。

  2. Create ボタンをクリックします。 Create Network Policy ダイアログが表示されます。

  3. Name フィールドに、ネットワークポリシーの名前を入力します。

  4. Allowed IP Addresses フィールドに、このSnowflakeアカウントへのアクセスを許可する1つ以上の IPv4 アドレスをコンマで区切って入力します。

    注釈

    特定のアドレスセット 以外 のすべての IP アドレスをブロックするには、許可された IP アドレスリストのみを定義する必要があります。Snowflakeは、許可リストに含まれていないすべての IP アドレスを自動的にブロックします。

  5. Blocked IP Addresses フィールドに、オプションで、このSnowflakeアカウントへのアクセスを拒否される1つ以上の IPv4 アドレスをコンマで区切って入力します。このフィールドは必須ではなく、許可リストのアドレス範囲内にある特定のアドレスを拒否するために主に使用します。

    注意

    • ネットワークポリシーに許可されたIPアドレスとブロックされた IP アドレスリストの両方の値が含まれている場合、Snowflakeは最初に ブロックされた IP アドレスリストを適用します。

    • ブロックされた IP アドレスリストには、 0.0.0.0/0 を追加 しない でください。 0.0.0.0/0 は、「ローカルマシン上のすべての IPv4 アドレス」と解釈されます。Snowflakeはこのリストを最初に解決するため、これによりユーザー自身のアクセスがブロックされます。また、許可された IP アドレスリストにこの IP アドレスを含める必要はありません。

  6. 必要に応じて、ネットワークポリシーの他の情報を入力し、 Finish をクリックします。

Classic Console を使用したネットワークポリシーの変更

Classic Console を使用している場合、次の手順を実行してネットワークポリシーを変更します。

  1. Account アカウントタブ » Policies をクリックします。

  2. ポリシーをクリックして選択し、右側のサイドパネルに入力します。

  3. 右側のパネルの Edit ボタンをクリックします。

  4. 必要に応じてフィールドを変更します。

    • Allowed IP Addresses または Blocked IP Addresses リストから IP アドレスを削除するには、エントリの横にある x をクリックします。

    • いずれかのリストに IP アドレスを追加するには、適切なフィールドに1つ以上のコンマ区切りの IPv4 アドレスを入力し、 Add ボタンをクリックします。

  5. Save をクリックします。

Classic Console を使用したネットワークポリシーの有効化

Classic Console を使用している場合、アカウントのネットワークポリシーをアクティブ化することで、Snowflakeアカウント内のすべてのユーザーにネットワークポリシーを適用できます。

  1. Account アカウントタブ » Policies をクリックします。

  2. ポリシーをクリックして選択し、右側のサイドパネルに入力します。

  3. 右側のパネルの Activate ボタンをクリックします。