CloudKMS keyによるBigQuery データセット保護が、generally availableになりました。
#BigQuery custome-managed encryption is now generally available! If you need to protect your data with an encryption key that you manage, you can use a #CloudKMS key with BigQuery. @googlecloud @MayaKaczorowski https://t.co/1OfkTRLp7E
— Choden (@choden1111) 2018年2月12日
一部制限があるので注意が必要です。
- CloudKMS keyのリージョンとBigQuery データセットが同じである必要がある
- CloudKMS keyにはglobal、マルチリージョン(us、asia、europe)には対応していない
Cloud KMS keyとBigQueryのデータセットが異なると以下エラーとなります。
The location
for the specified Cloud KMS key is us-central1. This location is not supported
for the BigQuery dataset location EU. Please select a Cloud KMS key in one of
the supported Cloud KMS locations: europe-west1, europe.
Encrypter/Decrypter roleをもったService Accountを登録する必要があります。
Service Account名は、GCPのプロジェクトにより異なります。bq show –encryption_service_accountで確認することができます。
このService Accountを削除してしまうと、Cloud KMSに紐づいたデータセットに対して、アクセスできなくなります。
bq load --destination_kms_key projects/XXXXXXXXXXXXXXXXXXX/locations/us-central1/keyRings/bqprotectkey/cryptoKeys/key testdataset.emi010000_2 gs://upload_bucket_us/emi010000.csv schema.json
bq query --use_legacy_sql=false --destination_kms_key projects/XXXXXXXXXXXXXXXXXXX/locations/us-central1/keyRings/bqprotectkey/cryptoKeys/key " SELECT name FROM testdataset.newtable "
bq copyにより、CloudKMS keyを紐づいたまま、テーブルをコピーすることが可能です。
最近対応したDDLでもCloudKMSを有効化できます。CloudKMS keyを変更することも。
As BigQuery provides managed storage, long-term inaccessible data is not compatible with BigQuery’s architecture. If the Cloud KMS key of a given BigQuery table is not available and not accessible for 60 consecutive days, BigQuery may choose to delete the table and its associated data. Before the data is deleted, BigQuery will send an email to the email address associated with the billing account at least 7 days before the deletion.
Cloud KMS keyがavailableでない場合、60日連続して続いた場合、データが削除されるかもしれない。53日前にはメールで通知があるようだが。