Go to main content

Oracle® ZFS Storage Appliance RESTful API ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2021 年 8 月
 
 

暗号化鍵の管理


注 -  暗号化は、特定のモデルに対してライセンス付与された機能です。詳細は、「オラクル社のソフトウェアライセンス契約書 (「SLA」) およびハードウェアシステムと組み込みのソフトウェアオプションの権利書」およびソフトウェアリリースのライセンス情報ユーザーマニュアルを参照してください。

Oracle ZFS Storage Appliance は、プール、プロジェクト、および個々のシェア (ファイルシステムおよび LUN) に対する透過的なデータ暗号化を提供します。アプライアンスには組込みのローカルキーストアが含まれており、Oracle Key Manager (OKM) と Key Management Interoperability Protocol (KMIP) 暗号化もサポートされています。各暗号化プロジェクトまたはシェアでは、ローカルキーストア、OKM キーストアまたは KMIP キーストアからのラッピング鍵が必要とされます。データ暗号化鍵はストレージアプライアンスによって管理され、ラッピング鍵によって暗号化された状態で永続的に保存されます。

暗号化されたプール、プロジェクト、またはシェアを作成する前に、暗号化鍵を作成する必要があります。

  • キーストアはプールの作成前に構成する必要があるため、初期システム構成時または出荷時リセット後に暗号化プールを作成することはできません。

  • 暗号化プールでシェアまたはプロジェクトのレプリケーションを設定する前に、ソースで使用する暗号化鍵がターゲットでも使用できることを確認してください。

次の表では、暗号化鍵を管理するために使用できる RESTful API リクエストについて説明します。表では、keystore の値は localokm または kmip です。key の値は keyname プロパティーの値です。鍵のプロパティーについては、暗号化鍵の一覧表示で説明されています。

表 67  暗号化鍵の操作
リクエスト
パス /api/storage/v{1|2} の後ろに追加
説明
GET
/encryption/keystore
すべての keystore プロパティーを一覧表示します
PUT
/encryption/keystore
keystore プロパティーを変更します。
GET
/encryption/keystore/keys
すべての keystore 鍵を一覧表示します。
GET
/encryption/keystore/keys/key
指定された鍵の詳細を取得します。
POST
/encryption/keystore/keys
鍵を作成します。
DELETE
/encryption/keystore/keys/key
鍵を破棄します。
GET
/encryption/keystore/keys/key/dependents
この鍵に依存しているシェアを一覧表示します

ローカルキーストアの構成

ローカルキーストアを構成するには、マスターパスフレーズを設定します。ローカルキーストアの場合、一覧表示または変更できるプロパティーは、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 キーストアの構成

次の表では、OKM キーストアを構成するために設定する必要があるプロパティーについて説明します。

表 68  OKM キーストアのプロパティー
プロパティー
説明
agent_id
string
エージェント ID。
registration_pin
string
この値は、OKM セキュリティー担当者から支給されます。
server_addr
string
OKM サーバーの IP アドレス。

前述のプロパティーが設定されているかどうかを確認します。

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_idregistration_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 キーストアの構成

KMIP キーストアは、Oracle Key Vault などの KMIP 準拠のサーバーとともに使用されます。Oracle Key Vault は、専用サーバーにインストールされ、OASIS KMIP 標準をサポートするソフトウェアアプライアンスです。

KMIP を使用した暗号化を構成するには、鍵または証明書のアップロードで説明されているように、KMIP 管理者から受信した鍵および証明書をアップロードします。

鍵および証明書をアップロードしたら、KMIP サーバー、クライアント証明書および鍵名を指定します。

次の表では、KMIP キーストアを構成するために設定するプロパティーについて説明します。

表 69  KMIP キーストアのプロパティー
プロパティー
説明
server_list
list
KMIP サーバーの IP アドレスまたはホスト名。このプロパティーには複数の値を設定できます。
client_cert
string
KMIP サーバー管理者によって提供されたファイルから作成した証明書。
host_match
boolean
サーバーのホスト名をサーバー証明書内のサーバーのアイデンティティに対して検証します。
destroy_key_on_remove
boolean
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 形式の鍵の配列が含まれています。次の表では、暗号化鍵のプロパティーについて説明します。

表 70  暗号化鍵のプロパティー
プロパティー
説明
cipher
string
AES 暗号化タイプ。
key
string
(ローカル専用) 暗号化された状態で保存された 16 進エンコード raw 256 ビット鍵。値を指定しない場合、この値は自動的に生成されます。
keyname
string
特定の鍵。
href
string
鍵へのパス。

次の例では、すべてのローカル鍵、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