CREATE NETWORK POLICY

ネットワークポリシーを作成するか、既存のネットワークポリシーを置き換えます。

注釈

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

こちらもご参照ください。

ALTER NETWORK POLICY、 DROP NETWORK POLICY、 SHOW NETWORK POLICIES、 DESCRIBE NETWORK POLICY

ALTER ACCOUNT

構文

CREATE [ OR REPLACE ] NETWORK POLICY [ IF NOT EXISTS ] <name>
  [ ALLOWED_NETWORK_RULE_LIST = ( '<network_rule>' [ , '<network_rule>' , ... ] ) ]
  [ BLOCKED_NETWORK_RULE_LIST = ( '<network_rule>' [ , '<network_rule>' , ... ] ) ]
  [ ALLOWED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' , ... ] ) ]
  [ BLOCKED_IP_LIST = ( [ '<ip_address>' ] [ , '<ip_address>' , ... ] ) ]
  [ COMMENT = '<string_literal>' ]

必須パラメーター

name

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

識別子の値はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含むことはできません(例えば、 "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

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

オプションのパラメーター

ALLOWED_NETWORK_RULE_LIST = ( 'network_rule' [ , 'network_rule' , ... ] )

Snowflakeへのアクセスを許可されたネットワーク識別子を含んでいる ネットワークルール のリストを指定します。リスト内のネットワークルールの数に制限はありません。

BLOCKED_NETWORK_RULE_LIST = ( 'network_rule' [ , 'network_rule' , ... ] )

Snowflakeへのアクセスを拒否されたネットワーク識別子を含んでいるネットワークルールのリストを指定します。リスト内のネットワークルールの数に制限はありません。

ALLOWED_IP_LIST = ( [ ip_address ] [ , ip_address , ... ] )

Snowflakeアカウントへのアクセスを許可する IPv4 アドレスのリストを指定します。これは 許可リスト と呼ばれます。

Snowflakeは、このパラメーターを使用するよりも、ネットワークポリシーと組み合わせてネットワークルールを使用することを推奨します。ALLOWED_NETWORK_RULE_LIST パラメーターを使用して、 IPv4 アドレスを含むネットワークルールを指定します。

ネットワークルールをまだ使用していない場合は、Snowflakeアカウントへのアクセスを許可するために、少なくとも1つの IPv4 アドレスまたは CIDR ブロック範囲を指定します。さらに、ネットワークルールを使用しておらず、このプロパティに空のリストが指定されている場合、いかなる IPv4 アドレスもSnowflakeアカウントへのアクセスを許可されません。

BLOCKED_IP_LIST = ( [ ip_address ] [ , ip_address , ... ] )

Snowflakeアカウントへのアクセスを拒否される IPv4 アドレスのリストを指定します。これは ブロックリスト と呼ばれます。このパラメータを解除するには、別の CIDR ブロック範囲、一連の IPv4 アドレス、または単一の IPv4 アドレスを指定します。

Snowflakeは、このパラメーターを使用するよりも、ネットワークポリシーと組み合わせてネットワークルールを使用することを推奨します。BLOCKED_NETWORK_RULE_LIST パラメーターを使用して、 IPv4 アドレスを含むネットワークルールを指定します。

公開アクセスをブロックするには、ネットワーク・ルールを使用し、 BLOCKED_NETWORK_RULE_LIST プロパティにネットワーク・ルールを追加します。その結果、 AWS PrivateLink のようなプライベート接続を使用する IP アドレスのみが、Snowflakeアカウントにアクセスできるようになります。

デフォルト:値なし、 ALLOWED_IP_LIST プロパティのいかなる IP アドレスもブロックされません。

COMMENT = 'string_literal'

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

デフォルト: 値なし

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

オブジェクト

注意

CREATE NETWORK POLICY

アカウント

Only the SECURITYADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • ネットワークポリシーと組み合わせてネットワークルールを使用し、Snowflakeアカウントへのアクセスを管理します。

  • 既存のポリシーがアカウント、セキュリティ統合、またはユーザーに現在割り当てられている場合は、 CREATE OR REPLACE NETWORK POLICY コマンドを実行してそのネットワークポリシーを置き換えることはできません。

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

    ip_address[/optional_prefix_length]

    例:

    192.168.1.0/24

  • ネットワークポリシーに ALLOWED_IP_LIST と BLOCKED_IP_LIST の両方の値が含まれている場合、Snowflakeは最初に ブロックリスト を適用します。

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

  • ネットワークポリシーを作成した後、Snowflakeがポリシーを実施する前に、それをアカウントに関連付ける必要があります。SECURITYADMIN ロール(またはそれ以上)を持つユーザーが実行する必要がある ALTER ACCOUNT コマンドを使用して、アカウントにポリシーを関連付けることができます。

    例:

    USE ROLE SECURITYADMIN;
    
    ALTER ACCOUNT SET NETWORK_POLICY = <policy_name>;
    

    詳細については、 パラメーター管理 をご参照ください。現在、 SECURITYADMIN ロールを持つユーザーが設定できるアカウントパラメータは NETWORK_POLICY のみです。

  • ネットワークポリシーをアカウントに関連付ける前に、現在の IP アドレスを ALLOWED_IP_LIST に含める必要があります。そうでない場合、 ALTER ACCOUNT コマンドはエラーを返します。また、現在の IP アドレスを BLOCKED_IP_LIST に含めることはできません。

  • メタデータについて。

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

  • OR REPLACE 句と IF NOT EXISTS 句は互いに排他的です。この2つを同じステートメントで使うことはできません。

  • CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。

例

VPCE ID を許可するネットワークルールと、 許可リストとブロックリストの相互作用 で説明されているように、パブリックネットワークトラフィックをブロックするネットワークルールの2つに基づいて、 allow_vpceid_block_public_policy という名前のネットワークポリシーを作成します。

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

DESC NETWORK POLICY rule_based_policy;
+---------------------------+---------------------+
| name                      | value               |
|---------------------------+---------------------|
| ALLOWED_NETWORK_RULE_LIST | ALLOW_VPCEID_ACCESS |
+---------------------------+---------------------+
| BLOCKED_NETWORK_RULE_LIST | BLOCK_PUBLIC_ACCESS |
+---------------------------+---------------------+