Hyper Protect Crypto Services を使用したサーバー・サイドの暗号化

Hyper Protect Crypto Services を使用して鍵を作成、追加、および管理できます。その後、 IBM® Cloud Object Storage のインスタンスに関連付けてバケットを暗号化できます。

この機能は現在、 Object Storage for Satelliteではサポートされていません。 詳細はこちらをご覧ください。

開始前に

Cloud Object Storage バケットで Hyper Protect Crypto Services を使用する前に、以下が必要です。

IBM Cloud カタログ を使用してサービス・インスタンスが作成され、適切な許可が付与されていることを確認する必要があります。 このセクションでは、開始に役立つステップバイステップの手順の概要を示します。

Hyper Protect Crypto Services のインスタンスのプロビジョニング

適切なサービス・インスタンスをプロビジョンおよびセットアップする方法については、サービス固有の製品ページを参照してください。

Hyper Protect Crypto Servicesのインスタンスを取得したら、ルート鍵を作成し、その鍵の CRN (クラウド・リソース名) をメモする必要があります。 CRN は、バケット作成中にヘッダーに入って送信されます。

Hyper Protect Crypto Servicesで使用するバケットを作成する前に、 可用性と災害復旧に関する関連ガイダンス を確認してください。

Hyper Protect Crypto Services での鍵の作成または追加

Hyper Protect Crypto Services のインスタンスに移動して、サービス・インスタンスを初期化します。 マスター鍵が作成されたら、ルート・キーを生成または入力します。

サービスへの許可の付与

IBM COS での使用を Hyper Protect Crypto Services に許可します。

  1. IBM Cloud ダッシュボードを開きます。
  2. メニュー・バーから、**「管理」 > 「アクセス (IAM)」**をクリックします。
  3. サイド・ナビゲーションで、**「許可」**をクリックします。
  4. 「作成」 をクリックして、許可を作成します。
  5. 「ソース・サービス」 メニューで 「Cloud Object Storage (Cloud Object Storage)」 を選択します。
  6. **「ソース・サービス・インスタンス」**メニューで、許可を付与するサービス・インスタンスを選択します。
  7. **「ターゲット・サービス」メニューで、「Hyper Protect Crypto Services」**を選択します。
  8. **「ターゲット・サービス・インスタンス」**メニューで、許可を付与するサービス・インスタンスを選択します。
  9. リーダー の役割を有効にします。
  10. 「許可」 をクリックします。

バケットの作成

鍵が Hyper Protect Crypto Services に存在し、 IBM COS で使用するサービスを許可した場合、鍵を新規バケットに関連付けることができるようになりました。

  1. Object Storage のインスタンスに移動します。
  2. 「バケットの作成」 をクリックします。
  3. **「カスタム・バケット (Custom bucket)」**を選択します。
  4. バケット名を入力し、回復力を選択し (現在は地域と US Cross Region のみがサポートされています)、ロケーションとストレージ・クラスを選択します。
  5. 「サービス統合 (Service integrations)」 で、 「鍵管理無効 (Key management disabled)」 を切り替えて暗号鍵管理を有効にし、 「既存インスタンスの使用 (Use existing instance)」 をクリックします。
  6. 関連付けられたサービス・インスタンスと鍵を選択し、 「鍵の関連付け」 をクリックします。
  7. 情報が正しいことを確認してください。
  8. 「作成」 をクリックします。

Hyper Protect Crypto Services を使用してバケットの暗号化を管理することを選択できるのは、作成時のみです。 Hyper Protect Crypto Servicesを使用するように既存のバケットを変更することはできません。

バケット作成が 400 Bad Request エラーとメッセージ The Key CRN could not be found で失敗する場合、CRN が正しいこと、および、サービス間許可ポリシーが存在することを確認してください。

Buckets リストで、バケットの Attributes の下に 「表示」 リンクが表示されるようになりました。これは、バケットで Hyper Protect Crypto Services キーが有効になっていることを示しています。 キーの詳細を (他のオブジェクト・メタデータとともに) 表示するには、 View をクリックします。

Hyper Protect Crypto Services を使用して暗号化されたオブジェクトに対して返される Etag 値は、元の暗号化解除されたオブジェクトの実際の MD5 ハッシュである ことに注意してください

また、 REST API または SDK (GoJavaNode.js、または Python) を使用することもできます。

クロス・リージョン・バケットの作成

Hyper Protect Crypto Services インスタンスからルート鍵を使用して COS Cross Region バケットを作成するには、そのインスタンスが フェイルオーバー構成で構成 されている必要があります。

IBM Cloud コンソールまたは CLI を使用して、選択した Hyper Protect Crypto Services インスタンスのフェイルオーバーが正しく構成されていることを確認できます。

IBM Cloud コンソールから、 Hyper Protect Crypto Services インスタンスにナビゲートし、 「概要」 をクリックします。 「フェイルオーバー」セクションには、対応するフェイルオーバー・リージョン内の暗号装置の状況が示されます。

フェイルオーバー・セクションが存在すること、すべての検証チェックが緑色であること、およびその Hyper Protect Crypto Services インスタンスに警告がないことを確認します。 エラーまたは警告が表示される場合、あるいはフェイルオーバー・セクションが存在しない場合は、 詳しいガイダンスについて Hyper Protect Crypto Services の資料を参照してください

CLI を使用して、ターゲット・リソース・グループに属するすべてのインスタンスのすべての暗号装置をリストすることもできます。

ibmcloud tke cryptounits

選択したインスタンスの暗号装置の状況を取得するには、そのインスタンスに関連付けられた暗号装置のリストを作成して比較します。

ibmcloud tke cryptounit-add

ユニットを選択した後、それらの検証パターンを確認できます。

ibmcloud tke cryptounit-compare

すべてが有効であり、同じ検証パターンであることを確認してください。

フェイルオーバー構成の存在が確認されたら、その Hyper Protect Crypto Services インスタンスからのキーを使用して Cross Region バケットの作成に進むことができます。

US Cross Region における Hyper Protect Crypto Services ルート鍵を使用した Cross Region バケットの作成が 500 エラーで失敗した場合、ユーザーは、その Hyper Protect Crypto Services インスタンスのフェイルオーバー構成の状況を (上記の詳細なメソッドを使用して) 確認することが推奨されます。

キー・ライフサイクル管理

Hyper Protect Crypto Services は、暗号鍵のライフサイクルを管理するためのさまざまな方法を提供します。 詳しくは、 Hyper Protect Crypto Services の資料 を参照してください。

鍵のローテーション

鍵のローテーションは、データ・ブリーチのリスク軽減の重要な部分です。 鍵を定期的に変更することで、鍵が失われたり漏えいしたりした場合に起こり得るデータ損失を減らすことができます。 鍵のローテーションの頻度は組織によって異なり、環境、暗号化データの量、データの種別、準拠法など、多くの変動要因に依存します。 米国連邦情報・技術局(NIST) には、適切な鍵の長さの定義と、鍵の使用期間に関するガイドラインが記載されています。

詳しくは、 Hyper Protect Crypto Services で鍵のローテートに関する資料を参照してください。

鍵の無効化および再有効化

管理者は、機密漏れ、暗号漏えい、データ漏えいの発生が疑われる場合に、 一時的に ルート鍵を無効にする必要が ある場合があります。 ルート鍵を無効にすると、その鍵の暗号化操作と復号操作が中断されます。 セキュリティー・リスクがアクティブでなくなったことを確認した後、無効になっているルート鍵を有効にすることで、データへのアクセスを再確立できます。

鍵および暗号消去の削除

暗号消去 (または暗号断片化) とは、データ自体ではなく 暗号鍵を削除 することによって、暗号化されたデータを読み取ることができないようにレンダリングする方法です。 ルート鍵が Hyper Protect Crypto Services で削除されると、そのルート鍵を使用して作成されたすべてのバケット内のすべてのオブジェクトに影響し、事実上、データの「断片化」を行い、バケットに対する読み取りまたは書き込みを防止します。 このプロセスは瞬時には実行されませんが、鍵が削除されてから約 90 秒以内に実行されます。

暗号断片化バケット内のオブジェクトは読み取ることができず、新規オブジェクトは書き込むことができませんが、既存のオブジェクトは、ユーザーによって削除されるまでストレージを消費し続けます。

削除された鍵の復元

管理者は、以前に鍵で保護されたデータにアクセスできるように、 Hyper Protect Crypto Services に インポートしたルート鍵を復元 する必要がある場合があります。 鍵を復元するときには、鍵を「破棄済み」状態から「アクティブ鍵」状態に移動し、その鍵で以前に暗号化されたデータへのアクセスを復元します。 これは、鍵を削除してから 30 日以内に発生する必要があります。

ユーザーによって最初にアップロードされた鍵が削除され、別の鍵素材を使用して復元されると、 データが失われます。 正しい鍵素材を復元できるように、 n-5 個の鍵をどこかにアーカイブしておくことをお勧めします。

Activity Tracking

Hyper Protect Crypto Services のルート鍵が削除、ローテート、中断、有効化、または復元されると、 Hyper Protect Crypto Servicesによって記録されたイベントに加えて、 Activity Tracker 管理イベント (cloud-object-storage.bucket-key-state.update) が生成されます。

鍵に対するライフサイクル・アクションでサーバー・サイドの障害が発生した場合、その障害は COS によってログに記録されません。 イベントが送信されてから 4 時間以内に Hyper Protect Crypto Services がイベント処理の COS から成功を受信しない場合、 Hyper Protect Crypto Services は失敗をログに記録します。

cloud-object-storage.bucket-key-state.update アクションは、 Hyper Protect Crypto Servicesで発生するイベントによってトリガーされます。バケットが Hyper Protect Crypto Services サービスに登録されている必要があります。 この登録は、 Hyper Protect Crypto Services ルート鍵を使用してバケットが作成されるときに自動的に行われます。

2020 年 2 月 26thより前に作成されたバケットは、 Hyper Protect Crypto Services サービスに登録されておらず、現時点では暗号鍵ライフサイクル・イベントの通知を受け取りません。 これらのバケットは、 バケット・リスト操作 を実行し、バケット作成の日付を調べることによって識別できます。 これらのバケットの鍵の状態が Hyper Protect Crypto Servicesから最新であることを確認するには、影響を受ける各バケットのオブジェクトに対して 何らかのデータ操作( PUTGETHEAD など) を実行することをお勧めします。 鍵の状態が Hyper Protect Crypto Services の状態と適切に同期されるようにするために、オブジェクト操作を少なくとも 1 時間間隔で 2 回実行することをお勧めします。

オブジェクト・ストレージの Activity Tracker イベントについて詳しくは、 参照トピック を参照してください。