Oracle ZFS Storage Appliance は、プール、プロジェクト、および個々のシェア (ファイルシステムおよび LUN) に対する透過的なデータ暗号化を提供します。アプライアンスには組込みのローカルキーストアが含まれており、Oracle Key Manager (OKM) と Key Management Interoperability Protocol (KMIP) 暗号化もサポートされています。各暗号化プロジェクトまたはシェアでは、ローカルキーストア、OKM キーストアまたは KMIP キーストアからのラッピング鍵が必要とされます。データ暗号化鍵はストレージアプライアンスによって管理され、ラッピング鍵によって暗号化された状態で永続的に保存されます。
暗号化されたプール、プロジェクト、またはシェアを作成する前に、暗号化鍵を作成する必要があります。
キーストアはプールの作成前に構成する必要があるため、初期システム構成時または出荷時リセット後に暗号化プールを作成することはできません。
暗号化プールでシェアまたはプロジェクトのレプリケーションを設定する前に、ソースで使用する暗号化鍵がターゲットでも使用できることを確認してください。
次の表では、暗号化鍵を管理するために使用できる RESTful API リクエストについて説明します。表では、keystore の値は local、okm または kmip です。key の値は keyname プロパティーの値です。鍵のプロパティーについては、暗号化鍵の一覧表示で説明されています。
|
ローカルキーストアを構成するには、マスターパスフレーズを設定します。ローカルキーストアの場合、一覧表示または変更できるプロパティーは、master_passphrase のみです。
master_passphrase が設定されているかどうかを確認します。
GET /api/storage/v2/encryption/local HTTP/1.1
出力:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/local", "master_passphrase": false, "keys": [] } }
master_passphrase の値を指定します。
PUT /api/storage/v2/encryption/local HTTP/1.1 Host: zfs-storage.example.com:215 Content-Type: application/json Accept: application/json { "master_passphrase": "passphrase" }
master_passphrase が設定されていることを確認します。
GET /api/storage/v2/encryption/local HTTP/1.1
出力:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/local", "master_passphrase": true, "keys": [] } }
次の表では、OKM キーストアを構成するために設定する必要があるプロパティーについて説明します。
|
前述のプロパティーが設定されているかどうかを確認します。
GET /api/storage/v2/encryption/okm HTTP/1.1
出力:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/okm", "agent_id": "", "registration_pin": false, "server_addr": "", "keys": [] } }
agent_id、registration_pin、および server_addr の値を指定します。
PUT /api/storage/v2/encryption/okm HTTP/1.1 Host: zfs-storage.example.com:215 Content-Type: application/json Accept: application/json { "agent_id": "agent-id", "registration_pin": "reg-pin", "server_addr": "ipaddr" }
KMIP キーストアは、Oracle Key Vault などの KMIP 準拠のサーバーとともに使用されます。Oracle Key Vault は、専用サーバーにインストールされ、OASIS KMIP 標準をサポートするソフトウェアアプライアンスです。
KMIP を使用した暗号化を構成するには、鍵または証明書のアップロードで説明されているように、KMIP 管理者から受信した鍵および証明書をアップロードします。
鍵および証明書をアップロードしたら、KMIP サーバー、クライアント証明書および鍵名を指定します。
次の表では、KMIP キーストアを構成するために設定するプロパティーについて説明します。
|
host_match および destroy_key_on_remove の詳細は、"Key Management Interoperability Protocol (KMIP) Keystore" in Oracle ZFS Storage Appliance 管理ガイド、Release OS8.8.x を参照してください。
前述のプロパティーが設定されているかどうかを確認します。
GET /api/storage/v2/encryption/kmip HTTP/1.1
出力:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/kmip", "server_list": [ "ipaddr-or-hostname" ], "client_cert": "134a9138-29a0-4720-80bb-ec2b13457c39", "host_match": false, "destroy_key_on_remove": true, "keys": [], ... detailed information about the private key, certificate, and certificate authority ... } }
キーストアの構成後、鍵を作成するには、鍵名を設定するだけです。次の例では、新しい KMIP 鍵を作成します。結果例については、暗号化鍵の一覧表示を参照してください。
リクエストの例:
POST /api/storage/v2/encryption/kmip/keys HTTP/1.1 Host: zfs-storage.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Content-Type: application/json Accept: application/json { "keyname": "atz-1-27-2021" }
このコマンドは、すべての暗号化鍵のプロパティーを一覧表示します。成功したコマンドに対し、HTTP ステータス 200 (OK) が返されます。HTTP 本文には、JSON 形式の鍵の配列が含まれています。次の表では、暗号化鍵のプロパティーについて説明します。
|
次の例では、すべてのローカル鍵、OKM 鍵および KMIP 鍵を一覧表示します。
リクエストの例:
GET /api/storage/v2/encryption/local/keys /api/storage/v2/encryption/okm/keys /api/storage/v2/encryption/kmip/keys HTTP/1.1
結果例:
この結果は、このアプライアンスにローカル鍵または OKM 鍵が存在せず、KMIP 鍵が 1 つ存在することを示しています。
{ "keys": { } } { "keys": { } } { "keys": [{ "cipher": "AES", "keyname": "atz-1-27-2021", "href": "/api/storage/v2/encryption/kmip/keys/key-000" }] }
dependents 問合せは、指定した鍵で暗号化されたシェア、プロジェクトまたはプールを一覧表示します。
次の例は、デフォルトプール内のファイルシステム fs-enc のみが atz-1-27-2021 KMIP 鍵で暗号化されていることを示しています。
リクエストの例:
GET /api/storage/v2/encryption/kmip/keys/atz-1-27-2021/dependents HTTP/1.1
結果例:
{ "dependents": [ "pool-0/local/default/fs-enc" ] }
鍵を削除するには、(鍵名ではなく) 鍵の href プロパティーの値を使用します。削除に成功すると、HTTP ステータス 204 (No Content) が返されます。
鍵を削除すると、その鍵を使用しているすべてのプールおよびシェアのすべてのデータにアクセスできなくなります。これは、セキュアなデータ破棄と同等であり、鍵をバックアップして鍵復元に備えている場合を除き、永続的で取り消し不能です。
リクエストの例:
DELETE /api/storage/v2/encryption/kmip/keys/key-000 HTTP/1.1 Host: zfs-storage.example.com:215 Accept: application/json