0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloud Storageにデータをアーカイブする方法:TNOアプローチの解説

Last updated at Posted at 2024-06-22

はじめに

データをGoogle Cloud Storageにアーカイブする際、特に機密性の高いデータを扱う場合には「Trust No One(TNO)」アプローチを使用することが推奨されます。このアプローチにより、クラウドプロバイダーのスタッフがデータを解読できないようにすることができます。本記事では、TNOアプローチを使用してデータを暗号化し、Cloud Storageに安全に保存する方法を解説します。

基本的な概念と原則

Cloud Storage

Google Cloudのオブジェクトストレージサービスで、バイナリーデータなどの様々なデータを保存、取得することができます。耐久性とスケーラビリティがあり、データのアーカイブやバックアップに適しています。

Trust No One(TNO)

機密データのセキュリティアプローチで、データを所有者自身が暗号化し、キーを保持します。クラウドプロバイダーや他の第三者がデータを解読できないようにすることを目的としています。

顧客指定の暗号化キー(CSEK)

Google Cloud Storageで使用できるセキュリティ機能の一つで、ユーザー自身が管理する暗号化キーを使用します。このキーはGoogleでは管理されず、ユーザーのみが管理します。

.boto設定ファイル

gsutilコマンドラインツールの設定ファイルであり、CSEKなどの設定を指定することができます。

gsutil

Google Cloud Storageと通信するためのPython製コマンドラインツールで、データのアップロードやダウンロードなどの操作を行います。

gcloud kms keys

Google Cloud KMSで暗号キーを作成するコマンドです。キーのローテーションや暗号化、復号化が可能です。

要件を満たすためのステップ

1. gcloud kms keys createを使用して共通鍵を作成

まず、共通鍵を作成します。この鍵を使用してデータを暗号化します。

# KMSキーリングを作成
gcloud kms keyrings create my-key-ring --location global

# KMS暗号キーを作成
gcloud kms keys create my-key --location global --keyring my-key-ring --purpose encryption

2. gcloud kms encryptを使用して各アーカイブファイルを暗号化

次に、作成したKMSキーを使用してアーカイブファイルを暗号化します。

# ファイルを暗号化
gcloud kms encrypt --location global --keyring my-key-ring --key my-key \
  --plaintext-file my-archive-file.txt --ciphertext-file my-archive-file.txt.enc

3. gsutil cpを使って、暗号化された各ファイルをCloud Storageバケットにアップロード

暗号化されたファイルをCloud Storageにアップロードします。

# 暗号化されたファイルをアップロード
gsutil cp my-archive-file.txt.enc gs://my-bucket/

4. .boto設定ファイルに顧客指定の暗号化キー(CSEK)を指定

.boto設定ファイルにCSEKを指定して設定します。

# .boto設定ファイルの例
[GSUtil]
encryption_key = <base64-encoded encryption key>

5. gsutil cpを使用して、各アーカイブファイルをCloud Storageバケットにアップロード

先ほどと同じように、gsutil cpコマンドでファイルをアップロードします。この際、CSEKが適用されます。

# CSEKを使用してファイルをアップロード
gsutil cp my-archive-file.txt.enc gs://my-bucket/

6. セキュリティチームのみがアクセスできる別のプロジェクトにCSEKを保存

セキュリティチームのみがアクセス可能なプロジェクトにCSEKを安全に保存します。

# CSEKを保存するためのプロジェクトに移動
gcloud config set project my-security-project

# キーを保存(例:Secret Managerを使用)
echo -n "<base64-encoded encryption key>" | gcloud secrets create my-csek --data-file=-

結論

以上の手順で、機密データをTNOアプローチで暗号化し、Cloud Storageに安全に保存することができます。この方法により、クラウドプロバイダーのスタッフがデータを解読するリスクを排除し、データの機密性を保護することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?