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