第1章 オーバークラウドでの暗号化に Fernet キーの使用

Fernet はデフォルトのトークンプロバイダーであり、uuid に置き換わるものです。Fernet デプロイメントを確認して、Fernet キーをローテーションできます。Fernet は、/var/lib/config-data/puppet-generated/keystone/etc/keystone/fernet-keys に保存されている 3 種類のキーを使用します。最も数値の高いディレクトリーには、新しいトークンを生成し、既存のトークンを復号するプライマリーキーが含まれます。

Fernet キーのローテーションでは、以下のプロセスを使用します。

  1. プライマリーキーはセカンダリーキーになります。
  2. <system> は新しいプライマリーキーを発行します。送信プライマリーキーは無効になりました。セカンダリーキーを使用して、以前のプライマリーキーに関連付けられたトークンを復号できますが、新しいトークンを発行することはできません。

Fernet 鍵のローテーションサイクルの長さを決定する際には、組織のセキュリティー体制に従います。組織にガイダンスがない場合は、セキュリティー上の理由から、毎月のローテーションサイクルが推奨されます。

1.1. Fernet デプロイメントの確認

Fernet トークンが適切に機能していることを確認するには、コントローラーノードの IP アドレスを取得し、コントローラーノードに対して SSH を実行し、トークンドライバーおよびプロバイダーの設定を確認します。

手順

  1. コントローラーノードの IP アドレスを取得します。

    [stack@director ~]$ source ~/stackrc
    [stack@director ~]$ openstack server list
    --------------------------------------------------------------------------------------------+
    | ID                                   | Name                    | Status | Networks            |
    --------------------------------------------------------------------------------------------+
    | 756fbd73-e47b-46e6-959c-e24d7fb71328 | overcloud-controller-0  | ACTIVE | ctlplane=192.0.2.16 |
    | 62b869df-1203-4d58-8e45-fac6cd4cfbee | overcloud-novacompute-0 | ACTIVE | ctlplane=192.0.2.8  |
    --------------------------------------------------------------------------------------------+
  2. コントローラーノードに対して SSH を実行します。

    [heat-admin@overcloud-controller-0 ~]$ ssh heat-admin@192.0.2.16
  3. トークンドライバーおよびプロバイダー設定の値を取得します。

    [heat-admin@overcloud-controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token driver
    sql
    [heat-admin@overcloud-controller-0 ~]$ sudo crudini --get /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf token provider
    fernet
  4. Fernet プロバイダーをテストします。

    [heat-admin@overcloud-controller-0 ~]$ exit
    [stack@director ~]$ source ~/overcloudrc
    [stack@director ~]$ openstack token issue
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Field | Value |
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | expires | 2016-09-20 05:26:17+00:00 |
    | id | gAAAAABX4LppE8vaiFZ992eah2i3edpO1aDFxlKZq6a_RJzxUx56QVKORrmW0-oZK3-Xuu2wcnpYq_eek2SGLz250eLpZOzxKBR0GsoMfxJU8mEFF8NzfLNcbuS-iz7SV-N1re3XEywSDG90JcgwjQfXW-8jtCm-n3LL5IaZexAYIw059T_-cd8 |
    | project_id | 26156621d0d54fc39bf3adb98e63b63d |
    | user_id | 397daf32cadd490a8f3ac23a626ac06c |
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

    結果には長い Fernet トークンが含まれます。