3.3. Identity サービスの設定

3.3.1. Identity サービスのデータベース接続の設定

Identity サービスによって使用されるデータベース接続文字列は、/etc/keystone/keystone.conf ファイルで定義されます。サービスを起動する前に、有効なデータベースサーバーをポイントするように更新しておく必要があります。
以下の手順に記載するステップはすべて、Identity サービスをホストするサーバーに root ユーザーとしてログインして実行する必要があります。

手順3.2 Identity サービスの SQL データベース接続の設定

  • connection 設定キーの値を設定します。
    # openstack-config --set /etc/keystone/keystone.conf \
       sql connection mysql://USER:PASS@IP/DB
    以下の値を置き換えてください。
    • USER は、Identity サービスのデータベースのユーザー名 (通常は keystone) に置き換えます。
    • PASS は選択したデータベースユーザーのパスワードに置き換えます。
    • IP は、Identity サーバーの IP アドレスまたはホスト名に置き換えます。
    • DB は、Identity サービスのデータベースの名前 (通常は keystone) に置き換えます。

重要

この接続設定キーに指定する IP アドレスまたはホスト名は、keystone データベースの作成時に keystone データベースユーザーがアクセスを許可された IP アドレスまたはホスト名と一致する必要があります。また、データベースがローカルでホストされ、keystone データベースの作成時に「localhost」へのアクセス権を付与した場合には、「localost」と入力する必要があります。

3.3.2. 公開鍵インフラストラクチャーの設定

3.3.2.1. 公開鍵インフラストラクチャーの概要

Identity サービスは、ユーザーおよびその他のサービスが認証に使用する、暗号により署名されたドキュメントであるトークンを生成します。トークンは、秘密鍵で署名される一方、公開鍵は X509 証明書で提供されます。
証明書および関連する設定キーは、keystone-manage pki_setup コマンドで自動的に生成されますが、サードパーティーの証明機関を使用して必要な証明書の作成と署名を手動で行うことも可能です。サードパーティーの証明書を使用する場合には、Identity サービスの設定を手動で更新して、証明書と関連ファイルをポイントするようにする必要があります。
/etc/keystone/keystone.conf 設定ファイルの [signing] セクションには、PKI 設定に関連する以下のような設定キーが表示されます。
ca_certs
certfile 設定キーによって示された証明書を発行した認証局向けに証明書の場所を指定します。デフォルト値は /etc/keystone/ssl/certs/ca.pem です。
ca_key
certfile 設定キーによって示された証明書を発行した認証局のキーを指定します。デフォルト値は /etc/keystone/ssl/certs/cakey.pem です。
ca_password
認証局のファイルを開くために必要なパスワード (該当する場合) を指定します。値が指定されていない場合に、デフォルトのアクションではパスワードを使用しません。
certfile
トークンの検証に使用する必要のある証明書の場所を指定します。値が指定されていない場合には、デフォルト値の /etc/keystone/ssl/certs/signing_cert.pem が使用されます。
keyfile
トークンの署名時に使用する必要のある秘密鍵の場所を指定します。値が指定されていない場合には、デフォルト値の /etc/keystone/ssl/private/signing_key.pem が使用されます。
token_format
トークン生成時に使用するアルゴリズムを指定します。使用可能な値は UUIDPKI です。デフォルトは PKI です。

3.3.2.2. 公開鍵インフラストラクチャーファイルの作成

以下のセクションでは、Identity サービスが使用する PKI ファイルの作成と設定の方法を説明します。以下の手順で記載するステップはすべて、Identity サービスをホストするサーバーに root ユーザーとしてログインして実行する必要があります。

手順3.3 Identity サービスが使用する PKI ファイルの作成

  1. keystone-manage pki_setup コマンドを実行します。
    # keystone-manage pki_setup \
       --keystone-user keystone \
       --keystone-group keystone
  2. keystone ユーザーが /var/log/keystone/ および /etc/keystone/ssl/ のディレクトリーを所有するように設定します。
    # chown -R keystone:keystone /var/log/keystone \
       /etc/keystone/ssl/

3.3.2.3. 公開鍵インフラストラクチャーファイルを使用するための Identity サービスの設定

Identity サービスが使用するように PKI ファイルを生成した後には、Identity サービスがこのファイルを使用するように有効化する必要があります。
/etc/keystone/keystone.conf ファイルの属性値を設定します。
# openstack-config --set /etc/keystone/keystone.conf \
 signing token_format PKI
# openstack-config --set /etc/keystone/keystone.conf \
 signing certfile /etc/keystone/ssl/certs/signing_cert.pem
# openstack-config --set /etc/keystone/keystone.conf \
 signing keyfile /etc/keystone/ssl/private/signing_key.pem
# openstack-config --set /etc/keystone/keystone.conf \
 signing ca_certs /etc/keystone/ssl/certs/ca.pem
# openstack-config --set /etc/keystone/keystone.conf \
 signing key_size 1024
# openstack-config --set /etc/keystone/keystone.conf \
 signing valid_days 3650
# openstack-config --set /etc/keystone/keystone.conf \
 signing ca_password None
また、/etc/keystone/keystone.conf ファイルを直接編集して、これらの値を更新します。

3.3.3. Identity サービスのトラフィックを許可するためのファイアウォール設定

OpenStack 環境内の各コンポーネントは、認証に Idenity サービスを使用するため、このサービスへアクセスできる必要があります。
Block Storage サービスをホストするシステムのファイアウォール設定を変更して、これらのポートでのネットワークトラフィックを許可する必要があります。以下の手順に記載するステップはすべて、Identity サービスをホストするサーバーに root ユーザーとしてログインして実行する必要があります。

手順3.4 Identity サービスのトラフィックを許可するためのファイアウォール設定

  1. テキストエディターで /etc/sysconfig/iptables ファイルを開きます。
  2. このファイルに、ポート 5000 および 35357 で TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。
    -A INPUT -p tcp -m multiport --dports 5000,35357 -j ACCEPT
  3. /etc/sysconfig/iptables ファイルへの変更を保存します。
  4. iptables サービスを再起動して、変更を有効にします。
    # systemctl restart iptables.service

3.3.4. Identity サービスのデータベースへのデータ投入

Identity サービスのデータベース接続文字列を適切に設定した後には、Identiy サービスのデータベースにデータを投入します。

手順3.5 Identity サービスのデータベースへのデータ投入

  1. Identity サービスをホストするシステムにログインします。
  2. keystone ユーザーに切り替え、/etc/keystone/keystone.conf で特定されているデータベースを初期化してデータを投入します。
    # su keystone -s /bin/sh -c "keystone-manage db_sync"

3.3.5. コレクション内のエンティティー数の制限

以下の手順を使用して、list コマンドが返す結果の数を制限します。結果数が利用可能なメモリーよりも大きい場合に発生する問題を回避したり、一覧の応答時間が長くならないようにしたりするために、上限を指定できます。

手順3.6 コレクション内のエンティティー数の制限

  1. テキストエディターで /etc/keystone/keystone.conf を開きます。
  2. [DEFAULT] セクションで list_limit を使用してグローバル値を設定します。
  3. オプションで、個別のセクションで特定の制限を指定することで、このグローバル値を無効にすることができます。以下に例を示します。
    [assignment]
    list_limit = 100
    
list_{entity} の呼び出しへの応答が省略された場合には、応答の状態コードが 200 (OK) のままですが、コレクション内の truncated 属性が true に設定されます。