Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

kmipcfg (8)

名前

kmipcfg - PKCS#11 KMIP プロバイダの構成

形式

kmipcfg create [-i] <-o property=value> ... <server_group>
kmipcfg destroy [-f] [server_group]
kmipcfg disable [-f] [server_group]
kmipcfg enable [-f] [server_group]
kmipcfg extract [-p <filename>] [-s][-t <all|pkcs11|libkmip>] <server_group>
kmipcfg extract [-p <filename>] [-s] [-i] [-t <all|pkcs11|libkmip>]
[-S <service_instance_fmri> [-N <property_group_name>]
[-T <property_group_type>] [-o cred_source_type=<raw|path>]
[[[-o private_key=<path> -o cert=<path> [-o ca_cert=<path>]] |
[-o p12_bundle=<path>] [-o p12_bundle_pass=<locator>]]
[-o property=<value> [-o property=<value>[...]]]
kmipcfg help [subcommand]
kmipcfg list [-c] [-s] [-H [-v]] [-o <property>] [server_group]
kmipcfg set [-f ] <-o property=value> ... <server_group>

説明

kmipcfg コマンドは、Solaris 暗号化フレームワーク (SCF) 内の PKCS#11 Key Management Interoperability Protocol (KMIP) プロバイダの状態を初期化および管理するために使用されます。

KMIP プロバイダ (pkcs11_kmip) は、システムにリモート KMIP サーバーへのアクセスを提供します。クライアントとサーバーの間の通信は、TLS でセキュリティー保護されます。複数のリモート KMIP システムをサーバーグループにグループ化できます。同じ資格情報を使用する KMIP クライアントは、サーバーグループ内のすべてのサーバーと通信できると見なされます。サーバーグループ内のすべてのサーバーは、同じ KMIP プロトコルバージョンをサポートする必要があります。KMIP サーバーグループのいずれかのメンバーとの通信によって、ほかのサーバーグループメンバーのサポートされる KMIP プロトコルバージョンに関する情報が提供されます。

PKCS #11 フレームワークでは、KMIP プロバイダがスロットとして機能し、各 KMIP サーバーグループがトークンとして機能します。システム管理者は、cryptoadm(8) を使用して KMIP プロバイダを有効にし、kmipcfg コマンドを使用して KMIP トークンを構成します。pktool(1) コマンドを使用すると、PKCS#11 の観点からトークンの状態を確認できます。

プライベート KMIP クライアント構成

ユーザー固有 (プライベート) KMIP 構成はファイルベースです。個々の Solaris KMIP クライアントコンポーネントの構成ファイルはユーザー固有のディレクトリに保存されます。構成へのアクセスは、構成ストアを持つそれぞれのターゲットファイルシステムのアクセス制御メカニズムによって決まります。

KMIPTOKEN_DIR 環境変数は、KMIP トークンに関するベースディレクトリを指します。KMIP トークンは、KMIPTOKEN_DIR 環境変数内のサブディレクトリで表されます。構成された場合、各トークンディレクトリには、KMIP サーバーとの通信に必要な KMIP 構成および資格情報が格納されます。

KMIPTOKEN_DIR 環境変数のデフォルトは /var/user/$USERNAME/kmip です。USERNAME 環境変数は、実行される kmipcfg コマンドの RUID に関連付けられた対応するユーザー名です。

共有 KMIP クライアント構成

ユーザーに依存しない (共有) KMIP クライアント構成は、Solaris KMIP クライアントコンポーネントを表す smf サービスインスタンスに格納されています。承認されたユーザーだけがこれらのインスタンスから情報にアクセスできます。使用される承認モデルは、smf_security(7) のマニュアルページで説明している rbac 実装に従います。詳細は、smf(7) および rbac(7) のマニュアルページを参照してください。

共有 KMIP 構成へのアクセスが認められているユーザーの場合、kmipcfg list の出力に Default KMIP token サーバーグループが表示されます。同じ名前のトークンも、pktool tokens コマンドの出力に一覧表示されます。

サブコマンド

サポートされているサブコマンドは次のとおりです。

kmipcfg create [–i] <–o property=value> ... <server_group>

新しい server_group (KMIP トークン) を作成します。パス KMIPTOKEN_DIR/<server_group> 内にディレクトリが作成され、KMIP クライアント構成および資格情報が取り込まれます。

サーバーグループ名は、英数字、ダッシュおよびアンダースコア文字に制限されます。サーバーグループ名の最大長は 32 バイトです。

–i オプションは、KMIP サーバーグループの対話型構成を指定します。

構成および資格情報は、property=value のペアを使用して指定できます。次のプロパティーを設定できます。

state=enabled | disabled

サーバーグループのオプションの状態。指定されていない場合、状態を有効に設定します。

server_list=<ip_address|host_name>[:<port_number],..

KMIP サーバーの IP アドレスまたはホスト名のコンマで区切られた必須リスト。IPv6 アドレスとポートを指定する場合、IPv6 アドレスを角括弧で囲む必要があります。port_number が指定されていない場合は、デフォルトのポート 5696 が使用されます。

connection_timeout=<connection_timeout>

KMIP サーバーへの接続がタイムアウトになるまでのオプションの秒数です。デフォルトの接続タイムアウトは 5 秒です。

encode_type=TTLV

KMIP プロトコルによって転送されるデータのエンコーディングのオプション形式。サポートされる値は TTLV のみです。

failover_limit=<allowed_number_of_failovers>

server_list で定義された KMIP サーバー間で許可されるフェイルオーバーのオプションの上限。failover_limit が指定されていないか、または 0 に設定されている場合は、フェイルオーバー制限のデフォルトは 2 です。failover_limit-1 に設定されている場合、フェイルオーバーは無効になります。

client_keystore=<path_to_the_keystore>

KMIP トークンディレクトリへのオプションのパス。プロパティーのデフォルト値は、連結された文字列 $KMIPTOKEN_DIR/<server_group> です。

p12_bundle=<path_to_pkcs#12_bundle>

PKCS#12 バンドルへの必須パス。相対パスを指定する場合、パスは client_keystore ディレクトリを基準にして解決されます。

cache_ttl=<object_cache_entry_time_to_live_seconds>

pkcs11_kmip(7) オブジェクトキャッシュエントリの生存期間の値。cache_ttl のデフォルト値は 300 秒です。

server_cert_subj_cn_verify=enabled | disabled

サーバー証明書でのサブジェクト CN 検証を有効または無効にします。KMIP サーバー実装の中には、TLS ハンドシェイク中に、サーバーから提供されたサーバーの証明書の CN に間違って入力するものがあります。このオプションはこれを回避するもので、TLS セッションの確立を継続します。デフォルトでは、server_cert_subj_cn_verify は有効です。


注 -  セキュリティー上の理由のため、通常は、このオプションを変更しないことをお勧めします。
secondary_authentication=none | username-password, <username-password-parameters> | device, <device-parameters>

セカンダリ認証のオプションタイプ。指定されない場合、セカンダリ認証パラメータは構成されません。選択したセカンダリ認証のタイプが username-password または device である場合、コンマ区切りの構成プロパティーを付加する必要があります。

username-password-parameters: username, password
device-parameters: device_serial_number, password,
                    device_identifier, network_identifier,
                    machine_identifier, media_identifier
'password' property requires a locator string:
                    password=prompt | file:// | https://

各表記の意味は次のとおりです。

prompt

パスワードを求めるコマンドプロンプト。

file://<filename>

ファイルシステム内のパスフレーズファイルの場所。

https://<location>

セキュアなサーバー上のパスフレーズファイルの場所。URL 上の GET はパスワード列のみ返します。サーバーによって提供される証明書は、libcurl および OpenSSL で信頼されているものでなければなりません。

セカンダリ認証のデフォルトは「なし」です。

token_state=enabled | disabled

それぞれの PKCS#11 トークンを有効または無効にします。

kmipcfg destroy [–f] [server_group]

KMIP server_group を破棄します。server_group が指定されない場合、すべてのサーバーグループが破棄されます。kmipcfg create コマンドで取り込まれたすべてのコンポーネントがシステムから削除されます。KMIP server_group で指定される KMIP トークンが、PKCS#11 トークンの一覧から削除されます。

–f

KMIP サーバーグループの強制的な削除を指定します。サーバーグループが指定されない場合、このオプションによってすべてのサーバーグループが強制的に削除されます。

kmipcfg disable [–f] [server_group]

KMIP server_group を無効にします。server_group が指定されない場合、すべてのサーバーグループが無効になります。KMIP server_group で指定される KMIP トークンが、PKCS#11 トークンの一覧から削除されます。

–f

すべての KMIP サーバーグループの強制的な無効化を指定します。このオプションは、server_group が指定されている場合は効果がありません。


注 -  このコマンドは kmipcfg set -o state=disabled と同等です。
kmipcfg enable [–f] [server_group]

KMIP server_group を有効にします。server_group が指定されない場合、すべてのサーバーグループが有効になります。KMIP server_group で指定される KMIP トークンが、PKCS#11 トークンの一覧に再表示されます。

–f

すべての KMIP サーバーグループの強制的な無効化を指定します。このオプションは、server_group が指定されている場合は効果がありません。


注 -  このコマンドは kmipcfg set -o state=enabled と同等です。
kmipcfg extract [–p <filename>] [–s] [–t <all | pkcs11libkmip>] <server_group>

既存のサーバーグループ構成に基づいて SMF プロファイルを生成します。SMF プロファイルは、さまざまなインストールおよび構成のコンテキストで使用できます。詳細は、service_bundle(5), smf(7), installadm(8), sysconfig(8), および zoneadm(8) のマニュアルページを参照してください。

–p <filename>

抽出されたプロファイルは、<filename> に格納されます。extract サブコマンドが –p オプションを指定せずに実行されると、生成されるプロファイルは標準出力に出力されます。

SMF プロファイルは、.xml 拡張子を持つ必要があります。

–s

このオプションは機密情報を抽出します。たとえば、エンコードされた証明書や PKCS#12 バンドル PIN です。

–t <all | pkcs11 | libkmip>

svc:/system/pkcs11:kmip サービスインスタンス (pkcs11)、svc:/system/kmip/client:default サービスインスタンス (libkmip)、またはこれらの両方 (all) のプロファイルを抽出します。デフォルトではすべてのプロファイルが抽出されます。

<server_group>

抽出された AI プロファイルで使用される構成を持つ既存のサーバーグループ。

kmipcfg extract [–p <filename>] [–s] [–i] [–t <all | pkcs11 | libkmip>] [–S <service_instance_fmri> [–N <property_group_name>] [–T <property_group_type>] [–o cred_source_type=<raw | path>] [[[–o private_key=<path> –o cert=<path> [–o ca_cert=<path>]] | [–o p12_bundle=<path>] [–o p12_bundle_pass=<locator>]] [–o property=<value> [–o property=<value>[...]]]

オプション引数で提供されたパラメータに基づいて、SMF プロファイルを生成します。

–i

対話形式で構成プロパティーを求めます。

–N <property_group_name>

指定されない場合、デフォルトのプロパティーグループ名である kmip_client_default が使用されます。

–T <property_group_type>

指定されない場合、デフォルトのプロパティーグループタイプである kmip_client_config が使用されます。

–o cred_source_type=raw | path

private_key, cert, ca_cert, p12_bundle プロパティーに格納されたデータがファイルシステム内の所定のファイルへのパスになるか (path)、それともファイルが読み取られ、Base64 にエンコードされ、インデックスが付けられ、それぞれのプロパティー値に格納されるか (raw) を設定します。指定されていない場合、オプションはデフォルトで raw に設定されます。

–o private_key=<path>

クライアントの秘密鍵へのパス。

相対 path を指定する場合、pathclient_keystore ディレクトリを基準にして解決されます。

–o cert=<path>

クライアントの証明書へのパス。

相対 path を指定する場合、pathclient_keystore ディレクトリを基準にして解決されます。

–o ca_cert=<path>

設定されていない場合、サーバーの証明書は、オペレーティングシステムに組み込まれている CA 証明書を使用して検証されます。パスが、ファイルではなくディレクトリを指す場合、そのディレクトリ内のファイルは、PEM 形式の CA 証明書である必要があります。このような証明書はすべてロードされ信頼されます。c_rehash (1openssl) を使用して、証明書のハッシュを計算し、証明書を含むファイルへのシンボリックリンクを作成します。

相対 path を指定する場合、pathclient_keystore ディレクトリを基準にして解決されます。

–o p12_bundle=<path>

指定されている場合、提供される PKCS#12 バンドルにはクライアント鍵、クライアント証明書、および CA 証明書が含まれています。

相対 path を指定する場合、pathclient_keystore ディレクトリを基準にして解決されます。

–o p12_bundle_pass=<locator>

ロケータは、PKCS#12 バンドルのパスフレーズのソースを指します。ロケータの詳細は、kmipcfg create コマンドの secondary_authentication プロパティーセクションにあるパスワードの説明を参照してください。

–o property=<value>

このオプションは、kmipcfg create コマンドで指定された、残りのサーバーグループ固有のプロパティーを設定します。

残りのオプションについては、kmipcfg extract のセクションを参照してください。

kmipcfg help [subcommand]

すべてのサブコマンドまたは指定されたサブコマンドのヘルプを出力します。

kmipcfg list [–c] [–s] [–o property[,property,..]] [server_group]

kmipcfg create コマンドを使用して構成されているパラメータを一覧表示します。server_group が指定されている場合、server_group の構成パラメータのみが一覧表示されます。

–c

非対話型の kmipcfg create コマンドによって使用できる形式で構成パラメータを一覧表示します。機密情報は出力されません。パスワードのロケータ文字列には常に prompt に設定されます。–H オプションを指定した場合は、–c オプションは使用できません。

–s

KMIP サーバーグループ構成内に格納される機密情報 (たとえば、セカンダリ認証で使用されるパスワード) を出力します。–c オプションを指定した場合は、–s オプションは使用できません。

–H

セミコロンを区切り文字として使用して、解析可能な形式で構成を一覧表示します。

–v

このオプションは、–H オプション (値) で与えられた出力とともに、それぞれのプロパティー名のヘッダー行を出力します。

–o

特定の構成パラメータを一覧表示します。複数のパラメータを区切る場合はコンマを使用します。

kmipcfg set [–f] <–o property=value> ... <server_group>

server_group の構成パラメータを設定します。構成パラメータの一覧については、kmipcfg create コマンドを参照してください。

–f

すべての KMIP サーバーグループ内のプロパティーの強制的な設定を指定します。このオプションは、server_group が指定されている場合は効果がありません。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

致命的なエラーが発生しました。

2

使用法エラーが発生しました。

使用例 1 非対話形式での KMIP サーバーグループの作成

次のコマンドは、1 つの KMIP サーバーのみを含むサーバーグループ「KMIP_server」を作成します。通信を認証して通信のセキュリティーを保護するために使用される資格情報は、kmip-server-1_keys.p12 PKCS#12 バンドルに提供されます。

$ % kmipcfg create -o server_list=kmip-server-1.example.com:5696 \
-o p12_bundle=kmip-server-1_keys.p12 KMIP_server
使用例 2 対話形式での KMIP サーバーグループの作成

次のコマンドは、サーバーグループ「KMIP_cluster」を対話型モードで構成します。デフォルトのプロパティー値を確認するには、Enter キーを押します。

% kmipcfg create -i KMIP_cluster
KMIP server: kmip-server-1.example.com
KMIP port [5696]:
Add another KMIP server [y|N]: y
KMIP server: kmip-server-2.example.com
KMIP port [5696]: 5697
Add another KMIP server [y|N]:
Connection timeout [5]:
Cache object time to live [300]:
Encode type [TTLV]: TTLV
Failover limit [3]: 1
Client keystore [/var/user/jf/kmip/KMIP_cluster]:
PKCS#12 bundle: /tmp/kmip_cluser_credentials.p12
Verify CN in the subject of the server certificate [Y|n]:
Secondary authentication [none]: username-password
Username: jf_kmip
Password locator [prompt]:
Disable the respective PKCS#11 token [y|N]:
'username-password' password: *********
使用例 3 KMIP サーバーグループの無効化

次の例では、1 つの KMIP サーバーグループを無効にします。

# kmipcfg disable
Do you really want to disable server group 'Default KMIP token' [y|N]: y
Do you really want to disable all user specific server groups [y|N]: y
使用例 4 構成パラメータの一覧表示

次のコマンドは、KMIPTOKEN_DIR パスのすべての KMIP サーバーグループ (KMIP トークン) の構成を一覧表示します。

 % kmipcfg list
Server group: KMIP_server
State: enabled
Hosts: kmip-server-1.example.com:5696
Connection timeout: 5
Cache object time to live: 300
Encode type: TTLV
Failover limit: 1
Client keystore: /var/user/jf/kmip/KMIP_server
Client PKCS#12 bundle: kmip-server-1_keys.p12
Server certificate subject CN verification: enabled

Secondary authentication type: none
Server group: KMIP_cluster
State: enabled
Hosts: kmip-server-1.example.com:5696
       kmip-server-2.example.com:5697
Connection timeout: 5
Cache object time to live: 300
Encode type: TTLV
Failover limit: 1
Client keystore: /var/user/jf/kmip/KMIP_cluster
Client PKCS#12 bundle: /tmp/kmip_cluser_credentials.p12
Server certificate subject CN verification: enabled
Secondary authentication type: username-password
  Username: jf_kmip
  Password:
使用例 5 サーバーグループの構成パラメータの一覧表示

次のコマンドは、単一のサーバーグループの構成と機密情報を一覧表示します。

% kmipcfg list -s KMIP_cluster
Server group: KMIP_cluster
State: enabled
Hosts:  kmip-server-1.example.com:5696
        kmip-server-2.example.com:5697
Connection timeout: 5
Cache object time to live: 300
Encode type: TTLV
Failover limit: 1
Client keystore: /var/user/jf/kmip/KMIP_cluster
Client PKCS#12 bundle: /tmp/kmip_cluser_credentials.p12
Server certificate subject CN verification: enabled
Secondary authentication type: username-password
  Username: jf_kmip
  Password: changeme
使用例 6 構成パラメータの設定

次の例では、特定の KMIP サーバーグループの構成パラメータの一覧表示および設定を行います。

% kmipcfg list -o connection_timeout KMIP_server
Connection timeout: 5

% kmipcfg set -o connection_timeout=10 KMIP_server
% kmipcfg list -o connection_timeout KMIP_server
Connection timeout: 10
使用例 7 「デフォルト KMIP トークン」の構成に格納された KMIP クライアント証明書を一覧表示する

次の例は、「デフォルト KMIP トークン」の構成に格納された KMIP クライアント証明書を一覧表示します。

# kmipcfg list -o cred_source_type "Default KMIP token"
TLS credentials source type: raw

# kmipcfg set -o cert=/tmp/cert.pem "Default KMIP token"
# kmipcfg list -o cert -s "Default KMIP token"
Client certificate: 1612 Bytes

  0 : <client_cert_data_Base64_encoded>
  73 : <client_cert_data_Base64_encoded>

  1533 : <client_cert_data_Base64_encoded>
  1606 : <client_cert_data_Base64_encoded>

Base64 でエンコードされたデータは、次のコマンドパイプラインを使用して、人間が読める形式に簡単に変換できます。

# kmipcfg list -s -o cert -H "Default KMIP token" | base64 -d | \
openssl x509 -noout -text
使用例 8 SMF プロファイルを作成する

次のコマンドは、既存のサーバーグループから構成された値に基づいて SMF プロファイルを生成し、機密情報も含みます。

# kmipcfg extract -s "Default KMIP token"

注 -  コマンドの出力は含まれません。
使用例 9 対話形式で SMF プロファイルを作成する

次の例は、対話形式で SMF プロファイルを生成します。

# kmipcfg extract -s -i -p /tmp/profile.xml
Extract service instance [all]:
Libkmip configuration in service instance [svc:/system/kmip/client:default]:
Property group name [kmip_client_default]:
Property group type [kmip_client_config]:
KMIP server: kmip-server-1.example.com
KMIP port [5696]:
Add another KMIP server [y|N]:
Connection timeout [5]:
Cache object time to live [300]:
Encode type [TTLV]:
Failover limit [3]:
Client keystore [/var/user/root/kmip/]:
Credentials source type [raw]:
Private key:
Certificate:
CA certificate:
PKCS#12 bundle: /tmp/kmip_cred_bundle.p12
PKCS#12 bundle password locator [prompt]:
'p12_bundle_pass' password: ********
Verify CN in the subject of the server certificate [Y|n]:
Secondary authentication [none]:
Disable the respective PKCS#11 token [y|N]:
Enable svc:/system/pkcs11:kmip service instance [y|N]:
#

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/library/security/pkcs11_kmip
インタフェースの安定性
不確実
ユーティリティーの出力形式
インタフェースではない

関連項目

pktool(1)attributes(7)pkcs11_kmip(7)

PKCS#11 クライアントは、Key Management Interoperability Protocol 仕様バージョン 1.1 をサポートする KMIP サーバーが必要です。

PKCS#12 バンドルの最小限の内容は、クライアントの証明書と非公開鍵です。デフォルトの CA 証明書を使用してクライアントの証明書を検証できない場合、それぞれの CA 証明書が含まれている必要があります。