CREATE NETWORK RULE¶
ネットワークルールを作成するか、既存のネットワークルールを置き換えます。
構文¶
CREATE [ OR REPLACE ] NETWORK RULE <name>
TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT }
VALUE_LIST = ( '<value>' [, '<value>', ... ] )
MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
[ COMMENT = '<string_literal>' ]
必須パラメーター¶
name
ネットワークルールの識別子。
識別子の値はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子は、大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT }
許可またはブロックされるネットワーク識別子の型を指定します。ネットワークルールは1つの型のみ持つことができます。
IPV4
は、ネットワークルールがリクエスト元の IPv4 アドレスに基づいて、 ネットワークトラフィックを許可またはブロックすることを示します。AWSVPCEID
は、ネットワークルールが AWS PrivateLink 上のネットワークトラフィックを許可またはブロックすることを示します。AZURELINKID
は Azure Private Link 上のネットワークトラフィックを許可またはブロックするネットワークルールを示します。HOST_PORT
は、ネットワークルールがリクエスト先のドメインに基づいて、発信ネットワークトラフィックを許可することを示します。TYPE = HOST_PORT
の場合は、MODE
パラメーターをEGRESS
に設定する必要があります。
VALUE_LIST = ( 'value' [, 'value', ... ] )
許可またはブロックされるネットワーク識別子を指定します。
リストの有効な値は、ネットワークルールの型によって決まります。
TYPE = IPV4
の場合、各値は有効な IPv4 アドレスか アドレスの範囲 にする必要があります。TYPE = AWSVPCEID
の場合、各値は AWS S3エンドポイント の有効な VPCE ID にする必要があります。VPC IDs はサポートされていません。TYPE = AZURELINKID
の場合、各値はAzure プライベートエンドポイント の有効な LinkID にする必要があります。 SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS 関数を実行して、アカウントに関連付けられた LinkID を取得します。TYPE = HOST_PORT
の場合、各値は有効なドメインにする必要があります。オプションで、ポートまたはポートの範囲を含めることもできます。有効なポート範囲は1~65535です。ポートを指定しない場合、デフォルトは443です。外部ネットワークの場所が動的ポートをサポートしている場合は、可能なポートをすべて指定する必要があります。
すべてのポートへのアクセスを許可するには、ポートを0として定義します。例:
company.com:0
。
MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
ネットワークルールによって制限されるものを指定します。
INGRESS
INGRESS
モードの動作は、ネットワークルールのTYPE
プロパティの値に依存します。TYPE=IPV4
の場合、デフォルトでネットワークルールはSnowflakeサービスへのアクセスのみを制御します。アカウント管理者が ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES パラメーターを有効にした場合、
MODE=INGRESS
とTYPE=IPV4
は AWS 内部ステージも保護します。TYPE=AWSVPCEID
の場合、ネットワークルールはSnowflakeサービスへのアクセスのみを制御します。
INTERNAL_STAGE
Snowflakeサービスへのアクセスを制限することなく、 AWS 内部ステージへのリクエストを許可またはブロックします。このモードを使用するには、以下が必要です。
アカウント管理者は ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES パラメーターを有効にする必要があります。
ネットワークルールの
TYPE
プロパティはAWSVPCEID
にする必要があります。
EGRESS
Snowflakeが外部宛先にリクエストを送信できるようにします。
デフォルト:
INGRESS
オプションのパラメーター¶
COMMENT = 'string_literal'
ネットワークルールのコメントを指定します。
デフォルト: 値なし
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE NETWORK RULE |
スキーマ |
デフォルトでは、 ACCOUNTADMIN と SECURITYADMIN のロールとスキーマ所有者のみがこの権限を持ちます。権限は必要に応じて追加のロールに付与できます。 |
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
ネットワークルールに IP アドレスを指定する場合、Snowflakeは クラスレスドメイン間ルーティング(CIDR)表記 を使用して IP アドレスの範囲をサポートします。
たとえば、
192.168.1.0/24
は、192.168.1.0
〜192.168.1.255
の範囲内のすべての IPv4 アドレスを表します。メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
AWS S3エンドポイントから内部ステージへのトラフィックを許可またはブロックするためのネットワークルールを作成します。
CREATE NETWORK RULE corporate_network
TYPE = AWSVPCEID
VALUE_LIST = ('vpce-123abc3420c1931')
MODE = INTERNAL_STAGE
COMMENT = 'corporate privatelink endpoint';
IP アドレスの範囲からSnowflakeサービスおよび内部ステージへのトラフィックを許可またはブロックするために使用するネットワークルールを作成します。
CREATE NETWORK RULE cloud_network
TYPE = IPV4
VALUE_LIST = ('47.88.25.32/27')
COMMENT ='cloud egress ip range';
Snowflakeが外部宛先にリクエストを送信するときに、ドメインとドメイン/ポートの組み合わせを許可するために使用するネットワークルールを作成します。
CREATE NETWORK RULE external_access_rule
TYPE = HOST_PORT
MODE = EGRESS
VALUE_LIST = ('example.com', 'company.com:443');