- カテゴリ:
システム関数 (システム制御)
SYSTEM$GET_STAGE_PRIVATELINK_AUTHORIZED_ENDPOINTS¶
以前の SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS に対する呼び出しで、現在のアカウントの内部ステージへのアクセスが許可された、プライベート接続ソースのリストを返します。この関数を使用して、どのソースが現在許可されているかを確認します。
返されるリストの正確な内容は、Snowflakeアカウントをホストするクラウドプロバイダーによって異なります。
Microsoft Azureでは、この関数は、許可されたプライベートエンドポイントと、各エンドポイント接続の承認ステータスを返します。
Google Cloudでは、関数は許可された VPC とともに各 VPC ネットワークを介して内部ステージにアクセスすることを許可されている IP CIDR 範囲を返します。
構文¶
SYSTEM$GET_STAGE_PRIVATELINK_AUTHORIZED_ENDPOINTS()
引数¶
なし
戻り値¶
オブジェクトのリストを含む JSON 形式の文字列を返します。各オブジェクトのフィールドは、クラウドプロバイダーによって異なります。現在のアカウントでソースが許可されていない場合、関数は空のリスト([])を返します。
Azure
各オブジェクトは、1つの許可されたプライベートエンドポイント接続を記述し、次の文字列フィールドを含みます。
connection_nameAzureプライベートエンドポイント接続の名前。
endpoint_resource_idプライベートエンドポイントのAzureリソースID。
statusプライベートエンドポイント接続の承認ステータス(例:
Approved、PendingまたはRejected)。
Google Cloud
各オブジェクトは、1つの許可された VPC ネットワークを表し、次の文字列フィールドが含まれます。
vpc_network_id内部ステージへのアクセスを許可されたGoogle Cloud VPC ネットワークの完全修飾パス(例:
projects/<project>/global/networks/<network>)。allowed_ip_cidr_ranges内部ステージへのアクセスを許可されている VPC ネットワーク内の IP CIDR 範囲。現在、すべてのエントリは
0.0.0.0/0を返します。Google Cloud上で、
0.0.0.0/0は、パブリックインターネット上の任意のソースからのトラフィックが許可されることを表すものではありません。関数は SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS を介して明示的に許可された VPC ネットワークのみを返すため、ここでは0.0.0.0/0は、許可された VPC ネットワーク内から発信されるすべてのトラフィックが内部ステージへのアクセスを許可されていることを表します。
使用上の注意¶
この関数を呼び出すことができるのは、アカウント管理者(つまり、 ACCOUNTADMIN ロールを持つユーザー)のみです。
この関数は、Microsoft AzureとGoogle Cloudでサポートされています。AWS では、内部ステージへのプライベート接続は VPC エンドポイントを介して個別のストレージアカウントまたはバケットに対してではなく、リージョン内のAmazon S3サービス全体に対して確立されるため、Amazon Web Services(AWS)ではサポートされていません。その結果、許可されたプライベート接続ソースのアカウントごとのリストを返すことはできません。AWS で内部ステージプライベート接続が機能する仕組みの詳細については、 内部ステージ用の AWS VPC インターフェイスエンドポイント をご参照ください。
アクセス制御の要件¶
アカウント管理者(ACCOUNTADMIN ロールを持つユーザー)のみが、この関数を呼び出すことができます。
例¶
同じステートメントがAzureとGoogle Cloudの両方で使用されます。返される JSON の形式は、どのクラウドプロバイダーがアカウントをホストするかによって異なります。
USE ROLE ACCOUNTADMIN;
SELECT SYSTEM$GET_STAGE_PRIVATELINK_AUTHORIZED_ENDPOINTS();
サンプル出力(実際の戻り値は1行の JSON 文字列です。以下の例は、読みやすくするために編集されています)。
Azure
[
{
"connection_name": "<storage_account>.4d008fc9-9c62-42fd-b5d7-f7f1786654df",
"endpoint_resource_id": "/subscriptions/<sub_id>/resourceGroups/<rg>/providers/Microsoft.Network/privateEndpoints/test-pe",
"status": "Approved"
}
]
Google Cloud
[
{
"allowed_ip_cidr_ranges": "0.0.0.0/0",
"vpc_network_id": "projects/<project>/global/networks/<network_1>"
},
{
"allowed_ip_cidr_ranges": "0.0.0.0/0",
"vpc_network_id": "projects/<project>/global/networks/<network_2>"
}
]
個別のフィールドを検査するには、 JSON 結果をフラット化します。たとえば、Azureの場合:
SELECT
value:connection_name::string AS connection_name,
value:endpoint_resource_id::string AS endpoint_resource_id,
value:status::string AS status
FROM TABLE(
FLATTEN(
input => PARSE_JSON(
SYSTEM$GET_STAGE_PRIVATELINK_AUTHORIZED_ENDPOINTS()
)
)
);
Google Cloudの場合:
SELECT
value:vpc_network_id::string AS vpc_network_id
FROM TABLE(
FLATTEN(
input => PARSE_JSON(
SYSTEM$GET_STAGE_PRIVATELINK_AUTHORIZED_ENDPOINTS()
)
)
);