ネットワークポリシー

ネットワークポリシーは、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 を使用してネットワークポリシーを作成できます。

新しいウェブインターフェイス
  1. Account » Security » Policies をクリックします。

  2. ページの右上隅にある + Network Policy ボタンをクリックします。 New network policy ダイアログが開きます。

  3. 次のプロパティを指定します。

    プロパティ

    説明

    ポリシー名

    ネットワークポリシーの識別子。アカウントに対して一意である必要があります。

    識別子はアルファベットで始まる必要があり、識別子の文字列全体が二重引用符で囲まれている場合を除き、スペースや特殊文字を含めることはできません(例: "My object")。

    二重引用符で囲まれた識別子も大文字と小文字が区別されます。

    詳細については、 識別子の要件 をご参照ください。

    許可された IP アドレス

    Snowflakeアカウントへのアクセスが許可された、1つ以上の IPv4 アドレスのコンマ区切りリスト。これは 許可リスト と呼ばれます。Snowflakeは、許可リストに含まれていないすべての IP アドレスを自動的にブロックします。

    各 IP アドレス は、クラスレスドメイン間ルーティング(CIDR)表記を使用してアドレス範囲をカバーできます。

    IPアドレス[/オプションのプレフィックスの長さ]

    例:

    192.168.1.0/24

    ブロックされた IP アドレス

    Snowflakeアカウントへのアクセスが拒否された、1つ以上の IPv4 アドレスのコンマ区切りリスト。これはブロックリストと呼ばれます。

    このパラメーターは、 Allowed IP Addresses リストにある IP アドレスの範囲へのアクセスを許可し、その範囲内の1つ以上の IP アドレスへのアクセスを拒否する場合にのみ設定します。

    各 IP アドレス は、クラスレスドメイン間ルーティング(CIDR)表記を使用してアドレス範囲をカバーできます。

    コメント

    ネットワークポリシーのコメントを指定します。

  4. Create network policy ボタンをクリックします。

従来のウェブインターフェイス
  1. Account Account tab » 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 をクリックします。

SQL

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

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

注釈

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

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

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

注釈

このアクションは、次のロールの いずれか に限定されます。

  • セキュリティ管理者(つまり、 SECURITYADMIN ロールを持つユーザー)またはそれ以上のロール。

  • グローバル ATTACH POLICY 権限を付与されたロール。

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

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

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

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

新しいウェブインターフェイス
  1. Account » Security » Policies をクリックします。

  2. 有効化するポリシー名の右側にある Activate Policy ボタンをクリックします。

従来のウェブインターフェイス
  1. Account Account tab » Policies をクリックします。

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

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

SQL

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

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

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

新しいウェブインターフェイス
  1. Account » Security » Policies をクリックします。

  2. ネットワークポリシー » Edit Policy の行のアクション(...)ボタンをクリックします。 Edit Policy ダイアログが開きます。

  3. 任意のプロパティを編集します。プロパティの説明については、 アカウントレベルのネットワークポリシーの作成 (このトピック内)をご参照ください。

  4. Save changes ボタンをクリックします。

従来のウェブインターフェイス
  1. Account Account tab » Policies をクリックします。

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

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

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

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

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

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

SQL

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

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

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

新しいウェブインターフェイス

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

従来のウェブインターフェイス

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 を使用してユーザーのネットワークポリシーに関する情報を表示できます。

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

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