IBM Cloud Databasesでは通常、ランダムに生成された鍵を使ってディスクが暗号化されていますが、自分で鍵を持ち込んで暗号化することもできます。鍵はKey Protectというサービスで管理します。新規に鍵を生成出来る他、既存の鍵をインポートして利用することが可能です。
Key Protect自体は裏側でHSM(ハードウェア・セキュリティー・モジュール)という非常にセキュリティの高い仕組みで鍵を保管しています。
Key Protect サービスの生成
IBM CloudのカタログからKey Protectサービスを作成します。地域はどこでも良いですが、後ほどDBをデプロイする予定の地域にしてください。
作成できたら、Manageタブへ遷移すると鍵の管理画面が表示されます。ここから鍵を生成、もしくはインポートをします。
鍵の生成
Key Typeは2種類あります。
- ルート鍵 (Root key)
- ルート鍵は、Key Protectの1次リソースです。 データ・サービス内に保管されている他の鍵をラッピング (暗号まです。Key Protectでルート鍵の作成、保管、およびライフサイクルの管理を行うことができます。これにより、クラウド内に保管された他の鍵を制御できます。 標準鍵とは異なり、ルート鍵はKey Protectサービスから外に出ることはできません。
- 標準鍵 (Standard key)
- 標準鍵は、パスワードや暗号鍵などの機密事項を永続化する手段です。Key Protectを使って標準鍵を保管すると、機密事項用のハードウェア・セキュリティー・モジュール (HSM) ストレージ、Cloud Identity and Access Management (IAM) を使用したリソースへのきめ細かいアクセス制御、および Activity Tracker を使用したサービスへの API 呼び出しの監査機能が使用可能になります。
サービス認証
ICDがKey Protectを使えるようにするために、アクセス権を付与します。
上部のメニューから「Access(IAM)」 → 「Authorizations」 → 「Create」 で新規にアクセス権を作成します。
アクセスを許可するサービスを指定します。Source ServiceにはICDのサービスを選択します。
付与する役割はReaderを選択します。(というかそれしか選べない)
ICD(Databases for PostgreSQL) インスタンスの作成
カタログからICDサービス(今回はDatabases for PostgreSQL)を選択します。
ディスクの暗号化に使う鍵を選べるようになっているので、鍵を保管しているKey Protectのインスタンスを選択します。DBをデプロイする地域とKey Protectのリージョンがと同じ時しかインスタンスが選べないので注意してください。
インスタンスを選択すると、サービスが管理している鍵が表示されます(図右側)。
先ほど指定した鍵で暗号化されていることがわかります。