メインコンテンツまでスキップ

はじめに

DuoKey
Snowflake Tri-Secret Secure — はじめにガイド
19 September 2026
適用対象:
Snowflake Business CriticalAWS KMSDuoKey XKS ProxyACCOUNTADMIN ロール

概要​

Snowflake は、一連の SYSTEM$ 関数を使用する Tri-Secret Secure のセルフ登録プロセスを提供しています。このガイドでは、DuoKey XKS Proxy のデプロイから Snowflake アカウントでの TSS の有効化まで、すべてのステップを順を追って説明します。

TSS セルフ登録プロセス

DuoKey XKS による Tri-Secret Secure の段階的な有効化

1
DuoKey 管理者
XKS プロキシをデプロイ
DuoKey Cockpit を通じて MPC Vault バックエンドを備えた DuoKey XKS プロキシをセットアップします
2
AWS 管理者
XKS 対応 CMK を作成
DuoKey XKS プロキシを指す外部キーストアに AWS KMS キーを作成します
3
Snowflake 管理者
CMK を登録
AWS KMS キー ARN を指定して SYSTEM$REGISTER_CMK_INFO を呼び出します
4
Snowflake 管理者
構成の取得とポリシーの適用
SYSTEM$GET_CMK_CONFIG → AWS KMS キーに IAM ポリシーを適用します
5
Snowflake 管理者
接続性を検証
SYSTEM$VERIFY_CMK_INFO で Snowflake ↔ AWS ↔ DuoKey のチェーンを確認します
6
待機
72時間の待機期間
有効化前の必須のクーリング期間です
7
Snowflake 管理者
TSS を有効化
SYSTEM$ACTIVATE_CMK_INFO — Snowflake が複合キーですべてのデータを再暗号化します

前提条件​

前提条件

  • AWS 上の Snowflake Business Critical エディション(またはそれ以上)
  • Snowflake の ACCOUNTADMIN ロール
  • XKS Proxy がデプロイされた DuoKey Cockpit へのアクセス
  • 少なくとも 1 つの AES-256 キーを持つ稼働中の DuoKey MPC Vault
  • Snowflake と同じリージョンで KMS 権限を持つ AWS アカウント
  • KMS および IAM 操作のための AWS CLI またはコンソールへのアクセス
警告

Tri-Secret Secure は重要なセキュリティ上の意思決定です。一度有効化すると、Snowflake アカウントはすべての暗号操作について CMK に依存することになります。続行する前に、DuoKey XKS Proxy と MPC Vault が高可用性を備えた本番環境対応であることを確認してください。

ステップバイステップガイド​

ステップ 1: DuoKey XKS Proxy をデプロイする​

MPC Vault をバックエンドのキーマネージャーとして使用する DuoKey XKS Proxy をセットアップします。このステップは、標準の DuoKey AWS XKS デプロイと同一です。

  • DuoKey XKS Proxy をデプロイする(パブリックエンドポイントまたは VPC エンドポイント)
  • DuoKey Cockpit を構成し、XKS リクエストを MPC Vault にルーティングする
  • Snowflake CMK 用に MPC Vault で AES-256 キーを作成する
  • XKS Proxy のヘルスチェックエンドポイントが 200 OK を返すことを確認する
  • キーに割り当てられた外部キー IDを記録する
ヒント

XKS Proxy のデプロイ手順の詳細については、AWS XKS はじめにガイドを参照してください。

ステップ 2: AWS KMS で XKS バックの CMK を作成する​

DuoKey XKS Proxy を外部キーストアとして使用する AWS KMS キーを作成します。

AWS CLI — 外部キーストアの作成
-- 1. Create the External Key Store in AWS KMS (if not already done)
aws kms create-custom-key-store \
--custom-key-store-name "duokey-xks-snowflake" \
--custom-key-store-type "EXTERNAL_KEY_STORE" \
--xks-proxy-uri-endpoint "https://your-xks-proxy.example.com" \
--xks-proxy-uri-path "/kms/xks/v1" \
--xks-proxy-connectivity "PUBLIC_ENDPOINT" \
--xks-proxy-authentication-credential \
AccessKeyId=AKIAEXAMPLE,RawSecretAccessKey=your-secret

-- 2. Connect the key store
aws kms connect-custom-key-store \
--custom-key-store-id "cks-1234567890abcdef0"

-- 3. Create the CMK in the External Key Store
aws kms create-key \
--origin "EXTERNAL_KEY_STORE" \
--custom-key-store-id "cks-1234567890abcdef0" \
--xks-key-id "your-external-key-id-from-duokey"
注記

create-key によって返される Key ARN を記録してください。次のステップで必要になります。

ステップ 3: Snowflake で CMK を登録する​

SYSTEM$REGISTER_CMK_INFO 関数を使用して、AWS KMS キーを Snowflake に登録します。ACCOUNTADMIN ロールが必要です。

Snowflake — CMK の登録
-- Switch to ACCOUNTADMIN role
USE ROLE ACCOUNTADMIN;

-- Register the CMK ARN
SELECT SYSTEM$REGISTER_CMK_INFO(
'arn:aws:kms:eu-west-1:123456789012:key/mrk-1234abcd5678efgh'
);
パラメーター説明例
Key ARNXKS バックの AWS KMS キーの完全な ARNarn:aws:kms:eu-west-1:123456789012:key/mrk-...
RegionSnowflake アカウントのリージョンと一致する必要がありますeu-west-1
Key Type対称 AES-256 暗号化キーである必要がありますSYMMETRIC_DEFAULT

登録後、Snowflake は CMK ARN と 72 時間の有効化ウィンドウを記載した確認メールを送信します。

Snowflake CMK registration confirmation email

ステップ 4: 構成を取得して IAM ポリシーを適用する​

Snowflake 固有の構成を取得し、Snowflake がキーを使用できるように AWS KMS キーに IAM ポリシーを適用します。

Snowflake — CMK 構成の取得
-- Get the required IAM configuration
SELECT SYSTEM$GET_CMK_CONFIG();

これは、KMS キーにアタッチする必要がある IAM ポリシーステートメントを含む JSON ドキュメントを返します。AWS で適用します。

IAM ポリシー(SYSTEM$GET_CMK_CONFIG 出力の例)
{
"Sid": "AllowSnowflakeAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SNOWFLAKE_ACCOUNT_ID:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": "snowflake.eu-west-1.amazonaws.com"
}
}
}
重要

SYSTEM$GET_CMK_CONFIG() によって返される正確なポリシーを適用してください。プリンシパル ARN と条件は、お客様の Snowflake アカウントに固有のものです。

ステップ 5: 接続を確認する​

Snowflake が AWS KMS と DuoKey XKS Proxy を通じて CMK に到達できることを確認します。

Snowflake — CMK の確認
SELECT SYSTEM$VERIFY_CMK_INFO();
結果意味アクション
PASSEDSnowflake は CMK を正常に使用できますステップ 6 に進む
FAILED — Key not foundAWS KMS キー ARN が正しくありませんREGISTER_CMK_INFO の ARN を確認する
FAILED — Access deniedIAM ポリシーが正しく適用されていませんGET_CMK_CONFIG のポリシーを再適用する
FAILED — Connection errorXKS Proxy に到達できないか、正常でありませんDuoKey XKS Proxy のステータスを確認する

確認が成功すると、Snowflake ワークシートに「Verification successful」と表示されます。

SYSTEM$VERIFY_CMK_INFO returns Verification successful in Snowflake worksheet

ステップ 6: 72 時間待機する​

警告

Snowflake は、登録から有効化までの間に必須の 72 時間の待機期間を課します。これは誤ってロックアウトされることを防ぐための安全対策です。このステップをスキップすることはできません。

SYSTEM$GET_CMK_INFO() で現在のステータスを確認できます。CMK が事前登録済みであることを確認し、最も早い有効化日を表示します。

SYSTEM$GET_CMK_INFO showing pre-registered CMK status with activation date

待機期間中は次のことを行います。

  • DuoKey XKS Proxy が安定しており監視されていることを確認する
  • キーの取り消しと復旧の手順をテストする
  • 運用チームが TSS の依存関係を理解していることを確認する
  • XKS Proxy のヘルスとレイテンシに関するアラートを設定する

ステップ 7: Tri-Secret Secure を有効化する​

72 時間の待機期間の後、TSS を有効化します。

Snowflake — TSS の有効化
USE ROLE ACCOUNTADMIN;

SELECT SYSTEM$ACTIVATE_CMK_INFO();

この関数は次を返します。「Key rotation has started. Account admins will receive a notification email when rekeying is complete.」

SYSTEM$ACTIVATE_CMK_INFO result — Key rotation has started

SYSTEM$ACTIVATE_CMK_INFO() を通じて Tri-Secret Secure が正常に有効化されたことを示す Snowflake ワークシート

注意

有効化されると、Snowflake は複合マスターキーですべてのデータの再キー化を開始します。このプロセスは自動的かつ透過的ですが、再キー化期間全体を通じて CMK にアクセスできる状態を維持する必要があります。

有効化後​

再キー化が完了すると、Snowflake は Tri-Secret Secure が完全に有効化され、アカウントが有効化された CMK で再キー化されたことを確認する確認メールを送信します。

Snowflake email confirming Tri-Secret Secure activation and rekeying complete

Snowflake からの確認メール — TSS が有効化され、アカウントが CMK で再キー化されました

TSS ステータスの確認​

TSS ステータスの確認
SELECT SYSTEM$GET_CMK_INFO();

有効化が成功すると、この関数は次を返します。「CMK with ARN: arn:aws:kms:... is activated for Tri-Secret Secure」

SYSTEM$GET_CMK_INFO confirming CMK is activated for Tri-Secret Secure

Snowflake ワークシート — SYSTEM$GET_CMK_INFO() が CMK が Tri-Secret Secure に対して有効化されていることを確認します

これにより次のことが確認されます。

  • CMK ARN とリージョン
  • 有効化ステータス
  • Tri-Secret Secure が完全に動作していること

キルスイッチの実演 — XKS Proxy 無効化​

DuoKey XKS を使用した Tri-Secret Secure の最も強力な機能の 1 つは、外部キーストアを切断することで Snowflake のデータへのアクセスを即座に取り消す機能です。以下は、XKS Proxy が無効化された場合に何が起こるかの実際のデモンストレーションです。

ステップ 1: AWS KMS で外部キーストアを切断する

AWS KMS コンソールから、DuoKey XKS Proxy にリンクする外部キーストアを切断します。接続状態は「Disconnected」に変わります。

AWS KMS Console showing External Key Store disconnected

AWS KMS コンソール — 外部キーストアが正常に切断され、DuoKey XKS Proxy へのリンクが遮断されました

ステップ 2: Snowflake は即座にロックアウトされる

XKS Proxy が切断されると、Snowflake は CMK にアクセスできなくなります。すべてのデータが完全にアクセス不能になり、ユーザーにはアクセス拒否エラーが表示され、いかなるデータもクエリできなくなります。

Snowflake access denied — no data visible when XKS Proxy is disabled

Snowflake は完全にロックされます — 「Access is denied to the customer managed key (CMK) for this account」

重要

これは顧客管理型暗号化の真の力を示しています。XKS Proxy を切断するだけで、すべての Snowflake データを読み取り不能にできます。データの削除は不要です。これが実際の暗号シュレッディングです。キーストアを再接続すると、アクセスが即座に復元されます。

注記

2024 年 Snowflake 侵害からの教訓: 2024 年半ば、攻撃者は盗まれた認証情報を使用して 165 以上の Snowflake 顧客アカウント(AT&T、Ticketmaster、Santander を含む)にアクセスし、数億件のレコードを流出させました。これらの顧客が DuoKey XKS を使用した Tri-Secret Secure を有効化していれば、外部キーストアを切断する 1 回のクリックで攻撃者を即座にロックアウトでき、上記のとおりすべてのデータを暗号的にアクセス不能にできたはずです。詳細については、侵害の完全な分析を参照してください。

緊急時の手順​

Snowflake がデータにアクセスするのを即座に防止するには:

  1. DuoKey Cockpit: DuoKey MPC Vault で CMK キーを無効化する — 即時反映
  2. AWS KMS: KMS キーを無効化する — 数秒以内に反映
  3. AWS IAM: Snowflake IAM ポリシーを削除する — 数分以内に反映

取り消し後、Snowflake は新しい複合マスターキーを生成できません。既存のキャッシュされたキーは期限切れになり、すべてのデータがアクセス不能になります。

モニタリング​

監視対象場所アラートしきい値
XKS Proxy の正常性DuoKey Cockpit200 以外のレスポンス
XKS Proxy のレイテンシDuoKey Cockpit / CloudWatch平均 > 100ms
KMS キーのステータスAWS KMS コンソール / CloudTrailキーの無効化または削除保留
CMK 操作AWS CloudTrail予期しない Decrypt または Encrypt 呼び出し
MPC Vault のステータスDuoKey Cockpitノードのオフラインまたはクォーラム喪失

トラブルシューティング​

次のステップ​

© 2026 DuoKey SA - 機密docs.duokey.com | [email protected]