第2章 アカウント管理とデータガバナンス / 想定学習時間:30〜40分 / 最終確認:2026年8月

2-5. 暗号化とデータ保護

🎯 この節の学習目標

1. 常時暗号化:ユーザー操作は不要

Snowflakeに格納されるデータは、常に・既定で・自動的に暗号化されます。これを「エンドツーエンドの暗号化」と呼び、次の2つの局面をカバーします。

局面方式説明
保存時(at rest)AES-256(強力な共通鍵暗号)テーブルデータ、内部ステージのファイルなど、Snowflakeが保持するすべてのデータが暗号化されて保存される
転送時(in transit)TLS(トランスポート層の暗号化)クライアントとSnowflake間、Snowflake内部の通信がTLSで保護される

📝 試験のポイント

暗号化は全エディション共通の標準動作で、ユーザーが有効化する操作や設定は一切不要無効化もできません。「暗号化を有効にするにはどうするか?」という問いに対して「何もしなくてよい(常に有効)」が正解になる、Snowflakeらしい出題ポイントです。

2. 階層キーモデルとキーラッピング

Snowflakeの暗号化キーは、1つの鍵ですべてを暗号化するのではなく、4階層のキー階層(hierarchical key model)で管理されます。上位のキーが下位のキーを暗号化して包む仕組みをキーラッピング(key wrapping)と呼びます。

ルートキー階層の最上位。ハードウェアセキュリティモジュール(HSM)で保護される
ラップ(暗号化)
アカウントマスターキーアカウントごとに1つ
ラップ(暗号化)
テーブルマスターキーテーブルなどのオブジェクト単位
ラップ(暗号化)
ファイルキーデータファイル(マイクロパーティションなどの実ファイル)単位

図:階層キーモデル。上位キーが下位キーをラップし、実データを直接暗号化するのは最下層のファイルキー

この階層構造には明確な利点があります。

3. キーローテーションとPeriodic Rekeying

キーの寿命管理には、性格の異なる2つの仕組みがあります。この対比は確実に区別できるようにしてください。

自動キーローテーションPeriodic Rekeying(定期再暗号化)
何をするか30日経過したアクティブなキーを退役させ、新しいキーに交代する。以後の新規データは新キーで暗号化退役から1年経過したキーで暗号化されているデータを、新しいキーで再暗号化する
既存データ再暗号化しない(旧キーは復号専用として残る)再暗号化する(旧キーは完全に破棄できる)
既定の動作常に自動で有効。ユーザー操作不要既定では無効。有効化が必要(ACCOUNTADMINがパラメータで設定)
エディション全エディションEnterprise以上

💡 具体例:Periodic Rekeyingの有効化

-- ACCOUNTADMINで実行する
USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET PERIODIC_DATA_REKEYING = TRUE;

ローテーションは「鍵の交代(新規データから適用)」、Rekeyingは「古いデータの再暗号化」です。「30日=ローテーション(自動)」「1年=Rekeying(Enterprise以上・要有効化)」という数字の対応で覚えましょう。

4. Tri-Secret Secure:顧客管理キーの組み込み

より強い統制要件を持つ組織向けに、Tri-Secret Secureという仕組みがあります。Business Criticalエディション以上の機能です。

名前の「Tri(3つ)」は、顧客管理キー・Snowflake管理キー・ユーザー認証情報という3つの秘密でデータが守られることに由来します。「顧客がキーの主導権を持ちたい」「インシデント時に即座にデータを遮断したい」という要件が出たら、Tri-Secret Secureが答えです。

5. クライアントサイド暗号化(外部ステージ)

ここまではSnowflake内部の暗号化の話でしたが、外部ステージ(顧客管理のクラウドストレージ上のデータ置き場)についてはクライアントサイド暗号化もサポートされています。

✅ この節のまとめ

練習問題

問1. Snowflakeに保存されるデータの暗号化を有効にするために必要な操作はどれか。

  1. ACCOUNTADMINがアカウントパラメータで暗号化を有効化する
  2. テーブル作成時にENCRYPTEDオプションを指定する
  3. 何も必要ない。データは常に自動的にAES-256で暗号化され、無効化もできない
  4. Enterpriseエディション以上にアップグレードする
解答と解説を見る

正解:C

Snowflakeでは保存時の暗号化(AES-256)と転送時の暗号化(TLS)が全エディションで常に有効であり、ユーザーによる有効化・無効化の操作は存在しません。AとBのような設定・オプションは不要です(存在しません)。Dも誤りで、暗号化自体はStandardエディションを含む全エディションの標準動作です(エディションが関係するのはPeriodic RekeyingやTri-Secret Secureなどの追加機能です)。

問2. Snowflakeの階層キーモデルの階層として正しい順序(上位→下位)はどれか。

  1. ルートキー → テーブルマスターキー → アカウントマスターキー → ファイルキー
  2. ルートキー → アカウントマスターキー → テーブルマスターキー → ファイルキー
  3. アカウントマスターキー → ルートキー → ファイルキー → テーブルマスターキー
  4. ファイルキー → テーブルマスターキー → アカウントマスターキー → ルートキー
解答と解説を見る

正解:B

階層はルートキーを頂点に、アカウントマスターキー、テーブルマスターキー、ファイルキーの順です。上位キーが下位キーをラップ(暗号化)し、実データを直接暗号化するのは最下層のファイルキーです。Aはアカウントとテーブルの順序が逆、Cは階層関係が崩れており、Dは上下が完全に逆になっています。「広い範囲を守るキーほど上位」と考えると順序を思い出しやすくなります。

問3. 自動キーローテーションとPeriodic Rekeyingの説明として正しいものを2つ選べ。

  1. 自動キーローテーションは30日経過したアクティブキーを新しいキーに交代させ、既存データの再暗号化は行わない
  2. Periodic Rekeyingは退役から1年経過したキーのデータを新しいキーで再暗号化する機能で、Enterprise以上で有効化して使う
  3. 自動キーローテーションはEnterpriseエディション以上で手動で有効化する必要がある
  4. Periodic Rekeyingは毎日すべてのデータを再暗号化する
解答と解説を見る

正解:A、B

ローテーションは「30日でキー交代・新規データから新キー・全エディションで常に自動」(A)、Rekeyingは「1年経過データの再暗号化・Enterprise以上・既定無効で有効化が必要」(B)です。Cは誤りで、ローテーションは全エディションで自動的に行われ、有効化操作は不要です。Dは誤りで、毎日ではなく退役後1年を経過したキーのデータが対象です。

問4. Tri-Secret Secureの説明として最も適切なものはどれか。

  1. Standardエディションで利用できる、パスワードを3回入力させる認証強化機能である
  2. 顧客がKMSで管理するキーとSnowflake管理キーから複合マスターキーを構成する仕組みで、顧客キーを失効させればデータへのアクセスを遮断できる。Business Critical以上で利用できる
  3. データを3つのリージョンに複製して保管する災害対策機能である
  4. Snowflakeがすべてのキーを3重に暗号化する機能で、顧客側の操作は一切関与しない
解答と解説を見る

正解:B

Tri-Secret Secureは顧客管理キー(クラウドKMS)とSnowflake管理キーの複合マスターキーでアカウントのデータを保護する、Business Critical以上の機能です。顧客がキーへのアクセスを取り消すと、Snowflake側だけでは復号できなくなります。Aは認証の話であり無関係です。Cはレプリケーション/災害対策の説明で別機能です。Dは「顧客がキーの主導権を持つ」というTri-Secret Secureの本質を欠いています。