ネットワークポリシー

ネットワークポリシーは、Snowflakeサービスにネットワーク構成を管理するためのオプションを提供します。

現在、ネットワークポリシーでは、ユーザー IP アドレスに基づいてアカウントへのアクセスを制限できます。事実上、ネットワークポリシーを使用すると、 IP 許可リスト 、および必要に応じて IP 拒否リスト を作成できます。

アカウントレベルのネットワークポリシー管理は、ウェブインターフェイスまたは SQL を介して実行できます。

ユーザーレベルのネットワークポリシー管理は、 SQL を使用して形成できます。

ユーザーがアカウントレベルとユーザーレベルの両方のネットワークポリシーに関連付けられている場合は、ユーザーレベルのポリシーが優先されます。

このトピックの内容:

概要

デフォルトでは、Snowflakeはユーザーが任意のコンピューターまたはデバイス IP アドレスからサービスに接続できるようにします。セキュリティ管理者(またはそれ以上)は、単一のIPアドレスまたはアドレスのリストへのアクセスを許可または拒否するネットワークポリシーを作成できます。ネットワークポリシーは現在、インターネットプロトコルバージョン4(IPv4)アドレスのみをサポートしています。

重要

ウェブインターフェイスを使用してネットワークポリシーを作成または編集する場合は、 ネットワークポリシープロパティ を一重引用符で囲む必要はありません。ただし、SQLを使用する場合は、ネットワークポリシープロパティを一重引用符で囲む必要があります。

詳細については、 CREATE NETWORK POLICYALTER NETWORK POLICYALTER ACCOUNT、 および ALTER USER をご参照ください。

ネットワークポリシーのプロパティ

ネットワークポリシーは、次のプロパティで構成されます。

許可された IPs

(必須)

Snowflakeアカウントへのアクセスが許可されている IPv4 アドレスのリスト(オプションのサブネットを含む)。

このリストの最大文字数は100,000です。この文字制限を超えると、Snowflakeはエラーメッセージを返します。

ブロックされた IPs

(オプション)

Snowflakeアカウントへのアクセスを拒否されている IPv4 アドレスのリスト(オプションのサブネットを含む)。許可された IP リストに含まれていないアドレスは自動的にブロックされるため、このリストは不要です。ブロックされた IP リストは、主に許可された IP リスト内のアドレス範囲内の特定のアドレスを拒否するために使用されます。

両方のアドレスリストは、次の形式のコンマ区切りの文字列として表されます。

IPアドレス[/サブネット] , IPアドレス[/サブネット] , ...

ネットワークポリシーに指定できるプロパティの詳細については、 CREATE NETWORK POLICY をご参照ください。

CIDR表記

Snowflakeは、 クラスレスドメイン間ルーティング(つまり、CIDR)表記 を使用したIPアドレスの範囲の指定をサポートしています。CIDR表記では、オプションのサブネットはプレフィックスの長さを表す10進数として表されます。

IPアドレス[/プレフィックス長]

たとえば、 192.168.1.0/24 は、 192.168.1.0192.168.1.255 の範囲内のすべての IP アドレスを表します。

許可/ブロックされたアドレスリストの例

Snowflakeでは、現在のIPアドレスをブロックするネットワークポリシーを設定することはできません。現在のIPアドレスをブロックするネットワークポリシーを作成しようとすると、エラーメッセージが表示されます。

以下は、Snowflakeネットワークポリシーを使用して許可およびブロックされるIPアドレスの範囲を定義する代表的な例です。

明示的にブロックされている 192.168.1.99 を除き、 192.168.1.0 から 192.168.1.255 の範囲のすべてのIPアドレスを許可します。さらに、他のすべてのIPアドレスがブロックされます。

- Allowed IP Addresses: 192.168.1.0/24
- Blocked IP Addresses: 192.168.1.99

次の例では、 192.168.1.0 および 192.168.1.100 IPアドレスのみがアカウントにアクセスできます。

- Allowed IP Addresses: 192.168.1.0,192.168.1.100
- Blocked IP Addresses: N/A

現在のIPアドレスが 192.168.1.0 であると仮定して、他のすべてのIPアドレスをブロックします。

- Allowed IP addresses: 192.168.1.0
- Blocked IP addresses: 192.168.1.0/0

重要

許可またはブロックされたIPアドレスのCIDR表記が /0プレフィックスの長さ として使用する場合、SnowflakeはそのCIDR表記を 0.0.0.0 と評価します。

/0 prefix_length のIPアドレスは有効ですが、この表記には注意が必要です。ネットワークポリシーによっては、 0 プレフィックスを使用すると、すべてのIPアドレスが許可されるか、現在のIPアドレス以外のすべてがブロックされる可能性があります。

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

アカウントレベルでネットワークポリシーを有効にするには、 ALTER ACCOUNT を使用して、アカウントの NETWORK_POLICY パラメーターを設定します。

個々のユーザーのネットワークポリシーをアクティブにするには、 ALTER USER を使用して、ユーザーの NETWORK_POLICY パラメーターを設定します。

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

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

アカウントまたはユーザーのネットワークポリシーの特定

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

-- account-level

show parameters like 'network_policy' in account my-account;

-- user-level

show parameters like 'network_policy' in user test_user_1;

アカウントレベルのネットワークポリシーの管理

アカウントレベルのネットワークポリシーの作成

注釈

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

ウェブインターフェイスまたは SQL を使用してネットワークポリシーを作成できます。

ウェブインターフェイス

Account Account tab » Policies をクリックします

SQL

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

ウェブインターフェイスで、

  1. Policies ページが表示されます

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

    Snowflake Create Network Policy dialog
  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 をクリックします。Snowflakeは成功メッセージを表示します。

ネットワークポリシーを作成したら、Snowflakeがポリシーを実施する前にアクティブ化する必要があります。詳細については、 アカウントレベルのネットワークポリシーのアクティブ化 (このトピック)をご参照ください。

注釈

ネットワークポリシーをアクティブにするには、現在の IP アドレスを Allowed IP Addresses リストに含める必要があります。そうでない場合、 Activate ボタンをクリックするとエラーが返されます。また、現在の IP アドレスを Blocked IP Addresses リストに含めることはできません。

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

ネットワークポリシーを作成したら、Snowflakeがポリシーを実施する前に、アカウントに関連付けてアクティブ化する必要があります。

注釈

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

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

セキュリティ管理者(またはそれ以上)は、複数のネットワークポリシーを作成できます。ただし、一度に1つのネットワークポリシーのみをアカウントに関連付けることができます。ネットワークポリシーをアカウントに関連付けると、現在関連付けられているネットワークポリシー(存在する場合)は自動的に削除されます。

ウェブインターフェイスまたは SQL を使用して、ネットワークポリシーをアカウントに関連付けることができます。

ウェブインターフェイス

Account Account tab » Policies をクリックします

SQL

NETWORK_POLICY アカウントパラメーターを使用してネットワークポリシーを設定する ALTER ACCOUNT ステートメントを実行します。

ウェブインターフェイスで、

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

    Snowflake Policies page
  2. 右側のパネルの Activate ボタンをクリックします。Snowflakeは成功メッセージを表示します。

アカウントレベルのネットワークポリシーの変更

ネットワークポリシーは、ウェブインターフェイスまたは SQL を使用して変更できます。具体的には、許可およびブロックされたアドレスのリストから IP アドレスを追加または削除します。

ウェブインターフェイス

Account Account tab » Policies をクリックします

SQL

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

ウェブインターフェイスで、

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

    Snowflake Policies page
  2. 右側のパネルの Edit ボタンをクリックします。

    Snowflake network policy edit panel
  3. 必要に応じてフィールドを変更します。

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

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

  4. Save をクリックします。Snowflakeは成功メッセージを表示します。

アカウントレベルのネットワークポリシーの表示

ウェブインターフェイスまたは SQL を使用して、アカウントのネットワークポリシーに関する情報を表示できます。

ウェブインターフェイス

Account Account tab » Policies » <ポリシー名> をクリックします

SQL

次のステートメントのいずれかを実行します。

ロールへのネットワークポリシー権限の付与

次のネットワークポリシー権限をロールに付与できます。

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

  • ネットワークポリシーの削除

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

ロールの所有者は、ネットワークポリシーの権限をロールに付与した後、将来の使用のために新しいネットワークポリシーを設定したり、使用されなくなった既存のネットワークポリシーを廃止したりするなど、ネットワークポリシーでネットワーク管理操作を実行できます。

ネットワークポリシー権限をロールに付与するには、ウェブインターフェイスまたは SnowSQLで次の SQL ステートメントを実行します。

grant create network policy on account to role my_role;

ユーザーレベルのネットワークポリシーの管理

ユーザーレベルのネットワークポリシーはアカウントレベルのネットワークポリシーより優先され、ユーザーレベルのネットワークポリシーの管理は SQL を使用して実行できます。

注釈

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

ユーザーレベルのネットワークポリシーの作成

CREATE NETWORK POLICY ステートメントを実行することにより、 SQL を使用してユーザーレベルのネットワークポリシーを作成できます。

ネットワークポリシーを作成した後、Snowflakeがそのポリシーを実施する前にアクティブ化する必要があります。詳細については、 ユーザーレベルのネットワークポリシーのアクティブ化 (このトピック内)をご参照ください。

注釈

ネットワークポリシーをアクティブにするには、現在の IP アドレスを Allowed IP Addresses リストに含める必要があります。また、現在の IP アドレスを Blocked IP Addresses リストに含めることはできません。

ユーザーレベルのネットワークポリシーのアクティブ化

ネットワークポリシーを作成したら、Snowflakeがポリシーを実施する前に、ユーザーに関連付けてアクティブ化する必要があります。

注釈

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

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

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

セキュリティ管理者(またはそれ以上)は、複数のネットワークポリシーを作成できます。ただし、一度に1つのネットワークポリシーのみをユーザーに関連付けることができます。ネットワークポリシーをユーザーに関連付けると、現在関連付けられているネットワークポリシー(存在する場合)は自動的に削除されます。

個々のユーザーのネットワークポリシーをアクティブにするには、 ALTER USER を使用して、ユーザーの NETWORK_POLICY パラメーターを設定します。

ユーザーレベルのネットワークポリシーの変更

ALTER NETWORK POLICY ステートメントを実行することにより、 SQL を使用してネットワークポリシーを変更できます。

ユーザーレベルのネットワークポリシーの表示

次のいずれかのステートメントを実行すると、 SQL を使用してユーザーのネットワークポリシーに関する情報を表示できます。

ユーザーに対するユーザーレベルのネットワークポリシー権限の付与

ネットワークポリシー権限をユーザーに付与することはできません。