外部関数の保護¶
このトピックでは、外部機能の保護に関する、プラットフォームに依存しない詳細について説明します。
このトピックの内容:
アクセス制御¶
外部関数¶
ユーザー定義関数(UDFs)のような外部関数は、 アクセス制御 ルールに従います。
外部関数には所有者がいます。
所有者は、呼び出し側(所有者以外)に対して、関数への適切な権限を付与する必要があります。
ただし、外部関数には、いくつかの追加の権限要件があります。
外部関数には API 統合が必要なため、外部関数の作成者には、 API 統合に対する USAGE 権限を付与する必要があります。
UDFs とアクセス制御の詳細については、 アクセス制御権限 をご参照ください。
API 統合¶
権限と API 統合¶
API 統合はデータベースオブジェクトです。API 統合を作成するには、 ACCOUNTADMIN 権限または CREATE INTEGRATION 権限を持つSnowflakeロールが必要です。アカウント管理者は、各 API 統合に対する所有権および使用権限の付与および取り消しができます。
CREATE API INTEGRATION での API_KEY オプションの使用¶
一部のプロキシサービス(API Gateway)では、ユーザーがプロキシサービスを呼び出すときに、サブスクリプション情報(またはその他の製品関連情報)を提供する必要があります。サブスクリプション情報は、ユーザーが有料の顧客であることを認証したり、使用量の割り当てを適用したりするために使用できます。
Snowflakeは、 サブスクリプションキー (Microsoft Azureの用語)とも呼ばれる API キー をサポートするようになりました。これは、開発者がサブスクリプション情報を提供する必要があるユーザーに配布できる英数字の文字列です。
ユーザーは、 CREATE API INTEGRATION ステートメントまたは ALTER API INTEGRATION ステートメントの API_KEY 句を使用して、これらのキーをSnowflakeに提供できます。API_KEY 句はオプションです。サービスにキーが必要ない場合は省略できます。
API_KEY は、 IAM (IDおよびアクセス管理)に追加されるものであり、これに代わるものではありません。
API キーは機密です。キーは次の場所には表示されません。
クエリ履歴コマンド。
DESCRIBE INTEGRATION コマンド。
DESCRIBE API INTEGRATION コマンド。
サービスの開発者は、キーのフォーマット方法を選択します。キーはSnowflakeに対して不透明であり、Snowflakeはキーを検証しません。
以下のリンクをたどると、特定のプラットフォームにおける API キーの詳細を読むことができます。
プロキシサービスの保護¶
外部関数の一般提供を意図している場合を除き、 Snowflakeは、プロキシサービスエンドポイントを保護することを強くお勧めします。
Snowflakeは、資格情報のない API 統合オブジェクトを使用して、プロキシサービスエンドポイントへの認証を行います。資格情報なしの API 統合は、管理者とユーザー間の責任を分離します。管理者は API 統合により、クラウドプロバイダーのネイティブ認証および承認メカニズムを使用して、Snowflakeとクラウドプロバイダーの間に信頼ポリシーを作成できます。Snowflakeがクラウドプロバイダーに接続すると、クラウドプロバイダーはこの信頼ポリシーを通じてアクセスを認証および承認します。管理者は特定の API 統合を使用して、API 統合オブジェクトがアクセスできる許可されたエンドポイントのリストを指定することもできます。これにより、Snowflakeが使用できるプロキシサーバーとリソースを制限できるため、管理者はデータの送受信に対して組織のポリシーを適用できるようになります。
Amazon API Gatewayなどの特定のプロキシサービスエンドポイントを保護するための詳細な手順は、プラットフォーム固有の手順にあります。
リモートサービスの保護¶
独自のリモートサービスを作成した場合は、保護することを忘れないでください。
詳細はリモートサービスの実装によって異なり、このドキュメントの範囲外です。
ほとんどの場合、リモートサービスは HTTP ではなく HTTPS を使用する必要があります。
追加のセキュリティ情報¶
Snowflakeとプロキシサーバー間の通信は HTTPS を使用して暗号化されます。
プラットフォーム固有のセキュリティ情報¶
AWS¶
AWS の場合、すべてのSnowflake HTTP リクエスト(API Gatewayに送信)は、 AWS sigv4認証を使用して署名されます。詳細については、 AWS sigv4認証 をご参照ください。
リソースポリシーを追加して、 API Gatewayエンドポイントへのアクセスを制限します。詳細については、 Amazon API Gatewayエンドポイントの保護 をご参照ください。
プライベートエンドポイント を使用する場合は、 PrivateLink について読むことをお勧めします。