Snowflakeのプライベート接続による Tri-Secret Secure セルフサービス

Tri-Secret Secure の概要

デュアルキー暗号化モデルをSnowflakeの組み込みユーザー認証とともに使用することで、 Tri-Secret Secure として知られる3つのレベルのデータ保護が可能になります。Tri-Secret Secureは、Snowflakeの標準的な暗号化を上回るレベルのセキュリティとコントロールを提供します。

Snowflakeのデュアルキー暗号化モデルは、Snowflakeが管理するキーと、Snowflakeアカウントをホストするクラウドプロバイダーのプラットフォーム上でお客様が作成する、お客様が管理するキー(CMK)を組み合わせるものです。このモデルで、Snowflakeデータを保護する複合マスターキーを作成します。この複合マスターキーは、アカウント階層内のすべてのキーをラップすることにより、アカウントマスターキーとして機能します。複合マスターキーが生データの暗号化するに使用されることはありません。たとえば、複合マスターキーは、生データを暗号化するファイルキーを取得するために使用されるテーブルマスターキーをラップします。

注意

アカウントで Tri-Secret Secure を有効にする前に、 顧客が管理するキー で述べたように、キーを保護する責任を慎重に検討する必要があります。複合マスターキー階層内の CMK が取り消された場合 、データはSnowflakeによって復号化できなくなります。

質問や懸念がある場合は、 `Snowflakeサポート `_にお問い合わせください。

Snowflakeは、当社が維持するキーに対しても同じ責任を負います。サービスのセキュリティ関連のすべての側面と同様に、当社では細心の注意を払いこの責任に取り組んでいます。

すべてのキーは、 SOC 2 Type II、 PCI-DSS、 HIPAA および HITRUST CSF など、最高のセキュリティ認定を取得できるようにする厳格なポリシーの下で維持されています。

Tri-Secret Secure ハイブリッドテーブルとの互換性

アカウントにハイブリッドテーブルを作成する予定があり、 Tri-Secret Secure がすでに有効になっているかこれから有効にする場合は、専用ストレージモードを有効にする必要があります。詳細については、 TSS向けハイブリッドテーブル専用ストレージモード をご参照ください。

プライベート接続による Tri-Secret Secure セルフサービスの理解

Snowflakeのシステム関数を使用して、 CMK を登録し、プライベートエンドポイントをプロビジョニングしてから、それらのエンドポイントを介して Tri-Secret Secure で使用するために CMK をアクティブ化することができます。Tri-Secret Secure で使用するために CMK を置き換えることにした場合、 SYSTEM$GET_CMK_INFO 関数を使うと、新しい CMK が登録されてアクティブ化されているかどうかがわかります。キー更新プロセス中も引き続きアカウントを使用できます。

プライベート接続による Tri-Secret Secure セルフサービスには、次のような利点があります。

  • Snowflakeアカウントをホストするクラウドプラットフォームの鍵管理サービス(KMS)との連携が容易になります。

  • CMKの登録と認証の手順を合理化します。

  • CMK 登録と Tri-Secret Secure アクティベーションステータスに透明性を提供します。

  • Snowflakeアカウントのダウンタイムなしで|tri-secret-secure| を管理できるようにします。

  • プライベートエンドポイントを通じて、Snowflakeが管理するキーとクラウドプロバイダーのキーvaultとの通信を可能にします。

プライベート接続での Tri-Secret Secure をアクティブ化する

This procedure works on all cloud provider platforms that Snowflake supports. See your specific cloud provider documentation for any steps taken on the cloud provider platform. To enable private connectivity for a CMK already activated with Tri-Secret Secure, see アクティブな CMK のプライベート接続エンドポイントを有効にする.

プライベート接続で Tri-Secret Secure をアクティブ化するには、以下の手順を完了します。

  1. クラウドプロバイダーで CMK を作成します。

    このステップは、Snowflakeアカウントをホストしているクラウドプラットフォームの KMS で行います。

  2. Snowflakeで、 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT_TSS を呼び出します。

    このシステム関数は、 KMS と Tri-Secret Secure で使用するプライベートエンドポイントをプロビジョニングします。

  3. クラウドプロバイダーで、プライベートエンドポイントを承認します。

    Do this step in the Azure portal as the owner of the Azure API Management resource. For more information, see the Microsoft Azure , AWS, or Google Cloud documentation.

  4. In Snowflake, call SYSTEM$REGISTER_CMK_INFO with both arguments, as shown in the following example:

    SELECT SYSTEM$REGISTER_CMK_INFO('<your_cmk_value>', 'true');
    
    Copy
    • このシステム関数は CMK Snowflakeアカウントをを登録します

    • システム関数の引数を再確認し、確実にSnowflakeアカウントをホストするクラウドプラットフォームに対して正しいようにします。

    • SYSTEM$REGISTER_CMK_INFO 関数を呼び出すと、検証済みのメールアドレスを持つアカウント管理者にメールメッセージを送信します。このメッセージは、アカウント管理者に、 ACTIVATE_CMK_INFO を呼び出して Tri-Secret Secure を打クティブ化できるタイミングを通知するものです。

    重要

    Tri-Secret Secure をアクティブ化する(ステップ8)前に72時間待つ必要があります。この待機時間中に Tri-Secret Secure をアクティブ化しようとすると、待機することを推奨するエラーメッセージが表示されます。

  5. Snowflakeで、 SYSTEM$GET_CMK_INFO を呼び出します。

    このシステム関数は、登録したCMK の登録ステータスと詳細を返します。

  6. Snowflakeで、 SYSTEM$GET_CMK_CONFIG を呼び出します。

    このシステム関数は、Snowflakeが CMKにアクセスできるようにするために、クラウドプロバイダーが必要な情報を生成します。

    注釈

    Microsoft Azure がSnowflakeアカウントをホストしている場合 、関数に:samp:{tenant_id} 値を渡す必要があります。

  7. クラウドプロバイダープラットフォームで、 SYSTEM$GET_CMK_CONFIG 関数の出力を使用して CMK を承認します。

  8. Snowflakeで、 SYSTEM$VERIFY_CMK_INFO を呼び出します。

    このシステム関数は、 Snowflakeアカウントと CMK との接続性を確認します。

  9. Snowflakeで、 SYSTEM$ACTIVATE_CMK_INFO を呼び出します。

    このシステム関数は Tri-Secret Secure 登録済み CMKをアクティブ化します。このシステム関数はキー更新プロセスを開始し、プロセスが終了するとシステム管理者に通知する電子メールメッセージを生成します。キー更新プロセスは1時間以内で完了しますが、最大24時間かかる場合があります。

    警告

    Snowflakeはキー更新プロセスが完了するまで、古い CMK を使用します。キー更新プロセスが完了したというメール通知を受信するまで、古い CMK へのアクセスを削除しないでください。

CMK のステータスを確認する

いつでも SYSTEM$GET_CMK_INFO を呼び出して、 CMK の登録とアクティベーションのステータスをチェックできます。

たとえば、 SYSTEM$GET_CMK_INFO をいつ呼び出すかによって、この関数は以下のような出力を返します。

  • Tri-Secret Secure をアクティブ化した直後は、 ...is being activated... を返します。これはキー更新が完了していないことを意味します。

  • Tri-Secret Secure のアクティベーションプロセス完了後は、 ...is activated... を含む出力を返します。これは、Snowflakeアカウントが、登録した CMK で Tri-Secret Secure を使用していることを意味します。

プライベート接続を有効にしている場合、 SYSTEM$GET_CMK_INFO を呼び出すと、プライベート接続エンドポイントと Tri-Secret Secure の登録とアクティベーションステータスに関する情報が返されます。

Tri-Secret Secure の CMK を変更する

Snowflakeのシステム関数は、お客様のセキュリティニーズに基づき、お客様が管理するキー(CMK)の変更をサポートしています。初期登録のステップとして CMK と同じ手順を使用して、新しい CMK を登録します。新しいキーを使用してこれらの手順を再度完了すると、システム関数の出力が変わります。セルフ登録中に呼び出した各システム関数からの出力を読み、キーが変更されていることを確認します。たとえば、 CMK を変更した場合、 SYSTEM$GET_CMK_INFO 関数を呼び出すと、 ...is being rekeyed... を含むメッセージが返されます。

アクティブな CMK のプライベート接続エンドポイントを有効にする

アクティブな CMK があり、そのプライベート接続を キー更新 なしで有効にしたい場合は、次の手順を完了します。

  1. Snowflakeで、 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT_TSS を呼び出します。

    このシステム関数は、キー管理サービス(KMS)と Tri-Secret Secure で使用するプライベートエンドポイントをプロビジョニングします。

  2. クラウドプロバイダーで、プライベートエンドポイントを承認します。

    Do this step in the Azure portal as the owner of the Azure API Management resource. For more information, see the Microsoft Azure , AWS, or Google Cloud documentation.

  3. Snowflakeで、次の例に示すように、両方の引数を使用して SYSTEM$REGISTER_CMK_INFO を呼び出します。

    SELECT SYSTEM$REGISTER_CMK_INFO('<your_cmk_value>', 'true');
    
    Copy
    • このシステム関数は CMK Snowflakeアカウントをを登録します

    • システム関数の引数が再確認され、Snowflakeアカウントをホストするクラウドプラットフォームに対して正しいかどうかを確認します。

  4. Snowflakeで、次の例に示すように、 UPDATE_PRIVATELINK 引数を指定して SYSTEM$ACTIVATE_CMK_INFO を呼び出します。

    SELECT SYSTEM$ACTIVATE_CMK_INFO('UPDATE_PRIVATELINK');
    
    Copy

    SYSTEM$ACTIVATE_CMK_INFO 関数を UPDATE_PRIVATELINK 引数をして実行すると、前の SYSTEM$REGISTER_CMK_INFO 呼び出しから値を読み込みます。キー更新は発生しないので、この機能はすぐに完了します。オプションとして、 SYSTEM$GET_CMK_INFO 関数を再度呼び出すと、プライベート接続のステータスが表示されます。

Tri-Secret Secure のプライベート接続エンドポイントをデプロビジョニングする

Snowflakeがプライベート接続を使用して外部の KMS リソースに接続しないようにするには、 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT_TSS 関数を呼び出します。

Tri-Secret Secure のプライベート接続エンドポイントを復元する

デプロビジョニングされたプライベート接続エンドポイントを使用して、外部 KMS リソースへのSnowflake接続を再確立するには、 SYSTEM$RESTORE_PRIVATELINK_ENDPOINT_TSS 関数を呼び出します。

自動キーローテーション機能を備えた Tri-Secret Secure セルフサービスを使用する

クラウドプロバイダーの自動キーローテーション機能を使用してお客様が管理するキー(CMKs)のライフサイクルを管理する場合、 SYSTEM$ACTIVATE_CMK_INFO システム関数を呼び出して 'REKEY_SAME_CMK' 引数を指定することで、 CMK の最新バージョンでキー更新できます。

詳細については、 顧客が管理するキー をご参照ください。

Tri-Secret Secure を非アクティブ化する

非アクティブ化するには Tri-Secret Secure アカウントで、 SYSTEM$DEACTIVATE_CMK_INFO システム関数を呼び出します。

現在の CMK を登録解除する

CMK と一度に Tri-Secret Secure 登録できるのは1つだけです。CMK を登録する際、異なる CMK がすでに存在するため、 SYSTEM$REGISTER_CMK_INFO 関数が失敗する場合は、プロンプトに従って SYSTEM$DEREGISTER_CMK_INFO 関数を呼び出します。

Tri-Secret Secure を AWS 外部キーストアと統合する

Snowflakeは Tri-Secret Secure と AWS の外部キーストアとの統合をサポートしており、 AWS の外部で顧客管理キーを安全に保管および管理します。Snowflakeは、Thales Hardware Security Modules(HSM)およびThales CipherTrust Cloud Key Manager(CCKM)データ暗号化製品のみ公式にテストを行い、サポートしています。

Thalesのソリューションを使用した Tri-Secret Secure のセットアップと構成の詳細については、 ` Snowflakeアカウント AWSでTri-Secret SecureのThales外部キーストアを使用する方法 <https://community.snowflake.com/s/article/thales-xks-for-tss-aws#e3>`_ をご参照ください。