16 SSHキーの管理 - 設定と構成

Oracle Key Vaultを使用すると、セキュア・シェル(SSH)の秘密キーと公開キーを一元的に管理して、SSHサーバーへのアクセスを制御できます。

16.1 SSH管理者の設定

セキュア・シェル(SSH)管理者はOracle Key Vaultユーザーであり、Oracle Key VaultでSSHユーザーのSSHサーバーへのアクセスを一元的に管理できます。

SSH管理者は、Oracle Key VaultからSSHサーバーへのアクセスを制御するために必要な、SSHサーバー・ウォレットとSSHサーバー・エンドポイントを管理します。SSH管理者はSSHユーザー・キーを管理する場合としない場合があります。

SSH管理者を設定するには、次のステップを実行する必要があります:
  1. Oracle Key Vaultユーザーを作成します。
  2. そのユーザーにエンドポイントの作成権限を付与します。このユーザーは、自分が作成したエンドポイントを管理できます。
  3. そのユーザーにエンドポイントの管理権限を付与します。これは、別のユーザーが作成したエンドポイントに対して必要になる場合があります。

この項では、SSH管理者を設定するために必要なステップについて詳しく説明します。

通常のOracle Key Vaultユーザーの作成

  1. システム管理者ロールを持っているユーザーとしてOracle Key Vault管理コンソールにログインします。
  2. 「Users」タブを選択して、左側のナビゲーション・バーの「Manage Users」を選択します。

    既存のユーザーのリストが表示された「Manage Users」ページが表示されます。

  3. 「Manage Users」ページで、「Create」をクリックします。

    「Create User」ページが表示されます。

  4. 「Create User」ページで、必須フィールドに詳細を指定します。詳細は、「Oracle Key Vaultユーザー・アカウントの作成」を参照してください。
  5. 「Save」をクリックします。
  6. マルチマスター・クラスタでは、ユーザーは最初にPENDING状態で作成されます。新しいユーザーのクラスタ・ネーミング競合の解決が完了すると、そのユーザーはACTIVE状態に遷移します。

エンドポイント作成権限の付与

  1. システム管理者ロールを持っているユーザーとしてOracle Key Vault管理コンソールにログインします。

    エンドポイント作成権限を持つユーザーが、その権限を別のユーザーに付与することはできません。

  2. 「Users」タブを選択して、左側のナビゲーション・バーの「Manage Users」を選択します。

    ユーザーのリストが表示された「Manage Users」ページが表示されます。

  3. 「Create Endpoint」権限を付与するユーザーを選択します。
  4. 「User Details」の下で、「Create Endpoint」チェック・ボックスを選択します。
  5. 「Save」をクリックします。

    ノート:

    エンドポイント作成権限があるローカルOracle Key Vaultユーザーがエンドポイントを作成すると、Oracle Key Vaultによって、そのエンドポイントに対するエンドポイント管理権限がそのローカル・ユーザーに付与されます。

エンドポイント管理権限の付与

  1. システム管理者ロールを持っているユーザーとしてOracle Key Vault管理コンソールにログインします。

    エンドポイント管理権限を持つユーザーが、その権限を別のユーザーに付与することはできません。

  2. 「Users」タブを選択して、左側のナビゲーション・バーの「Manage Users」を選択します。

    ユーザーのリストが表示された「Manage Users」ページが表示されます。

  3. エンドポイント管理権限を付与するユーザーを選択します。
  4. 「Access on Endpoints」領域で、「Add」をクリックします。
  5. 「Add Endpoint Access to User」ページの「Select Endpoint」で、ユーザーにエンドポイント管理権限を付与するエンドポイントを選択します。
  6. 「Save」をクリックします。

前述のステップを繰り返し、SSH管理者が管理する必要があるその他のすべてのエンドポイントに対してエンドポイントの管理権限を付与します。

16.2 Oracle Key VaultによるSSHサーバーへのアクセスの一元的な制御

SSHユーザーがアクセスできるSSHサーバーを一元管理できます。

16.2.1 Oracle Key VaultによるSSHサーバーへのアクセスの一元的な制御について

セキュア・シェル(SSH)管理者は、組織内の1つ以上のSSHサーバーを管理します。Oracle Key Vaultでは、SSHサーバーのSSHユーザー・アクセスを一元的に管理できます。

Oracle Key Vaultで一元的にアクセスを管理するためのSSHサーバーを準備するには、SSHユーザーにログインを許可する予定のSSHサーバー・ホスト・ユーザーを特定する必要があります。authorized_keysファイルの使用を許可しないようにOpenSSHデーモン構成を変更して、Oracle Key Vaultの外部でアクセス権が付与されないようにすることをお薦めします。

SSHサーバーのSSHアクセスを一元的に管理するには、次のステップを実行する必要があります:

  1. SSHサーバー・エンドポイントを登録します。
  2. SSHサーバーへのログインを許可する予定のSSHサーバー・ホスト・ユーザーごとに、SSHサーバー・ウォレットを設定します。
  3. SSHサーバー・エンドポイントに、SSHサーバー・ウォレットに対する読取り専用アクセス権を付与します。
  4. SSHサーバーに、SSHサーバー・エンドポイントをプロビジョニングします。
  5. OpenSSH SSHデーモンを、Oracle Key Vault SSHサーバー・エンドポイント・ソフトウェアを使用するように設定します。
  6. SSHサーバー・ウォレットに、SSHクライアント・ユーザーの公開キーを追加します。

    ノート:

    SSHサーバー・ホスト・ユーザーとしてSSHクライアント・ユーザーがSSHサーバーに接続することを認可するには、SSHサーバー・ホスト・ユーザーに対応するSSHサーバー・ウォレットにユーザーの公開キーを追加します。

16.2.2 Oracle Key Vaultサーバーでの設定

SSH管理ユーザーは、Oracle Key VaultでSSHサーバー・エンドポイントとSSHサーバー・ウォレットを構成するために、次に示すステップを実行します。

SSHサーバー・エンドポイントの登録

SSHサーバー・エンドポイントは、SSHサーバー・ホストで設定する必要があります。OpenSSHデーモン構成は、SSHクライアントによって提供されたキーがホスト・ユーザーの認可キーのうちのいずれかであるかどうかを検証する、SSHサーバー・エンドポイント・スクリプトを使用するように変更されます。

  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーとしてログインします。SSH管理ユーザーには、エンドポイントの作成権限が必要です。
  2. 「Endpoints」タブを選択して、左側のナビゲーション・バーで「Endpoints」を選択します。Oracle Key Vaultのすべてのエンドポイントがリストされた、「Endpoints」ページが表示されます。
  3. 「Endpoints」ページで、「Add」をクリックします。
  4. 「Register Endpoint」ページが表示されます。
  5. 「Type」ドロップダウン・リストから、エンドポイントのタイプとして「SSH Server」を選択します。
  6. エンドポイント・タイプを「SSH Server」として選択すると、別のフィールド「SSH Server Hostname」が表示されます。このエンドポイントがデプロイされるSSHサーバーのホスト名またはIPアドレスを追加します。
  7. 「Register Endpoint」ページで必須フィールドの詳細を指定します。「Oracle Key Vaultシステム管理者またはエンドポイント作成ユーザーとしてのエンドポイントの追加」を参照してください
    これらは、SSHサーバー・エンドポイントをデプロイできるプラットフォームです(Windows上のSSHサーバー・エンドポイントを除く)。
    • Oracle Linux 7および8
    • Solaris X64 11.4
    • Solaris SPARC 11.4
    • HP-UX IA64 11.31
  8. 「Register」をクリックして、新しいエンドポイントを作成します。

    エンドポイントが正常に登録されると、「Endpoints」ページが表示されます。新しいエンドポイントの「Enrollment Token」値をコピーして保存します。これは、エンドポイント・ソフトウェアをダウンロードして、SSHサーバーにエンドポイントをエンロールするために必要になります。

SSHサーバー・ウォレットの作成
SSHサーバー・ウォレットは、SSHクライアント・ユーザーにSSHサーバーへのログインを許可する予定のSSHサーバー・ホスト・ユーザーごとに設定する必要があります。
  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーとしてログインします。
  2. 「Keys & Wallets」タブを選択して、左側のナビゲーション・バーから「Wallets」を選択します。
  3. 「Wallets」領域で、「Create」をクリックします。「Create Wallet」ページが表示されます。
  4. 「Wallet Type」で、「SSH Server」を選択します。
  5. 「SSH Server」として「Wallet Type」を選択すると、別のフィールド「SSH Server Host User」が表示されます。

    このウォレットでSSHアクセスを制御するSSHサーバー・ホスト・ユーザーの名前を入力します。このウォレットに公開キーが追加されているSSHクライアント・ユーザーは、このホスト・ユーザーとしてSSHサーバーにアクセスできます。

  6. 「Create Wallet」ページで、必須フィールドの詳細を指定します。「仮想ウォレットの作成」を参照してください。
  7. 「Save」をクリックして、新しいウォレットを作成します。

    ノート:

    単一のSSHサーバー・ウォレットを使用して、複数のSSHサーバーで単一のSSHサーバー・ホスト・ユーザーの認可を管理できます(SSHクライアント・ユーザーの同じセットが、それらすべてのSSHサーバーで、そのホスト・ユーザーとしてログインする必要がある場合)。そのようなSSHサーバー・ウォレットの共有使用により、SSHアクセス管理が大幅に簡素化されることがあります。
SSHサーバー・ウォレットに対するSSHサーバー・エンドポイントの読取り専用アクセス権の付与
SSHサーバー・エンドポイントに、各SSHサーバー・ウォレットへの読取り専用アクセス権を付与します。このアクセス権により、SSHサーバー・エンドポイントで、クライアント・ユーザーが接続に使用しているホスト・ユーザーのSSHサーバー・ウォレットに、SSHクライアントによって提供された公開キーが存在するかどうかを検証できるようになります。
  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーとしてログインします。
  2. 「Endpoints」タブを選択し、左側のナビゲーション・バーから「Endpoints」を選択します。
  3. 「Endpoints」ページが表示されます。SSHサーバー・エンドポイントを見つけて、エンドポイント名をクリックします。「Endpoint Details」ページが表示されます。
  4. 「Access to Wallets」領域で、「Add」をクリックします。「Add Access To Endpoint」ページが表示されます。
  5. 「Select Wallet」領域で、アクセス権を付与するSSHサーバー・ウォレットを選択します。
  6. 「Select Access Level」領域で、「Read Only」を選択します。
  7. 「Save」をクリックします。

16.2.3 SSHサーバーでの設定

次のステップを実行して、SSHサーバー・エンドポイントをデプロイして構成し、SSHサーバーのOpenSSH構成を変更します。

OpenSSHデーモンは通常はrootユーザーとして実行されるため、SSHサーバーにrootユーザーとしてSSHサーバー・エンドポイントがデプロイされていることを確認します。

SSH管理ユーザーにSSHサーバーでのrootアクセス権がない場合、SSH管理者は、SSHサーバーのrootアクセス権がある管理者と連係して次の構成手順を実行する必要があります。このドキュメントでは、SSH管理者がSSHサーバーのrootアクセス権を持っていることを前提としています。

次の手順を使用して、SSHサーバーでSSHサーバー・エンドポイントをプロビジョニングします。

エンドポイントのエンロールとソフトウェアのダウンロード

エンロール・トークンを使用してエンドポイントをエンロールしてから、エンドポイント・ソフトウェアをダウンロードします。

エンドポイント・ソフトウェアは、それをデプロイするSSHサーバーからダウンロードすることも、別のホストからソフトウェアをダウンロードして、ダウンロードしたエンドポイント・ソフトウェア(okvclient.jar)をSSHサーバーにコピーすることもできます。より厳密なファイル権限を適用して、ダウンロードしたソフトウェアの整合性を確実に保護してください。

Oracle Key Vaultシステム管理者は、エンドポイントの登録後、そのエンドポイントのエンロール・トークンを電子メールまたはその他のバンド外の方式によってエンドポイント管理者に送信します。
  1. SSHサーバーにrootユーザーとしてログインします。
  2. Oracle Key Vault管理コンソールにSSH管理者として接続します。

    例: https://192.0.2.254

    Oracle Key Vault管理コンソールへのログイン・ページが表示されます。ログインしないでください

  3. 「Login」ボタンのすぐ下にある、「Endpoint Enrollment and Software Download」をクリックします。「Enroll Endpoint & Download Software」ページが表示されます。
  4. 「Enrollment Token」フィールドに、SSHサーバー・エンドポイントのエンロール・トークンを入力して、「Submit Token」をクリックします。このエンロール・トークンは、エンドポイント登録ステップで保存したものです。
    1. トークンが有効な場合は、「Enrollment Token」フィールドの下に有効なトークンのメッセージが表示されます。「Endpoint Type」、「Endpoint Platform」、「Email」および「Description」の各フィールドには、エンドポイントの登録中に入力された値が自動的に移入されます。

      トークンが無効である場合は、そのことを示すメッセージが表示されます。トークンを確認し、ダウンロード手順を再試行してください。

    2. ページの右上隅にある「Enroll」をクリックします。
  5. 表示されたディレクトリ・ウィンドウで、okvclient.jarエンドポイント・ソフトウェア・ファイルをプロンプトに従って保存します。

    ファイルを保存するディレクトリに移動する必要があります。

  6. 他者が読み取ったりコピーできないように、適切な権限が設定されたセキュアなディレクトリにファイルを保存します。
  7. ファイルがダウンロードされていることを確認します。

    ノート:

    エンドポイント・システムにファイルをダウンロードしていない場合は、そのシステムにバンド外の方法を使用してファイルをコピーし、そこにインストールする必要があります。この段階で、SSHサーバーにOracle Key Vault okvclient.jarソフトウェア・ファイルをインストールする準備が整います。

SSHサーバーへのSSHサーバー・エンドポイントのインストール

SSHサーバー・エンドポイントは、ダウンロードしたエンドポイント・ソフトウェア・ファイルokvclient.jarを使用して、SSHサーバーにインストールします。

通常、OpenSSHデーモンはrootユーザーとして実行されるため、SSHサーバーにrootユーザーとしてエンドポイントをインストールします。

SSHサーバー・エンドポイントをインストールする前に、次のことを確認してください。
  • JDK 1.5以降がインストールされており、PATH環境変数にjava実行可能ファイル(JAVA_HOME/binディレクトリ内)が含まれていること。Oracle Key Vaultは、JDKバージョン1.5、1.6、7および8をサポートしています。64ビット版のJavaが必要です。
  • システムで使用されるOpenSSHのバージョンがバージョン8以降( AuthorizedKeysCommandキーワードをサポートしている)であること。

SSHサーバー・ホストにSSHサーバー・エンドポイントをインストールするには:

  1. SSHサーバー・ホストにrootユーザーとしてログインしていることを確認します。
  2. エンドポイント・ソフトウェアをデプロイするサーバー上の、新しいSSHサーバー・エンドポイント・ディレクトリに移動します。
  3. okvclient.jarファイルの保存場所から、この新しいSSHエンドポイント・ディレクトリにファイルを移動します。
  4. このディレクトリがokvclient.jarファイル以外は空になっていることを確認してから、rootユーザーとしてjavaコマンドを実行して、okvclient.jarファイルをインストールします。次に例を示します
    java -jar okvclient.jar -d /<path_to_SSH_EP_directory>/<SSH_EP_directory> –v

    このように指定した場合:

    • -dでは、エンドポイント・ソフトウェアと構成ファイルのディレクトリの場所を指定します(この例では、/<path_to_SSH_EP_directory>/<SSH_EP_directory>)。
    • -vでは、サーバー・エンドポイントにある/<path_to_SSH_EP_directory>/<SSH_EP_directory>/log/okvutil.deploy.logファイルにインストール・ログが書き込まれます。
  5. パスワードの入力を求められた場合:
    • 自動ログイン・エンドポイントの場合は<enter>。または
    • パスワードで保護されたエンドポイントの場合は有効なパスワード。
    • パスワード保護されたエンドポイントを作成する場合は、少なくとも8文字から30文字のパスワードを入力して[Enter]を押します。セキュリティを向上させるために、大文字、小文字、特殊文字および数字をパスワードに含めることをお薦めします。次の特殊文字を使用できます: ピリオド(.)、カンマ(,)、アンダースコア(_)、プラス記号(+)、コロン(:)、スペース。
    Enter new Key Vault endpoint password (<enter> for auto-login): Key_Vault_endpoint_password
    Confirm new endpoint password: Key_Vault_endpoint_password

ノート:

パスワード保護ウォレットは、Oracle Key Vaultにアクセスするための、エンドポイントの資格証明を格納するOracle Walletファイルです。エンドポイントがOracle Key Vaultに接続するときには、このパスワードが常に必要です。

パスワードで保護されたエンドポイントの追加構成

自動ログイン・エンドポイントとしてSSHサーバー・エンドポイントをインストールした場合は、次のステップをスキップしてください。

パスワードで保護されたエンドポイントについては、SSHサーバー・エンドポイントの認可キーのルックアップ・スクリプトにエンドポイント・パスワードを自動的に指定するために、さらに構成が必要になります。OpenSSHデーモンは、このスクリプトをSSHクライアント接続の認証時に実行します。このスクリプトは、エンドポイント・パスワードを要求することなくOracle Key Vaultに接続できる必要があります。

エンドポイント・パスワードの指定を自動化するには、次の構成を完了します:

  • 実行時にクリアテキストで標準出力にエンド・ポン・パスワードを返すスクリプトまたは実行可能ファイルを作成します。
  • ディレクトリをエンドポイントのディレクトリに変更します。
  • スクリプトbin/okv_ssh_ep_lookup_authorized_keysを編集用に開きます。
  •   SSH_SERVER_ENDPOINT_GET_PASSWORD_SCRIPT="<full-path-of-the-password-script>"
SSHサーバー・ホスト・ユーザーからSSHサーバー・ウォレットへのマッピングの構成

SSHサーバー・ホスト・ユーザーからSSHサーバー・ウォレットへのマッピングが含まれている、SSHサーバー・マッピング・ファイルを設定する必要があります。これは、okv_ssh_ep_lookup_authorized_keysスクリプト用の構成ファイルです。SSHサーバー・ホスト・ユーザーごとに、対応するSSHサーバー・ウォレットがOracle Key Vaultで設定されている必要があります。SSHクライアント接続を受信すると、最初に、okv_ssh_ep_lookup_authorized_keysスクリプトは受信SSH接続のホスト・ユーザーに対応するSSHサーバー・ウォレットを検索します。次に、okv_ssh_ep_lookup_authorized_keysは、マップされたSSHサーバー・ウォレット内にクライアントが提供した公開キーが存在するかどうかを検証します。

次のSSHサーバー・エンドポイント構成ファイルを更新して、
/<path_to_SSH_EP_directory>/<SSH_EP_directory>/conf/okvsshendpoint.conf
SSHサーバー・ホスト・ユーザーを対応するSSHサーバー・ウォレットにマップします。

たとえば、次の構成ファイルで示されているマッピングでは、SSHサーバーpheonix上のホストOSユーザーoracleopcおよびrootが、それぞれSSHサーバー・ウォレットoracle_ssh_walletopc_ssh_walletおよびroot_ssh_wallet_for_phoenixにマップされています。

# Configuration file for Oracle Key Vault SSH server endpoints
[ oracle ]
ssh_server_wallet=oracle_ssh_wallet

[ opc ]
ssh_server_wallet=opc_ssh_wallet

[ root ]
ssh_server_wallet=root_ssh_wallet_for_phoenix

Oracle Key Vaultとの統合のためのOpenSSHデーモンの構成

OpenSSH SSHデーモンを構成して、Oracle Key Vault SSHエンドポイント・ソフトウェアを使用するようにします。SSHサーバーで、OpenSSHデーモン構成ファイルsshd_configAuthorizedKeysCommandキーワードを更新し、SSHサーバー・エンドポイント・ルックアップ・スクリプトokv_ssh_ep_lookup_authorized_keysを呼び出すようにそれを設定します。
  1. SSHサーバー・ホストで、SSHデーモンを、それが実行されているプラットフォームに固有のコマンドを使用して停止します。たとえば、Oracle Linux 7では、次のようにSSHデーモンを停止します。
    /usr/bin/systemctl stop sshd
  2. 次の行を更新することで、SSHサーバー・エンドポイント・ルックアップ・スクリプトを使用するようにSSHサーバー・ホストのsshd_configファイルを編集します。
    #AuthorizedKeysCommand none
    #AuthorizedKeysCommandUser nobody
    AuthorizedKeysCommand
              /<path_to_SSH_EP_directory>/<SSH_EP_directory>/bin/okv_ssh_ep_lookup_authorized_keys
              get_authorized_keys_for_user %u %f %k
    AuthorizedKeysCommandUser
        root

    okv_ssh_ep_lookup_authorized_keysスクリプトの引数は、それらの相対的な順序も含め、上に示したとおりに正確に指定してください。

  3. SSHサーバー・ホストが稼動しているプラットフォームに固有のコマンドを使用して、SSHサーバー・ホストでSSHデーモンを再起動します。たとえば、Oracle Linux 7では、systemctlコマンドを使用してSSHデーモンを再起動します。
    /usr/bin/systemctl restart sshd

    ノート:

    SSHサーバーでは、SSHユーザーがSSHサーバーに接続できることを確認できるまで、rootユーザー・セッションを開いたままにしておく必要があります。
.

16.2.4 Oracle Key VaultからのSSHサーバー・アクセスの管理

Oracle Key VaultとSSHサーバーの構成ステップが完了した時点で、SSH公開キー認証を使用してSSHサーバーに接続できるユーザーを制御できるようになっています。

SSHクライアント・ユーザーがSSHサーバーのSSHサーバー・ホスト・ユーザーとして接続することを認可するために、SSHサーバーにあるホスト・ユーザーの認可された公開キーを保持するように構成したSSHサーバー・ウォレットに、SSHクライアント・ユーザーの公開キーを追加します。

まだSSHユーザーの公開キーがOracle Key Vaultで使用できない場合は、まずOracle Key VaultのRESTfulサービス・ユーティリティを使用してSSH公開キーをアップロードします。RESTfulサービス・ユーティリティの構成と使用の詳細は、『Oracle Key Vault RESTfulサービス管理者ガイド』を参照してください。

アップロードする公開キーがSSH形式の場合は、ホスト・ユーザーのauthorized_keysファイル内の公開キーと同様に、まずSSH-keygenユーティリティを使用して公開キーをPKCS8形式に変換します。その例を次に示します:

$ ssh-keygen -e -m PKCS8 -f john-pubkey-ssh.pub > john-pubkey-pkcs8.pub
公開キーがPKCS8形式になっていることを確認します。
$ cat opc-pubkey-pkcs8.pub
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArbHYwXcOapqD6Xv4B8VX
8Ce8IilZBUl2iUtYcl1K/179IxD+ViD6B+yBYO+Yp0J5aXvFSwMyztEfQdSn7GmG
ASUVSXGmqqKr0skWxkVsIyxzGC7zxBXcISkmB3kkZFMCwLsj+hzpEQfKTFItMGaZ
eTfC0CxtSprP3HQopn796KMsxvsuubTGayy05pZQXCScryTIR1Mcwa/quKdFy1Vj
t3VI/nzLAdMTGYN9MAOnkt1hmD2jE+dBBQ/excoHl+WoZLjek0wNcyifFRxeOM64
d7LDv90G5pjQctQk+73gkqPhBewFlMh2Ql068i2Jg0ygbceK6qoUqxRnFsUkBDXa
/QIDAQAB
-----END PUBLIC KEY-----
RESTfulサービス・ユーティリティを使用して、PKCS8形式でOracle Key VaultにSSH公開キーをアップロードします。
okv managed-object public-key register --output_format text --object john-pubkey-pkcs8.pub --algorithm RSA --length 2048 -mask "ENCRYPT" 
--ssh-user "John" --name "SSH public key of John" --activation-date now --deactivation-date "2025-10-15 00:00:00"

前述のコマンドは、新しいSSH公開キーのOracle Key Vaultでの一意識別子を返します。

次に、SSH公開キーをSSHサーバー・ウォレットに追加します。次のステップを使用します:
  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーとしてログインします。
  2. 「Keys & Wallets」タブを選択してから、左側のナビゲーション・バーで「Keys & Secrets」を選択します。「Keys & Secrets」ページが表示されます。
  3. 検索バーに、前のステップで作成したSSH公開キーの一意識別子を入力します。「Go」をクリックします。
  4. 見つかったキーに対応する、「Edit」をクリックします。「Object Details」ページが表示されます。
  5. 「Wallet Membership」領域で、「Add Wallet Membership」をクリックします。
  6. 「Add Wallet Membership」ダイアログ・ボックスで、このSSH公開キーを追加するSSHサーバー・ウォレットを選択して、「Add」をクリックします。

    この時点で、SSHユーザーにはSSHサーバー・ウォレットに関連付けられたSSHサーバー・ホスト・ユーザーとしてSSHサーバーに接続する権限が付与されています。

実装の考慮事項:
  • すでにユーザーのSSH公開キーがOracle Key Vaultに存在している場合は、そのキーを再度アップロードしないでください。SSH管理者は、同じ公開キーを異なるSSHサーバー・ウォレットに追加することで、ユーザーに異なるSSHサーバーへのアクセス権と異なるホスト・ユーザーとしてのアクセス権を付与できます。
  • SSHユーザー自身がSSHキーを作成して管理する場合、そのユーザーは公開キーを別のウォレットに追加して、そのウォレットへのアクセス権をSSH管理者に付与する必要があります。これにより、SSH管理者は、そのウォレットからユーザーの公開キーにアクセスして、そのキーを必要なSSHサーバー・ウォレットに追加できます。
  • SSH管理者がSSHキーを作成および管理する場合、SSH管理者は、すでにSSHユーザーの公開キーへのアクセス権を持っています。SSH管理者は、ユーザーの公開キーを保持する別の中間ウォレットを必要とすることなく、ユーザーの公開キーを必要なSSHサーバー・ウォレットに追加できます。

16.3 Oracle Key VaultによるSSHユーザー・キーの管理

Oracle Key VaultでSSHユーザーのセキュア・シェル(SSH)キーを一元的に管理すると、キーの管理とガバナンスを実施できます。

16.3.1 Oracle Key VaultによるSSHユーザー・キーの管理について

Oracle Key VaultでSSHユーザーのSSHキーを一元的に管理すると、キーの管理とガバナンスを実施できます。

多くの場合、SSH公開キー認証は、エンタープライズ内でのユーザー認証にお薦めの方法です。数百のSSHクライアント、ユーザーおよびサーバーは同様に、それらに独自のSSHキー・ペアを生成および管理します。すべてのユーザーが、キー管理に関するベスト・プラクティスについて詳しく知っているわけではありません。そのような適切に管理されていないSSHキーは、エンタープライズ全体に分散され、組織全体のデプロイメントのセキュリティ上の弱点として現れる"キー・スプロール"につながります。
Oracle Key VaultのPKCS#11ライブラリでは、Oracle Key Vaultに格納されているSSHキー・ペアを使用した、SSH公開キー認証がサポートされています。Oracle Key Vaultでエンタープライズ・ユーザーのSSHキーを一元的に管理すると、キーのライフサイクル管理が簡単になり、キー・ガバナンスを有効にして、ポリシーを一律に施行できます。SSHユーザーは、Oracle Key Vaultから直接、自分のキーを使用してSSHサーバーに接続します。
SSHユーザー・キーの管理には、2つのモデルがあります。
  • SSH管理者が、SSHユーザー・キー管理を担当します。

    このデプロイメント・モデルでは、中央の管理者チームが、SSHユーザー・キーのライフ・サイクル全体を管理します。SSHユーザーには、自分のSSHキーの使用に関する認可のみが与えられ、自分のキーに対する所有権はありません。このモデルでは、SSH管理者が秘密キーを抽出不可として設定してあると、SSHユーザーが自分の秘密キーを別のユーザーと共有できません。

    このモデルでは、SSHユーザーがOracle Key Vaultユーザーになる必要はありません。

  • SSHユーザーが、自分のキーの管理を担当します。

    このデプロイメント・モデルでは、SSHユーザーが、自分のSSHキーを作成し管理します。それらのユーザーは、自分のSSHユーザー・キーの完全な所有権を保持し、ライフサイクル全体を管理する責任を負います。

    このモデルでは、各SSHユーザーがOracle Key Vaultの独自のユーザー・アカウントを持っている必要があります。

SSHキーの管理に選択したモデル(SSH管理者またはSSHユーザー)に応じて、後述のステップが多少異なることがあります。このドキュメントでは、SSH管理者がSSHユーザー・キーを管理すると仮定しています。

Oracle Key VaultでSSHユーザー・キーを一元的に管理するために、SSH管理者は次のステップを実行する必要があります:

  1. SSHユーザーのエンドポイントを登録して、SSHクライアント・ホストにデプロイします。
  2. 以前に作成したエンドポイントへの排他的アクセス権がある汎用ウォレットを作成します。
  3. SSHキー・ペアを作成し、以前に作成した汎用ウォレットにそれを登録します。
    • UIまたはRESTfulユーティリティを使用して、SSHキー・ペアを作成できます。
    • または、RESTfulユーティリティを使用して既存のSSHキー・ペアを登録できます。
  4. 公開キーをダウンロードし、SSHサーバーの管理者とそれを共有します。

    SSHサーバー管理者が、関連するauthorized_keysファイルにそれらのキーを追加します。

16.3.2 Oracle Key Vaultサーバーの設定

SSHユーザーごとのエンドポイントを登録します。

SSHユーザーごとのエンドポイントの登録

OpenSSHクライアントで使用するエンドポイントを登録します。Oracle Databaseエンドポイントなど、既存のエンドポイントをOpenSSHクライアントで使用することもできます。
  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーか、システム管理者ロールまたはエンドポイントの作成権限を持つユーザーとしてログインします。
  2. 「Endpoints」タブを選択して、左側のナビゲーション・バーで「Endpoints」を選択します。Oracle Key Vaultのすべてのエンドポイントがリストされた、「Endpoints」ページが表示されます。
  3. 「Endpoints」ページで、「Add」をクリックします。
  4. 「Register Endpoint」ページが表示されます。
  5. 「Type」ドロップダウン・リストから、エンドポイントのタイプを選択します。

    任意のエンドポイント・タイプを必要に応じて選択できます。ただし、SSHサーバーにデプロイする予定の「SSH Server」を除きます。

  6. 「Register Endpoint」ページで必須フィールドの詳細を指定します。「Oracle Key Vaultシステム管理者またはエンドポイント作成ユーザーとしてのエンドポイントの追加」を参照してください。
  7. 「Register」をクリックします。

    エンドポイントが正常に登録されると、「Endpoints」ページが表示されます。新しいエンドポイントの「Enrollment Token」値をコピーして保存します。これは、エンドポイント・ソフトウェアをダウンロードして、SSHクライアント・ホストにエンドポイントをエンロールするために必要になります。

SSHユーザー・キー用の汎用ウォレットの作成

SSHユーザーのSSHキーを格納する汎用ウォレットを作成します。このウォレットに、SSHユーザーのSSH公開キーと秘密キーを格納します。
  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーとしてログインします。
  2. 「Keys & Wallets」タブを選択して、左側のナビゲーション・バーから「Wallets」を選択します。
  3. 「Wallets」領域で、「Create」をクリックします。「Create Wallet」ページが表示されます。
  4. 「Wallet Type」には、「General」を選択します。
  5. 「Create Wallet」ページで、必須フィールドの詳細を指定します。「仮想ウォレットの作成」を参照してください。
  6. 「Save」をクリックして、新しいウォレットを作成します。
.

SSHキー・ペアの作成または登録

SSHキー・ペアを作成または登録して、前のステップで作成した汎用ウォレットに格納します。

SSHキー・ペアは、Oracle Key Vault管理コンソールまたはRESTfulサービス・ユーティリティを使用すると作成できます。Oracle key Vault管理コンソールからキーを作成すると、キーの作成時に汎用ウォレットを指定できます。

既存のSSHキーは、RESTfulサービス・ユーティリティのみを使用してOracle Key Vaultに登録できます。登録してから、汎用ウォレットに移動します。

次のステップは、Oracle Key Vault管理コンソールを使用してSSHキー・ペアを作成する場合に使用します。

  1. SSH管理者としてOracle Key Vault管理コンソールにログインします。
  2. 「Keys & Wallets」タブを選択して、左側のナビゲーション・バーから「Keys & Secrets」を選択します。
  3. 「Keys & Secrets」ページで、「Create」をクリックします。
  4. 表示されたページの「Application Keys」セクションから、「SSH Key Pair」を選択します。「Create SSH Key Pair」ページが表示されます。

  5. 「SSH Key Pair」ページに情報を入力します:
    • SSH User: 該当するSSHキーを使用するSSHクライアント・ユーザーの名前を入力します。このユーザーは、Oracle Key Vaultユーザーの必要はありません。
    • Cryptographic Algorithm: サポートされているアルゴリズムはRSAです。
    • Cryptographic Length: キーの長さ。3つの長さのキー(2048、3072、4096)がサポートされています。
    • Private Key Extractable: Oracle Key VaultサーバーからSSHキー・ペアの秘密キーを抽出可能にします。デフォルトおよび推奨値は、「False」です。
    • Date of Activation: SSHキー・ペアがアクティブになるまでの時間。デフォルト値は、現在のシステム時間です。
    • Date of Deactivation: SSHキー・ペアが非アクティブ(期限切れ)になるまでの時間。SSHキーは、期限切れになる前にローテーションする必要があります。デフォルト値は、現在のシステム時間から2年です。
    • Wallet Membership: 新しいSSHキーを格納するウォレット。そのウォレットに対する「Manage Wallet」権限が必要です。これは、前のステップで作成した汎用ウォレットに設定する必要があります。
    • 「Create」をクリックして、新しいSSHキー・ペアを作成します。

SSHユーザーの汎用ウォレットに対する読取り専用アクセス権のSSHユーザーのエンドポイントへの付与

SSHユーザーのエンドポイントに、SSHユーザーの汎用ウォレットへの読取り専用アクセス権を付与します。これにより、ユーザーがSSH公開キー認証を使用してSSH接続を試行するときに、エンドポイントでは汎用ウォレットのSSHキーを使用できるようになります。

  1. Oracle Key Vault管理コンソールに、SSH管理ユーザーとしてログインします。
  2. 「Keys and Wallets」タブを選択して、左側のナビゲーション・バーから「Wallets」を選択します。
  3. 「Wallets」ページが表示されます。SSHユーザーの汎用ウォレットを見つけて、鉛筆アイコンをクリックします。「Wallet Overview」ページが表示されます。
  4. 「Wallet Access Settings」領域で、「Add」をクリックします。

    「Select Endpoint/User Group」領域で、ドロップダウン・リストから「Endpoints」タイプを選択します。

  5. アクセス権を付与するSSHユーザーのエンドポイントに対応するチェック・ボックスを選択します。
  6. 「Select Access Level」領域で、「Read Only」を選択します。
  7. 「Save」をクリックします

ノート:

SSHユーザーが独自のSSHキーを作成して管理するデプロイメント・モデルを使用している場合、前述のステップの多くはSSHユーザー自身が実行します。SSHユーザーは、Oracle Key VaultでSSHキーを管理するために、Oracle Key Vaultユーザー・アカウントが必要です。
このモデルでは、前述のステップを次のように変更します:
  1. SSHユーザーごとのエンドポイントの登録: 変更なし。このステップは引き続きSSH管理者として実行します。
  2. SSHユーザー・キー用の汎用ウォレットの作成: このステップはSSHユーザーとして実行します。
  3. SSHキー・ペアの作成または登録: このステップはSSHユーザーとして実行します。
  4. SSHユーザーの汎用ウォレットに対する読取り専用アクセス権のSSHユーザーのエンドポイントへの付与: このステップはSSHユーザーとして実行します。

16.3.3 SSHクライアント・ホストの設定

SSHユーザーのエンドポイントは、SSHユーザーがSSHサーバーに接続するSSHクライアント・ホストにインストールします。

Oracle Key VaultのSSHキーを使用してSSH公開キー認証を実行するには、SSHクライアント・ホストにOracle Key Vaultエンドポイントが必要です。SSHユーザーは、SSH接続を確立するために、エンドポイントのOracle Key Vault PKCS#11ライブラリとともにOpenSSHクライアントを使用します。

エンドポイントは、ユーザーのホーム・ディレクトリ内など、ネットワーク・フォルダにインストールすることもできます。このエンドポイントを使用すると、ユーザーは複数のホストからSSH接続を確立できます。

SSHユーザーのエンドポイントは、そのSSHユーザーの秘密キーへのアクセスを提供します。エンドポイントは、パスワードで保護された状態でインストールすることをお薦めします。エンドポイントに対する権限は、SSHユーザーに制限する必要があります。通常、SSHユーザーはエンドポイントを自分でインストールします。

SSHユーザーがアプリケーションやマシンで、人間のユーザーでない場合など、特定のデプロイメントでは、既存のエンドポイントを使用できます。たとえば、既存のOracle Databaseエンドポイントは、SSHクライアント・ユーザー'oracle'としてSSH接続を確立するために使用できます。このような設定では、このエンドポイントに、アプリケーションまたはマシン・ユーザーのキーを保持するウォレットへの「Read Only」アクセス権を付与します。

SSHクライアント・ホストにSSHユーザーのエンドポイントをプロビジョニングするには、次のステップを使用します。

エンドポイントのエンロールとソフトウェアのダウンロード

エンロール・トークンを使用してエンドポイントをエンロールしてから、エンドポイント・ソフトウェアをダウンロードします。

エンドポイント・ソフトウェアは、それをデプロイするSSHクライアント・ホストからダウンロードすることも、別のホストからソフトウェアをダウンロードして、ダウンロードしたエンドポイント・ソフトウェア(okvclient.jar)をSSHサーバーにコピーすることもできます。より厳密なファイル権限を適用して、ダウンロードしたソフトウェアの整合性を確実に保護してください。

  1. SSHユーザーとしてSSHクライアント・ホストにログインします
  2. Oracle Key Vault管理コンソールに、SSH管理ユーザーか、システム管理者ロールまたはエンドポイントの作成権限を持つユーザーとして接続します。

    例: https://192.0.2.254

    Oracle Key Vault管理コンソールへのログイン・ページが表示されます。ログインしないでください

  3. 「Login」ボタンのすぐ下にある、「Endpoint Enrollment and Software Download」をクリックします。「Enroll Endpoint & Download Software」ページが表示されます。
  4. 「Enrollment Token」フィールドに、SSHサーバー・エンドポイントのエンロール・トークンを入力して、「Submit Token」をクリックします。このエンロール・トークンは、エンドポイント登録ステップで保存したものです。
    1. トークンが有効である場合は、「Enrollment Token」フィールドの下に有効なトークン・メッセージが表示されます。「Endpoint Type」、「Endpoint Platform」、「Email」および「Description」の各フィールドには、エンドポイントの登録中に入力された値が自動的に移入されます。

      トークンが無効である場合は、そのことを示すメッセージが表示されます。トークンを確認し、ダウンロード手順を再試行してください。

    2. ページの右上隅にある「Enroll」をクリックします。
    3. 「Login」ボタンのすぐ下にある、「Endpoint Enrollment and Software Download」をクリックします。「Enroll Endpoint & Download Software」ページが表示されます。
    4. 「Enrollment Token」フィールドに、SSHサーバー・エンドポイントのエンロール・トークンを入力して、「Submit Token」をクリックします。このエンロール・トークンは、エンドポイント登録ステップで保存したものです。
      1. トークンが有効である場合は、「Enrollment Token」フィールドの下に有効なトークン・メッセージが表示されます。「Endpoint Type」、「Endpoint Platform」、「Email」および「Description」の各フィールドには、エンドポイントの登録中に入力された値が自動的に移入されます。

        トークンが無効である場合は、そのことを示すメッセージが表示されます。トークンを確認し、ダウンロード手順を再試行してください。

      2. ページの右上隅にある「Enroll」をクリックします。
    5. 表示されるディレクトリ・ウィンドウで、プロンプトに従ってokvclient.jarエンドポイント・ソフトウェア・ファイルを保存します。

      ファイルを保存するディレクトリに移動する必要があります。

    6. 他者が読み取ったりコピーできないように、適切な権限が設定されたセキュアなディレクトリにファイルを保存します。
    7. ファイルがダウンロードされていることを確認します。

      ノート:

      SSHクライアント・ホストにファイルをダウンロードしていない場合は、そのシステムにバンド外の方法を使用してファイルをコピーし、そこにインストールする必要があります。

      この段階で、SSHクライアント・ホストにOracle Key Vault okvclient.jarソフトウェア・ファイルをインストールする準備が整います。

SSHクライアント・ホストへのSSHユーザーのエンドポイントのインストール

SSHユーザーは、ダウンロードしたエンドポイント・ソフトウェア・ファイルokvclient.jarを使用して、SSHクライアント・ホストにSSHユーザーのエンドポイントをインストールします。

SSHユーザーのエンドポイントをインストールする前に、JDK 1.5以降がインストールされていて、PATH環境変数にjava実行可能ファイル(JAVA_HOME/binディレクトリ内)が含まれていることを確認します。Oracle Key Vaultは、JDKバージョン1.5、1.6、7および8をサポートしています。64ビット版のJavaが必要です。

SSHクライアント・ホストにSSHユーザーのエンドポイントをインストールするには:
  1. SSHユーザーでログインしていることを確認します。
  2. SSHクライアント・ホストのエンドポイント・ソフトウェアのデプロイ先にする新しいディレクトリに移動します。
  3. okvclient.jarファイルの保存場所から、この新しいエンドポイント・ディレクトリにファイルを移動します。
  4. このディレクトリがokvclient.jarファイル以外は空になっていることを確認してから、rootユーザーとしてjavaコマンドを実行して、okvclient.jarファイルをインストールします。

    次に例を示します

    java -jar okvclient.jar -d /<path_to_EP_directory>/<EP_directory> -v

    このように指定した場合:

    • -dでは、エンドポイント・ソフトウェアと構成ファイルのディレクトリの場所を指定します(この例では、 /<path_to_EP_directory>/<EP_directory>)。
    • -vでは、サーバー・エンドポイントの /<path_to_EP_directory>/<EP_directory>/log/okvutil.deploy.logファイルにインストール・ログを書き込みます。
  5. パスワードの入力を求められた場合:
    • 自動ログイン・エンドポイントの場合は<enter>。または
    • パスワードで保護されたエンドポイントの場合は有効なパスワード
      パスワード保護されたエンドポイントを作成する場合は、少なくとも8文字から30文字のパスワードを入力して[Enter]を押します。セキュリティを向上させるために、大文字、小文字、特殊文字および数字をパスワードに含めることをお薦めします。次の特殊文字を使用できます: ピリオド(.)、カンマ(,)、アンダースコア(_)、プラス記号(+)、コロン(:)、スペース。
      Enter new Key Vault endpoint password (<enter> for auto-login): Key_Vault_endpoint_password
      Confirm new endpoint password: Key_Vault_endpoint_password

    パスワード保護ウォレットは、エンドポイントがOracle Key Vaultにアクセスするために使用する資格証明を格納したOracle Walletファイルです。エンドポイントがOracle Key Vaultに接続するときには、このパスワードが常に必要です。エンドポイントにはSSHユーザーの秘密キーへのアクセス権があるため、エンドポイントはパスワードで保護された状態でインストールすることをお薦めします。

16.3.4 SSHサーバーでのSSHユーザーの公開キーの認可

SSHユーザーがSSH公開キー認証を使用してSSHサーバーに接続する前に、ユーザーが接続する必要のあるSSHサーバーでユーザーの公開キーを認可する必要があります。

SSHユーザー・キー管理にのみOracle Key Vaultを使用している場合は、それぞれのSSHサーバーのauthorized_keysファイルにユーザーの公開キーを個別に追加する必要があります。このステップは、それぞれのSSHサーバーの管理者との連係が必要になります。

SSH管理者は、公開キーをダウンロードし、SSH形式に変換してSSHサーバー管理者と共有します。SSH管理者は、SSHサーバーにある関連するホスト・ユーザーのauthorized_keysファイルに公開キーを追加します。

次のステップを使用して、SSH形式でSSH公開キーをダウンロードします:

  1. SSH管理者は、RESTfulサービス・ユーティリティで使用するエンドポイントが設定されていることを確認します。「Oracle Key Vault RESTfulサービス・ユーティリティ・コマンドの実行」を参照してください。
  2. 次のステップを使用して、SSH公開キーの一意識別子を取得します:
    1. SSH管理者としてOracle Key Vault管理コンソールにログインします。
    2. 「Reports」タブを選択して、左側のナビゲーション・バーから「Reports」を選択します。
    3. 「SSH Reports」を展開し、「SSH Key Metadata Report」をクリックします。
    4. 新しいSSHユーザーのSSH公開キーを検索して特定します。「Key Details」をクリックします。「Object Details」ページが表示されます。
    5. 一意識別子の値をコピーします。

  3. RESTfulサービス・ユーティリティ・コマンド'okv managed-object public-key get'に公開キーの一意IDを使用して、SSH公開キーをダウンロードします。
    ./bin/okv managed-object public-key get --output_format TEXT --uuid FAB07067-03F5-4F01-BF3F-67CEDCDE0307
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqarY8fRQlhpbtawGyVSC
    LsPrQN4RLWcnzzEo+QIcqRc4/rpVbTs7aEx63MYtheGDQ5V2NPPBYwrZOrb09ETw
    QvkXqZBD+xvAVRc8t8c6wTCvGvMgAkoDzBA7nD7nl0WBd4PVnrkDbAdELQx4DLNW
    lke/XhBeQOCKT2yA31CVDDnMKZElwcKy3G6J3jdO2e3jV5Daj5r8h7RN0f6a9HJO
    8Xmaa61Vj9duTr1SKvLmG1gAwZ2Jzkat6+PgTsKE+3n8Evy+E9YOtvyieXJG/c0V
    GZ3Uwx8HUkqkw5h6nQkCVEjNWabFHDVkGkn1aq9axg1oYJMHPTJszGSmqbfNlo6N
    ZQIDAQAB
    -----END PUBLIC KEY-----

    前述のコマンドの標準出力をpublic_key.pubなどのファイルにリダイレクトします。ダウンロードした公開キーは、PKCS#8形式です。

  4. ダウンロードした公開キーは、sshkey-genユーティリティを使用して、PKCS#8形式からauthorized_keysファイルが受け入れるSSH形式に変換します。
    ssh-keygen -i -f public_key.pub -m PKCS8
    ssh-rsa 
    AAAAB3NzaC1yc2EAAAADAQABAAABAQCpqtjx9FCWGlu1rAbJVIIuw+tA3hEtZyfPMSj5AhypFzj+ulVtOztoTHrcxi2F4YNDlXY088FjCtk6tvT0RPBC+RepkEP7G8BVFzy3xzrBMK8a8yACSgPMEDucPueXRYF3g9WeuQNsB0QtDHgMs1aWR79eEF5A4IpPbIDfUJUMOcwpkSXBwrLcboneN07Z7eNXkNqPmvyHtE3R/pr0ck7xeZprrVWP125OvVIq8uYbWADBnYnORq3r4+BOwoT7efwS
    /L4T1g62/KJ5ckb9zRUZndTDHwdSSqTDmHqdCQJUSM1ZpsUcNWQaSfVqr1rGDWhgkwc9MmzMZKapt82Wjo1l

    前述のコマンドの標準出力をファイルにリダイレクトします。この時点で、このファイルにはSSHユーザーの公開キーがSSH形式で含まれています。

  5. ユーザーの公開キーをSSHサーバーの管理者と共有します。その管理者が、適切なauthorized_keysファイルに公開キーを追加します。

16.3.5 Oracle Key Vault PKCS#11ライブラリを使用したSSHサーバーへの接続

Oracle Key VaultとSSHクライアント・ホストの構成ステップが完了すると、SSHユーザーはOpenSSHクライアントとOracle Key Vault PKCS#11ライブラリを使用してSSH接続を開始できるようになります。

OpenSSHクライアント・バージョンが8.1以降であることを確認してください。

SSHクライアント・ホストからSSHサーバー・ホストへのSSH接続を開始するには:

  1. SSHユーザーとして、SSHクライアント・ホストにログインします。
  2. OKV_HOME環境変数は、SSHユーザー・エンドポイントのインストール・ディレクトリに設定します。
  3. 次のように接続します:
    ssh -I $OKV_HOME/lib/liborapkcs.so <ssh_server_user>@<ssh_server_host>
    
    Example:
    ssh -I $OKV_HOME/lib/liborapkcs.so oracle@phoenix
  4. 前述のコマンドは、プロンプトでエンドポイントのパスワードを要求します:
    Enter pin for 'label':

    自動ログイン・エンドポイントの場合は、NULLを入力します。それ以外の場合は、エンドポイントのパスワードを入力して[Enter]を押します。

  5. この時点で、SSHセッションが確立されています。

    ノート:

    ssh-agentを使用して、PKCS#11ライブラリ・パスとPINが繰り返して指定されないようにしてください。sshエージェントの設定後に、エンドポイントのPKCS#11ライブラリのPINが追加されていると、通常どおりにteh sshコマンドを実行できます。
    たとえば:
    ssh oracle@phoenix

16.4 Oracle Key VaultとSSHの統合

ユーザーは、SSHユーザーのキーとSSHサーバーへのアクセスの両方をOracle Key Vaultで管理できます。この設定は、SSHユーザーのキーとそれらのキーを使用したSSHサーバー・アクセスを列挙する機能を提供するだけでなく、SSHユーザーのキーを透過的にローテーションできることから理想的なものになります。SSHユーザーの秘密キーには、抽出不可のマークを付けることもできます。これは、秘密キーがOracle Key Vaultデプロイメントの境界を超えることがないことを意味します。

16.4.1 SSH管理者によるSSHユーザーのキーとSSHサーバー・アクセスの両方の管理

SSH管理者である場合は、「Oracle Key VaultによるSSHサーバーへのアクセスの一元的な制御」の項で説明したように、SSHサーバーでSSHサーバー・ウォレット、SSHサーバー・エンドポイントおよびOpenSSH構成を設定できます。

SSH管理者は、SSHユーザーのキーおよびSSHクライアント・エンドポイントを設定できます。「Oracle Key VaultによるSSHユーザー・キーの管理」を参照してください。

SSH管理者は、SSHユーザーのキーを完全に制御できるため、ポリシーごとにキーをローテーションでき、SSHユーザーの公開キーをSSHサーバー・ウォレットに追加してSSHサーバーへのアクセス権を付与することやそれを取り消すこともできます。

16.4.2 SSHクライアントによるSSHユーザー・キーの管理とSSH管理者によるSSHサーバー・アクセスの管理

SSH管理者である場合は、「Oracle Key VaultによるSSHサーバーへのアクセスの一元的な制御」の項で説明したように、SSHサーバーでSSHサーバー・ウォレット、SSHサーバー・エンドポイントおよびOpenSSH構成を設定できます。

SSHユーザーは、自分のSSHユーザーのキーとSSHクライアント・エンドポイントを設定できます。「Oracle Key VaultによるSSHユーザー・キーの管理」を参照してください。

SSH管理者は、SSHユーザーの公開キー・ウォレットからSSHサーバー・ウォレットに公開キーを追加して、SSHサーバーへのアクセス権を付与または取り消すことができます。SSH管理者は、ユーザーが所有するキーをローテーションできないため、SSHユーザーにキーのローテーションを実行するように通知する必要があります。ただし、キーが定時にローテーションされていない場合、SSH管理者はSSHサーバー・ホストからアクセス権を取り消すことができます。

16.5 既存のSSHデプロイメントのOracle Key Vaultへの移行

管理者は、SSHユーザー・キー管理用とSSHサーバーのアクセス制御を管理するための両方(または、どちらか)のSSHデプロイメントを移行できます。

SSHサーバーのアクセス制御をOracle Key Vaultに移行するには:

  1. 各SSHサーバー・ホストのSSHユーザーを特定します。
  2. SSHサーバー・ホストで特定されたSSHユーザーごとに、SSHサーバー・ウォレットを作成します。
  3. SSHサーバーごとに、SSHサーバー・エンドポイントを作成します。
  4. SSHサーバー・エンドポイントに、SSHサーバー・ウォレットへの読取り専用権限を付与します。
  5. SSHサーバー・ホストに、SSHエンドポイントをデプロイします。
  6. SSHキーとして(SSHサーバー・ホスト・ユーザーのauthorized_keysファイルから)公開キーをOracle Key Vaultサーバーの対応するSSHサーバー・ウォレットにアップロードします。
  7. SSHサーバー・マッピング・ファイルを設定します。
  8. OpenSSHデーモンを設定して、デプロイしたSSHエンドポイント環境内のSSHサーバー・エンドポイント・ルックアップ・スクリプトを参照するようにします。
  9. オプションで、SSHサーバーのauthorized_keysファイルの使用を制限します。

SSHユーザー・キー管理を移行するには:

  1. Oracle Key Vaultに移行するSSHユーザーを特定します。
  2. SSHユーザー用の通常のエンドポイントと汎用のウォレットを作成します。
  3. SSHクライアント・ホストに、通常のエンドポイントをデプロイします。
  4. REST APIを使用して、すべてのSSHユーザーの公開/秘密キーをSSHキーとしてOracle Key Vaultサーバーの対応する汎用ウォレットに登録します。
  5. SSH接続を開始するときには、PKCS#11ライブラリを使用します。
    ssh -i $OKV_HOME/lib/liborapkcs.so oracle@phoenix

    Oracle Key VaultにSSHサーバーのアクセス制御とSSHユーザー・キー管理の両方を移行する場合は、2つのフェーズで実行します。最初に、Oracle Key VaultにSSHサーバーのアクセス制御を移行します。移行が必要なすべてのSSHサーバーがOracle Key Vaultで一元管理されるようになってから、Oracle Key VaultにSSHユーザー・キー管理を移行します。

16.6 OpenSSH SSHD構成のガイドライン

Oracle Key Vaultを使用してSSHユーザー・キーを安全に管理、またはSSHサーバーへのアクセスを制御する場合、SSH接続を確立する時間は複数の要因によって異なります。

SSH接続を確立するパフォーマンス特性を決定する要因は、次のとおりです:
  • SSHユーザー・キーは、ローカルまたはOracle Key Vaultで管理されます。
  • ユーザーの汎用ウォレット内のSSHユーザー・キーの数。
  • SSHサーバーへのアクセスは、authorized_keysファイルまたはOracle Key Vaultによって制御されます。
  • 同時SSH接続リクエストの数。
また、SSHクライアントまたはSSHサーバーのいずれかまたは両方がOracle Key Vaultに接続すると、SSH認証プロセス中にネットワーク遅延が加わります。

次のOpenSSH SSHD構成パラメータを確認し、必要に応じて変更します:

LoginGraceTime

  • ユーザーが正常にログインしなかった場合、サーバーはLoginGraceTime時間後に切断されます。
  • SSHユーザーのエンドポイントが複数のSSHキーにアクセスできる場合、opensshは各キーを一度に1つずつ認証しようとします。LoginGraceTimeは、ユーザーが使用可能なすべてのキーを使用して認証を試行するのに十分な値に設定する必要があります。
  • Oracleでは、各ユーザーに保持するキーは少なく抑えておくことをお薦めします。古い未使用のキーを他のウォレットに移動します。

MaxAuthTries

  • 接続ごとに許可される認証の試行最大数を指定します。
  • SSHユーザーのエンドポイントが複数のSSHキーにアクセスできる場合、opensshは各キーを一度に1つずつ使用して認証しようとします。提示された各キーは、1回の試行としてカウントされます。MaxAuthTries認証の試行後に認証が失敗した場合、SSH接続は失敗します。MaxAuthTriesパラメータは、SSHユーザーのエンドポイントからアクセス可能なSSHキーの数より大きい値に設定する必要があります。
  • Oracleでは、各ユーザーに保持するキーは少なく抑えておくことをお薦めします。古い未使用のキーを他のウォレットに移動します。

MaxStartUps

  • SSHDへの未認証での同時接続の最大数を指定します。認証が成功するか、接続のLoginGraceTimeが時間切れになるまで、追加の接続は削除されます。
  • MaxStartUpsは、環境内で予想される同時接続数を考慮して設定する必要があります。

16.7 レポート

Oracle Key Vaultには、セキュア・シェル(SSH)ユーザー・キーとSSHサーバー・アクセス制御構成の確認に加えて、SSHユーザー・アクティビティの追跡にも使用できる複数のレポートが用意されています。

16.7.1 SSHレポートの表示

SSHレポートは、すべてのユーザーが表示できます。

Oracle Key Vaultには、SSHユーザー・キーの構成、それにより許可するSSHサーバーへのアクセスおよびSSHサーバー・ホスト・アクセスの監視を一元的に管理するために使用できる複数のレポートが用意されています。次のものが含まれます:

16.7.2 SSHキー詳細レポート

SSHキー詳細レポートのグループには、SSHキー・メタデータ・レポートとSSHキー使用状況レポートが含まれます。

Oracle Key Vaultセキュア・シェル(SSH)詳細レポートは、次のレポートで構成されます:

  • SSHキー・メタデータ・レポート
  • SSHキー使用状況レポート

SSHキー・メタデータ・レポート

このレポートには、SSH公開キーと秘密キーのメタデータ(所有者、キー長、有効期限、ウォレット・メンバーシップなど)が表示されます。

このレポートは、SSHキー・インベントリを完全に可視化して、SSHキー管理のベスト・プラクティスとエンタープライズ固有のポリシーが一律に適用されるようにするために使用します。

このレポートの利用目的:
  • 弱いキーの特定 - エンタープライズ・セキュリティ・ポリシーが要求するキー・サイズより小さいキー
  • 間もなく期限切れになるキーを特定し、期限切れになる前にローテーションして中断を回避します
  • どのウォレットのメンバーでもない場合に、未使用の可能性が高いキーを特定します


SSHキー使用状況レポート

このレポートには、現在管理されているSSHキーに対するすべての操作が、エンドポイント別およびユーザー別に表示されます。

このレポートの使用目的:
  • SSHキーの使用状況を監視し、疑わしいアクティビティやキー認可またはキー属性に対する改ざんを特定します。
  • 使用パターンと未使用のキーを特定します。たとえば:
    • ユーザーは複数のSSHキーを持っている場合がありますが、一部のキーは使用されなくなっていることがあります。
    • ユーザーはOracle Key Vaultに公開キーと秘密キーの両方を持つことができますが、SSHサーバーのローカルauthorized_keysファイルの使用を示す秘密キー・アクセスのみが表示されます。


16.7.3 SSHサーバー・アクセス管理レポート

Oracle Key Vaultには、レポートにアクセスできる認可されたSSHユーザーを表示する、SSHサーバー・アクセス管理レポートが用意されています。

Oracle Key Vault SSHサーバー・アクセス管理レポートは、次のレポートで構成されます:

  • SSHサーバー認可レポート
  • SSHサーバー・アクセス・レポート
  • SSHサーバー・ウォレット・レポート

SSHサーバー認可レポート

このレポートには、SSHサーバーと、それらにアクセスする権限があるSSHユーザーが表示されます。これは、SSHサーバーにアクセスできるユーザーを確認するために使用します。

このレポートの使用目的:
  • 公開キーによってSSHサーバーにアクセスするSSHユーザーに付与された認可を確認します。

    これは、必要なユーザーにのみアクセス権が付与されていて、意図しない認可や予期しない認可があるかどうかを識別するために役立ちます。

  • 従業員が退職したときや従業員が自分のロールを変更したときなどに、残されたままになったアクセス権付与を識別します。


SSHサーバー・アクセス・レポート

このレポートには、SSHユーザーの公開キーを使用したSSHサーバーへのアクセスの試行が表示されます。SSHサーバーに誰がアクセスしているかを評価するために使用します。

SSHユーザー認証の一部として、クライアントによって提供される公開キーのフィンガープリント、SSHホスト・ユーザーとSSHサーバー・エンドポイントが参照してアクセスを決定するウォレットが記録されます。「SSH User」列に表示される情報は、SSH公開キー・メタデータ(システムに存在する場合)から導出されます。「SSH User」列に示される値「Unknown」は、SSHサーバーへのアクセスに使用されるSSH公開キーがOracle Key Vaultの外部で管理されていて、SSH公開キーに関連付けられたSSHユーザー情報がOracle Key Vault内では使用できないことを示しています。

SSH接続を確立しようとしているユーザーは、複数の公開鍵を持っていることがあります。このレポートには、ユーザーの認証に各公開キーを使用した試行が表示されます。SSHユーザーに複数の公開キーがあり、それらの公開キーの一部ではSSHサーバーへのアクセスが許可されていない場合、そのユーザーの正常なアクセス試行のエントリの前に、失敗したアクセス試行のエントリが表示されることがあります。

このレポートの使用目的:
  • SSHサーバーへのアクセスを監視して、SSHサーバーに認可されたユーザーのみがアクセスできるようにします。この情報は、セキュリティ・インシデントのフォレンジック分析に役立ちます。
  • SSHサーバーへの失敗したアクセスの試行を確認して、そうした試行が正当かどうかを確認します。


SSHサーバー・ウォレット・レポート

このレポートには、SSHサーバー・ホスト・ユーザーとしてSSHサーバーへのアクセスを認可する、SSHサーバー・ウォレットが表示されます。新しいSSHユーザーや新しいSSHサーバーのプロビジョニング時に使用します。

このレポートの使用目的:
  • 新しくプロビジョニングしたユーザーのSSH公開キーの追加が必要になるSSHサーバー・ウォレットを決定します。
  • 新しいサーバーがエンタープライズ内の別のサーバーのSSHアクセス構成に従う場合に、新しくプロビジョニングしたサーバーが使用するSSHサーバー・ウォレットを決定します。
  • アクセスを許可するSSHサーバー・ウォレットとSSHサーバーについてエンタープライズ全体の一覧を取得します。単一のSSHサーバー・ウォレットを使用して、複数のサーバーに対するSSHアクセスを認可できます。


16.7.4 SSHユーザー秘密キー管理レポート

Oracle Key Vaultには、秘密キーにアクセスできるSSHユーザーを表示する、SSHユーザー秘密キー管理レポートが用意されています。

Oracle Key Vault SSHユーザー秘密キー管理レポートは、次のレポートで構成されます:

  • SSH秘密キー認可レポート
  • SSH秘密キー使用状況レポート

SSH秘密キー認可レポート

このレポートには、SSH秘密キーの使用が許可されているエンドポイントおよびユーザーと、それらのアクセス権の付与方法が表示されます。これは、SSH秘密キーにアクセスできるユーザーを確認するために使用します。

このレポートの使用目的:
  • SSH秘密キーへのアクセス権が付与されているエンドポイントとユーザーを確認および監査します。
  • 共有秘密キーの使用を識別および制限します。SSH秘密キーは、特定のユーザーまたはエンドポイント用です。SSH秘密キーの一時共有は、そのビジネス・ニーズが完了したらすぐに削除する必要があります。


SSH秘密キー使用状況レポート

このレポートには、エンドポイント別とユーザー別のSSHユーザー秘密キーの使用が表示されます。SSHユーザー秘密キーに対する変更を評価して、それらのアクセスを確認するために使用されます。

このレポートには、SSH秘密キーを使用してSSHサーバーにアクセスしたときのアクティビティ情報と、それらに対して実行されるすべての操作が含まれます。

このレポートの使用目的:
  • SSH秘密キーの使用を確認および監査します。秘密キーのアクセス・パターンを確認して、ユーザーが休暇中でいないときのユーザーの秘密キーの使用や、予期しないエンドポイントによるユーザーの秘密キーのフェッチなど、異常なアクティビティを識別できます。
  • SSH秘密キーに対する異常な変更を識別します。たとえば、キーがOracle Key Vault境界を超えられるように、SSH秘密キーの抽出可能属性が変更されたとします。このような変更は問題の原因になることがあり、検討する必要があります。整合性が疑われる可能性があるSSHキーは、すぐにローテーションする必要があります。