🦆
【PCSE試験対策】暗号化についてまとめておく
なぜ作成したのか
PCSE(Google Cloud Professional Cloud Engineer)の受験勉強で暗号化の部分をもうすこし整理しておきたい気持ち
参考
- GCPにおけるサーバサイド暗号化(Qiita)
Google Cloudの暗号化
暗号化の基本概念
-
データ暗号化: データを保護するためにアルゴリズムを使用して変換し、不正アクセスを防止。
- 対称鍵暗号: 同じ鍵で暗号化・復号化を行う(例: AES)。
- 非対称鍵暗号: 公開鍵で暗号化し、秘密鍵で復号化(例: RSA)。
-
暗号化の適用場所
- 保存時の暗号化 (Encryption at Rest): データをディスクに保存する前に暗号化。
- 転送時の暗号化 (Encryption in Transit): データをネットワーク経由で送信中に暗号化。
Google Cloudにおける暗号化の主要な方法
保存時の暗号化 (Encryption at Rest)
-
デフォルト暗号化:
- Google Cloudはすべてのデータをデフォルトで保存時に暗号化。
- 使用される技術: AES-256。
-
顧客管理暗号鍵 (CMEK):
- ユーザーがCloud KMS (Key Management Service)で管理する暗号鍵を指定。
- 主な適用サービス: Cloud Storage, BigQuery, Compute Engineなど。
-
顧客供給暗号鍵 (CSEK):
- ユーザーが独自に作成し、Google Cloudに提供する鍵を使用。
転送時の暗号化 (Encryption in Transit)
- Google Cloudは転送時のデータをTLS(Transport Layer Security)で保護。
- サービス間の通信でも暗号化が自動的に行われる。
Key Management Service (KMS)
Google Cloud KMSは暗号鍵を安全に作成、管理、使用するサービス。
-
機能:
- 鍵の作成、削除、回転(定期的な更新)。
- 鍵の使用制限(IAMポリシーと統合)。
- 鍵の監査とロギング(Cloud Audit Logsと統合)。
-
鍵の種類:
- 対称鍵: 高速な暗号化・復号化。
- 非対称鍵: デジタル署名や認証に使用。
Cloud HSM(Hardware Security Module)
- 高度なセキュリティが必要な場合、Google Cloudはハードウェアセキュリティモジュール(HSM)を提供。
- 例: FIPS 140-2 Level 3に準拠。
関連するGoogle Cloudサービス
- Cloud Storage: 保存時にデータが自動的に暗号化。
- BigQuery: クエリ実行結果も暗号化。
- Compute Engine: 永続ディスク、スナップショットが暗号化。
- Cloud SQL: デフォルトで保存時の暗号化が適用。
暗号化のベストプラクティス
-
CMEKを活用する:
- データに対する鍵管理の制御を強化。
-
鍵の回転を自動化:
- 定期的な鍵の更新でセキュリティを向上。
-
監査ログを有効化:
- Cloud Audit Logsで暗号鍵の使用状況を追跡。
-
転送時の暗号化を徹底:
- 外部との通信でもTLSを適用。
暗号化方式とユースケース
セキュリティ要求レベル | 暗号化種別 | 特徴 | 鍵の管理主体 | HSM利用 | ユースケース | 適用サービス・技術 |
---|---|---|---|---|---|---|
最高 | クライアントサイド暗号化 (CSE) | データをアップロードする前に、クライアント側で暗号化。 クラウドプロバイダーには暗号化済みデータのみが保存される。 |
利用者が完全に管理 | 任意 | - 法規制が厳しい業界(金融、医療)。 - プライバシーデータの厳重管理が必要。 |
- Cloud Storage with CSEK - 独自ソリューション(GPG、AESライブラリなど) |
非常に高い | サーバーサイド暗号化 (CMEK with HSM) | 利用者が管理する鍵をHSMで生成・保護。クラウドはその鍵を使用してデータを暗号化。 | 利用者が鍵を管理 | 必須 | - 高度な鍵管理要件(鍵の保管、生成がハードウェアで管理される)。 - 政府規制、重要インフラなど。 |
- Cloud HSM - Cloud Storage, BigQuery, Compute Engine with CMEK |
高い | サーバーサイド暗号化 (CMEK) | 暗号鍵を利用者がCloud KMSで管理。Google Cloudはその鍵を使用してデータを暗号化。 | 利用者が鍵を管理 | オプション | - 鍵管理の制御を利用者が保持したい場合。 - 暗号鍵のライフサイクルを規定したい場合。 |
- Cloud KMS - Cloud Storage, BigQuery, Persistent Disks with CMEK |
中~高 | サーバーサイド暗号化 (CSEK) | 利用者が提供する鍵を用いてGoogle Cloudがデータを暗号化。鍵はGoogleに保存されない。 | 利用者が鍵を管理 | 不可 | - 利用者が鍵をローカルで管理したい場合。 - Google Cloudへの信頼度を分散したい場合。 |
- Cloud Storage, BigQuery, Persistent Disks with CSEK |
中程度 | サーバーサイド暗号化 (デフォルト) | Google Cloudが暗号鍵を自動管理し、データを暗号化。ユーザーは暗号鍵の管理を行わない。 | Google Cloudが管理 | 不可 | - 暗号化要件があるが鍵管理の負担を避けたい場合。 - 一般的なクラウド利用シナリオ。 |
- デフォルトで適用(Cloud Storage, BigQuery, Compute Engineなど) |
低い | 転送時の暗号化 (Encryption in Transit) | データが転送中に暗号化される。通常、TLSプロトコルを使用。 | Google Cloudが管理 | 不可 | - クラウド間またはユーザーとクラウド間のデータ通信。 | - HTTPS, TLS 1.2/1.3 - Cloud Load Balancing, Cloud Storage, BigQueryなど |
Discussion