ネットワークポリシーを使用したネットワークトラフィックの制御¶
ネットワークポリシーを使用して、Snowflakeサービスおよび内部ステージへの インバウンド アクセスを制御できます。
Snowflakeから外部ネットワーク宛先への アウトバウンド トラフィックを制御する場合は、 外部ネットワークアクセスの概要 をご参照ください。
注釈
ネットワークルールの導入以前に存在していたネットワークポリシーは、 Snowsight では変更できなくなりました。代わりに ALTER NETWORK POLICY コマンドを使用してください。
ネットワークポリシーについて¶
デフォルトでは、Snowflakeはユーザーが任意のコンピューターまたはデバイスからサービスおよび内部ステージに接続できるようにします。セキュリティ管理者(またはそれ以上)は、ネットワークポリシーを使って、リクエストの発信元に基づいてアクセスを許可または拒否できます。ネットワークポリシーの 許可リスト は、Snowflakeサービスまたは内部ステージへのアクセスを許可するリクエストを制御し、 ブロックリスト は、明示的にブロックするリクエストを制御します。
ネットワークポリシーが、許可リストやブロックリストにネットワーク識別子を直接指定することはありません。むしろ、ネットワークポリシーにより、許可リストとブロックリストに ネットワークルール が追加されます。これらのネットワークルールは、関連する識別子を論理ユニットにグループ化し、ネットワークポリシーの許可リストとブロックリストに追加します。
重要
ネットワークルールの導入以前に存在したネットワークポリシーは、まだ機能します。ただし、すべての新しいネットワークポリシーは、 ALLOWED_IP_LIST および BLOCKED_IP_LIST パラメーターではなく、ネットワークルールを使用して、 IP アドレスからのアクセスを制御する必要があります。ベストプラクティスは、同じネットワークポリシーで両方のアクセス制限方法を使用しないことです。
ワークフロー¶
ネットワークポリシーを使用して、インバウンドネットワークトラフィックを制御する一般的なワークフローは次のとおりです。
目的とネットワーク識別子のタイプに基づいて、 ネットワークルールを作成 します。
許可またはブロックする識別子を含むネットワークルールを含む、 1つまたは複数のネットワークポリシーを作成 します。
アカウント、ユーザー、またはセキュリティ統合のネットワークポリシーをアクティブ化します。ネットワークポリシーは、有効になるまでネットワークトラフィックを制限しません。
許可リストとブロックリストの相互作用¶
ネットワークルールをネットワークポリシーの許可リストに追加する場合は、ブロックリストを使用して同じタイプの他の識別子を明示的にブロックする必要はありません。許可された識別子のみがアクセスできます。たとえば、 IPv4 ネットワークルールの許可リストに IP アドレスを1つだけ追加すると、他の IPv4 アドレスはすべてブロックされます。ブロックリストを使用して、他の IP アドレスからのアクセスを制限する必要はありません。
ネットワークポリシーで、 ALLOWED_IP_LIST と BLOCKED_IP_LIST の両方のパラメーターに同じ IP アドレス値がある場合、Snowflakeは BLOCKED_IP_LIST パラメーターの値を最初に適用します。この動作は、 ALLOWED_NETWORK_RULE_LIST と BLOCKED_NETWORK_RULE_LIST パラメーターにも適用されます。
プライベート接続 ネットワークルール ---つまり、タイプ AWSVPCEID または AZURELINKID のネットワークルール --- IPV4 ネットワークルールよりも優先されます。受信リクエストがプライベート接続を使用し、ALLOWED_NETWORK_RULE_LIST プロパティ内にタイプ AWSVPCEID または AZURELINKID のネットワークルールがある場合、パブリックまたはプライベート IP を含むすべての IPV4 ネットワークルールは無視されます。
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');
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');
ネットワークポリシーの優先順位¶
ネットワークポリシーは、アカウント、セキュリティ統合、またはユーザーに適用できます。複数のネットワークポリシーが適用されている場合、最も具体的なネットワークポリシーが、一般的なネットワークポリシーよりも優先されます。優先順位をまとめると次のようになります。
- アカウント:
アカウントに適用されるネットワークポリシーは、最も一般的なネットワークポリシーです。これらのポリシーよりも、セキュリティ統合またはユーザーに適用されるネットワークポリシーが優先されます。
- ユーザー:
Network policies applied to a user override network policies applied to the account, but are overridden by a network policy applied to a security integration.
- セキュリティ統合:
Network policies applied to a security are the most specific network policies. They override both accounts and users.
注釈
Snowflake OAuth統合に添付されたネットワークポリシーは、クライアントとSnowflakeの間にネットワークトラフィックがある場合に優先されますが、認証サーバーとしてユーザーとSnowflakeの間に相互作用がある場合は、ユーザーレベルのポリシーよりも優先されません。詳細については、 Snowflake OAuthのネットワークトラフィックの制限 をご参照ください。
ネットワークポリシーのバイパス¶
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の内部ステージへのパブリックアクセスすべてをブロックできます。詳細については、 パブリックアクセスのブロック --- 推奨 をご参照ください。
制限事項¶
セキュリティ統合のために有効化されたネットワークポリシーは、内部ステージへのアクセスを制限しません。
前提条件: 内部ステージの制限の有効化¶
ネットワークルールを使用してアカウントの内部ステージへのアクセスを制限するには、アカウント管理者が ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES パラメーターを有効にする必要があります。ネットワークルールは、ルールのモードに関係なく、このパラメーターが有効になるまで内部ステージを保護しません。
ネットワークルールで内部ステージングへのアクセスを制限できるようにするには、次を実行します。
USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES = true;
内部ステージのガイドライン¶
We recommend that you follow these guidelines when creating network policies and network rules to restrict access to internal stages.
識別子の数の制限。内部ステージの保護に使用されるネットワークポリシーに、ネットワーク識別子を無制限に含めることはできません。この制限はSnowflakeのエディションによって異なります。
注釈
ネットワークポリシーに複数のネットワークルールがある場合、すべてのネットワークルールの識別子の数を合計しても、ネットワークポリシーの制限を超えることはありません。
Standard EditionおよびEnterprise Edition:
IPv4 アドレス範囲の最大数は、ネットワークルールごとに10です。
VPCE IDs の最大数は、ネットワークポリシーごとに7です。
Business Critical Edition(またはそれ以上):
IPv4 アドレス範囲の最大数は、ネットワークポリシーごとに約250です。
VPCEIDs の最大数は、ネットワークポリシーごとに約200です。
ネットワークポリシーの最大数は50です。この制限を増やす必要がある場合は、 Snowflakeサポート までご連絡ください。
サービスステージと内部ステージの両方を保護するために、同じルールを使用します。ルールに 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を使用していることを示します。自分の環境に合った組み合わせを見つけ、それに応じて実装戦略を選択します。
サービス接続 |
内部ステージ接続 |
実装戦略 |
|---|---|---|
パブリック |
パブリック |
|
プライベート |
プライベート |
プライベートな IP アドレスを使用してアクセスを制限するか、 VPC エンドポイントの VPCE ID を使用してアクセスを制限するかに応じて、戦略は異なります。
|
パブリック [1] |
プライベート |
プライベートな IP アドレスを使用して内部ステージへのアクセスを制限するか、 VPC エンドポイントの VPCE ID を使用するかに応じて、戦略は異なります。
|
プライベート |
パブリック [1] |
サービスにはプライベート IPs を使用する必要があります(VPCE IDs は使用できません)。 |
ネットワークルールの操作¶
ネットワークルールのライフサイクル管理には、 Snowsight または SQL を使用できます。
ネットワークルールの作成¶
ネットワークルールを作成するには、スキーマの CREATE NETWORK RULE 権限が必要です。デフォルトでは、 ACCOUNTADMIN と SECURITYADMIN のロールとスキーマ所有者のみがこの権限を持ちます。
ネットワークポリシーで使用されるネットワークルールのモードは、 INGRESS または INTERNAL STAGE である必要があります。
ネットワークルールを作成するためのベストプラクティスと戦略について理解を深めるには、 ネットワークルールについて をご参照ください。
ネットワークルールを作成するには、 Snowsight を使用するか、 SQL コマンドを実行します。
- Snowsight:
Snowsight にサインインします。
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Rules タブを選択します。
+ Network Rule を選択します。
ネットワークルールの名前を入力します。
ネットワークルールのスキーマを選択します。ネットワークルールはスキーマレベルのオブジェクトです。
必要に応じて、ネットワークルールに説明的なコメントを追加して、スキーマ内のネットワークルールの整理と管理に役立てます。
Type ドロップダウンで、ネットワークルールで定義されている 識別子のタイプ を選択します。Host Port タイプは、ネットワークポリシーで使用されるネットワークルールの有効なオプションではありません。
Mode ドロップダウンで、 Ingress または Internal Stage を選択します。Egress モードは、ネットワークポリシーで使用されるネットワークルールの有効なオプションではありません。
ネットワークルールがネットワークポリシーに追加されたときに、許可またはブロックされる識別子をカンマ区切りで入力します。このリストの識別子はすべて、 Type ドロップダウンで指定されたタイプである必要があります。
Create Network Rule を選択します。
- 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');
ネットワークルールの変更¶
Snowsight または SQL を使ってネットワークルールを変更できます。
- Snowsight:
Snowsight にサインインします。
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Rules タブを選択します。
ネットワークルールを見つけ、 ... ボタン、 Edit の順に選択します。
必要に応じてネットワークルールを修正します。
Update Network Rule を選択します。
- SQL:
ALTER NETWORK RULE ステートメントを実行します。
ネットワークポリシーの操作¶
ネットワーク識別子をネットワークルールにグループ化したら、それらのネットワークルールを新規または既存のネットワークポリシーの許可リストとブロックリストに追加する準備が整います。ネットワークポリシーに追加できるネットワークルールの数に制限はありません。
ネットワークポリシーがSnowflakeサービスおよび内部ステージへのインバウンドアクセスを制御する方法の一般的な情報については、 ネットワークポリシーについて をご参照ください。
ネットワークポリシーの作成¶
ネットワークポリシーを作成できるのは、セキュリティ管理者(つまり、 SECURITYADMIN ロールを持つユーザー)以上、 または CREATE NETWORK POLICY グローバル権限のあるロールのみです。ネットワークポリシーの所有権は、別のロールに譲渡できます。
注意
0.0.0.0/0 は、すべての パブリック およびプライベート IPv4 アドレス範囲を指します。公開アクセスをブロックするネットワークルールを使用し、そのネットワークルールをネットワークポリシーの BLOCKED_NETWORK_RULE_LIST プロパティに追加します。
ネットワークポリシーの評価では、 ALLOWED_IP_LIST および BLOCKED_IP_LIST のネットワークポリシープロパティよりも前に、あらゆるネットワークルールプロパティが考慮されます。
AWSVPCEID、AZURELINKIDのネットワークルールTYPEプロパティは、TYPE = IPV4の値よりも優先されます。ネットワークルールがない場合、ネットワークポリシーの評価では、
ALLOWED_IP_LISTとBLOCKED_IP_LISTのネットワークポリシープロパティとその値が考慮されます。
ネットワークルールですべてのパブリックアクセスをブロックする前に、Snowflakeへのアクセスを許可するネットワークルールがネットワークポリシーに追加されていることを確認してください。Snowflakeサービスへのプライベート接続(AWS PrivateLink など)を使用している場合は、このサービスを構成し、それに応じてネットワークルールとネットワークポリシーを更新します。
空のネットワークポリシーを作成しようとすると、 IPv4 アドレスがSnowflakeアカウントにアクセスできなくなります。
注意
Snowflake Open Catalog アカウントのネットワークポリシーを定義する場合、ネットワークポリシーの許可リストに、アカウントへのアクセスに使用する予定の IP アドレスが少なくとも1つ含まれていることを確認してください。そうしないと、アカウントからロックアウトされる可能性があります。
Snowsight または SQL を使用して、ネットワークポリシーを作成できます。
- Snowsight:
Snowsight にサインインします。
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Policies タブを選択します。
+ Network Policy を選択します。
ネットワークポリシーの名前を入力します。
必要に応じて、説明的なコメントを入力します。
許可リストにネットワークルールを追加するには、 Allowed、 Select rule の順に選択します。Select rule を再選択することで、複数のネットワークルールを許可リストに追加できます。
ブロックリストにネットワークルールを追加するには、 Blocked、 Select rule の順に選択します。Select rule を再選択することで、複数のネットワークルールをブロックリストに追加できます。
Create Network Policy を選択します。
- SQL:
CREATE NETWORK POLICY ステートメントを実行します。
アカウント内のネットワークポリシーの識別¶
Snowsight または SQL を使用して、アカウント内のネットワークポリシーを識別できます。
- Snowsight:
Snowsight にサインインします。
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Policies タブを選択します。
- SQL:
次のいずれかを実行します。
POLICY_REFERENCES Information Schemaテーブル関数を呼び出します。
POLICY_REFERENCES または NETWORK_POLICIES Account Usageビューをクエリします。
SHOW PARAMETERS コマンドを以下のように実行します。
SHOW PARAMETERS LIKE 'network_policy' IN ACCOUNT;
ネットワークポリシーの変更¶
Snowsight または SQL を使用して、既存のネットワークポリシーの許可リストとブロックリストにネットワークルールを追加または削除できます。ネットワークルールの代わりに ALLOWED_IP_LIST および BLOCKED_IP_LIST パラメーターを使用するネットワークポリシーを編集する場合は、 SQL を使用してネットワークポリシーを変更する必要があります。
- Snowsight:
Snowsight にサインインします。
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Policies タブを選択します。
ネットワークポリシーを見つけ、 ... ボタン、 Edit の順に選択します。
許可リストにネットワークルールを追加するには、 Allowed、 Select rule の順に選択します。Select rule を再選択することで、複数のネットワークルールを許可リストに追加できます。
ブロックリストにネットワークルールを追加するには、 Blocked、 Select rule の順に選択します。Select rule を再選択することで、複数のネットワークルールをブロックリストに追加できます。
ネットワークポリシーの許可リストまたはブロックリストからネットワークルールを削除するには、次を実行します。
Allowed または Blocked を選択します。
リストからネットワークルールを探し、 X を選択して削除します。
- SQL:
既存のネットワークポリシーにネットワークルールを追加または削除するには、 ALTER NETWORK POLICY コマンドを使用します。
ネットワークルールを許可リストまたはブロックリストに追加する場合、リスト内の既存のネットワークルールをすべて置き換えることも、既存のリストを維持したまま新しいルールを追加することもできます。次の例は、これらの各オプションを示しています。
SET 句を使用して、ブロックリストのネットワークルールを
other_networkという名前の新しいネットワークルールに置き換えます。ALTER NETWORK POLICY my_policy SET BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
ADD 句を使用して、既存のネットワークポリシーの許可リストに、1つのネットワークルールを追加します。以前にポリシーの許可リストに追加されたネットワークルールは、引き続き有効です。
ALTER NETWORK POLICY my_policy ADD ALLOWED_NETWORK_RULE_LIST = ( 'new_rule' );
リスト全体を置き換えることなく、既存のリストからネットワークルールを削除することもできます。ネットワークポリシーのブロックリストからネットワークルールを削除する例は、次のようになります。
ALTER NETWORK POLICY my_policy REMOVE BLOCKED_NETWORK_RULE_LIST = ( 'other_network' );
ネットワークポリシーのアクティブ化¶
ネットワークルールは、アカウント、ユーザー、またはセキュリティ統合に対してアクティブ化されるまでは、インバウンドネットワークトラフィックを制限しません。各レベルにおけるアクティブ化の方法については、次をご参照ください。
異なるレベルで複数のネットワークポリシー(例: アカウントレベルとユーザーレベルの両方のネットワークポリシー)をアクティブ化する場合は、 ネットワークポリシーの優先順位 をご参照ください。
アカウントのネットワークポリシーのアクティブ化¶
アカウントのネットワークポリシーをアクティブ化すると、そのアカウントのすべてのユーザーに対してポリシーが適用されます。
アカウントでネットワークポリシーをアクティブ化できるのは、セキュリティ管理者(つまり、 SECURITYADMIN ロールを持つユーザー)以上、 または グローバル ATTACH POLICY 権限を持つロールのみです。
ポリシーがアカウントに関連付けられると、Snowflakeは許可リストとブロックリストに基づいて、アカウントへのアクセスを制限します。ルールによって制限されたネットワークオリジンからログインしようとするユーザーは、アクセスを拒否されます。さらに、ネットワークポリシーがアカウントに関連付けられている場合、既にSnowflakeにログインしている制限されたユーザーは、それ以上のクエリを実行できません。
複数のネットワークポリシーを作成できますが、アカウントに一度に関連付けられるネットワークポリシーは1つのみです。ネットワークポリシーをアカウントに関連付けると、現在関連付けられているネットワークポリシー(存在する場合)は自動的に削除されます。
現在の IP アドレスまたはプライベートエンドポイント識別子がポリシーの許可リストに含まれている必要があることに注意してください。それ以外の場合は、ポリシーをアクティブ化するとSnowflakeがエラーを返します。さらに、現在の識別子をブロックリストに含めることはできません。
新しいネットワークポリシーを有効にする前に、すでにアカウントレベルのネットワークポリシーがあるかどうかを確認する場合は、 有効化されたネットワークポリシーを特定する をご参照ください。
Snowsight または SQL を使用して、アカウントのネットワークポリシーをアクティブ化できます。
- Snowsight:
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Policies タブを選択します。
ネットワークポリシーを見つけ、 ... ボタン、 Activate の順に選択します。
Activate policy を選択します。
- SQL:
ALTER ACCOUNT ステートメントを実行して、アカウントの NETWORK_POLICY パラメーターを設定します。例:
ALTER ACCOUNT SET NETWORK_POLICY = my_policy;
個々のユーザーに対するネットワークポリシーのアクティブ化¶
Snowflakeアカウントの特定のユーザーにネットワークポリシーを適用するには、そのユーザーのネットワークポリシーをアクティブ化します。各ユーザーに対して一度にアクティブ化できるネットワークポリシーは1つのみです。ユーザーごとに異なるネットワークポリシーを有効にできるため、詳細な制御が可能です。ネットワークポリシーをユーザーに関連付けると、現在関連付けられているネットワークポリシー(存在する場合)は自動的に削除されます。
注釈
A role with the OWNERSHIP privilege on the user and USAGE privilege on the network policy, or a higher role, can activate a network policy for an individual user.
ポリシーがユーザーに関連付けられると、Snowflakeは許可リストとブロックリストに基づいて、ユーザーへのアクセスを制限します。有効化されたユーザーレベルのネットワークポリシーを持つユーザーが、ルールによって制限されているネットワークロケーションからログインしようとすると、そのユーザーはSnowflakeへのアクセスを拒否されます。
さらに、ユーザーレベルのネットワークポリシーがユーザーに関連付けられていて、ユーザーがすでにSnowflakeにログインしている場合、ユーザーのネットワークロケーションがユーザーレベルのネットワークポリシールールに一致しないと、Snowflakeはユーザーがそれ以上クエリを実行できないようにします。
新しいネットワークポリシーを有効にする前に、すでにユーザーレベルのネットワークポリシーがあるかどうかを確認する場合は、 有効化されたネットワークポリシーを特定する をご参照ください。
個々のユーザーのネットワークポリシーをアクティブにするには、 ALTER USER コマンドを実行して、ユーザーの NETWORK_POLICY パラメーターを設定します。たとえば、次を実行します。
ALTER USER joe SET NETWORK_POLICY = my_policy;
セキュリティ統合のネットワークポリシーのアクティブ化¶
Some security integrations support activating a network policy to control network traffic that is governed by that integration. These security integrations have a NETWORK_POLICY parameter that activates the network policy for the integration. Currently, SCIM, Snowflake OAuth, and External OAuth support integration-level network policies.
注釈
セキュリティ統合のために有効化されたネットワークポリシーは、内部ステージへのアクセスを制限しません。
たとえば、新しい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;
ALTER SECURITY INTEGRATION ... SET NETWORK_POLICY ステートメントを実行して、既存のセキュリティ統合のネットワークポリシーをアクティブ化できます。
有効化されたネットワークポリシーを特定する¶
アカウント、ユーザー、または統合レベルで、どのネットワークポリシーが有効になっているかを識別できます。
- アカウント:
ナビゲーションメニューで、 Governance & security » Network policies を選択してから、 Network Policies タブを選択します。
Status 列を並べ替えて、ネットワークポリシーを表示します。
Status 列には、アクティブなネットワークポリシーと非アクティブなネットワークポリシーが表示されます。列の値を選択すると、ネットワークポリシーの詳細を表示したり、ポリシーを編集したり、ネットワークポリシーを削除したりできます。アカウントに設定されているネットワークポリシーを有効化および無効化できます。
あるいは、 POLICY_REFERENCES 関数を呼び出し、ネットワークポリシーを指定することもできます。個々の行の
ref_entity_nameとref_entity_domain列の値は、ネットワークポリシーが設定されているオブジェクトを示します。
ネットワークポリシーとネットワークルールでの複製の使用¶
Snowflakeは、ネットワークポリシーの割り当てを含め、ネットワークポリシーとネットワークルールの複製とフェールオーバー/フェールバックをサポートします。
詳細については、 複数のアカウントにわたるセキュリティ統合とネットワークポリシーの複製 をご参照ください。