Show Table of Contents
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
- トークン生成時に使用するアルゴリズムを指定します。使用可能な値は
UUID
とPKI
です。デフォルトはPKI
です。
3.3.2.2. 公開鍵インフラストラクチャーファイルの作成
以下のセクションでは、Identity サービスが使用する PKI ファイルの作成と設定の方法を説明します。以下の手順で記載するステップはすべて、Identity サービスをホストするサーバーに
root
ユーザーとしてログインして実行する必要があります。
手順3.3 Identity サービスが使用する PKI ファイルの作成
keystone-manage pki_setup
コマンドを実行します。#
keystone-manage pki_setup \
--keystone-user keystone \
--keystone-group keystone
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 サービスのトラフィックを許可するためのファイアウォール設定
- テキストエディターで
/etc/sysconfig/iptables
ファイルを開きます。 - このファイルに、ポート
5000
および35357
で TCP トラフィックを許可する INPUT ルールを追加します。新規ルールは、トラフィックを REJECT する INPUT ルールよりも前に記載する必要があります。-A INPUT -p tcp -m multiport --dports 5000,35357 -j ACCEPT
/etc/sysconfig/iptables
ファイルへの変更を保存します。iptables
サービスを再起動して、変更を有効にします。#
systemctl restart iptables.service
3.3.4. Identity サービスのデータベースへのデータ投入
Identity サービスのデータベース接続文字列を適切に設定した後には、Identiy サービスのデータベースにデータを投入します。
手順3.5 Identity サービスのデータベースへのデータ投入
- Identity サービスをホストするシステムにログインします。
keystone
ユーザーに切り替え、/etc/keystone/keystone.conf
で特定されているデータベースを初期化してデータを投入します。#
su keystone -s /bin/sh -c "keystone-manage db_sync"
3.3.5. コレクション内のエンティティー数の制限
以下の手順を使用して、list コマンドが返す結果の数を制限します。結果数が利用可能なメモリーよりも大きい場合に発生する問題を回避したり、一覧の応答時間が長くならないようにしたりするために、上限を指定できます。
手順3.6 コレクション内のエンティティー数の制限
- テキストエディターで
/etc/keystone/keystone.conf
を開きます。 [DEFAULT]
セクションでlist_limit
を使用してグローバル値を設定します。- オプションで、個別のセクションで特定の制限を指定することで、このグローバル値を無効にすることができます。以下に例を示します。
[assignment] list_limit = 100
list_{entity}
の呼び出しへの応答が省略された場合には、応答の状態コードが 200 (OK) のままですが、コレクション内の truncated
属性が true
に設定されます。
Comments