第4章 OpenStack サービスの暗号化および検証

barbican を使用して、Block Storage (cinder) 暗号化鍵、Block Storage ボリュームイメージ、Object Storage (swift) オブジェクト、および Image サービス (glance) イメージなどのさまざまな Red Hat OpenStack Platform サービスを暗号化および検証することができます。

重要

Nova は、暗号化されていない場合に初回使用時に暗号化されたボリュームをフォーマットします。作成されるブロックデバイスは、コンピュートノードに提示されます。

コンテナー化されたサービスに対するガイドライン

  • 物理ノードのホストオペレーティングシステム上の設定ファイル (例: /etc/cinder/cinder.conf) は更新しないでください。コンテナー化されたサービスはこのようなファイルを参照しません。
  • コンテナー内で実行されている設定ファイルは更新しないでください。コンテナーを再起動すると、変更が失われます。

    代わりに、コンテナー化されたサービスを変更する必要がある場合は、コンテナーの生成に使用される /var/lib/config-data/puppet-generated/ の設定ファイルを更新します。

    以下に例を示します。

    • keystone: /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf
    • cinder: /var/lib/config-data/puppet-generated/cinder/etc/cinder/cinder.conf
    • nova: /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf

    変更は、コンテナーを再起動した後に適用されます。

4.1. 保存中の Object Storage (swift) オブジェクトの暗号化

デフォルトでは、Object Storage (swift) にアップロードしたオブジェクトは暗号化されず保管されます。したがって、ファイルシステムからオブジェクトに直接アクセスすることが可能です。このため、ディスクを破棄する前に適切に消去しなかった場合には、セキュリティーリスクとなってしまいます。barbican を有効にすると、Object Storage サービス (swift) は、保管されている (at-rest) オブジェクトを透過的に暗号化および復号化できます。at-rest 暗号化は、in-transit 暗号化とは異なり、ディスクに保管されている間にオブジェクトが暗号化されることを指します。

Swift はこれらの暗号化タスクを透過的に実行し、オブジェクトは swift にアップロードされる際には自動的に暗号化され、ユーザーに提供される際には自動的に復号化されます。この暗号化と復号化は、Barbican に保管されている同じ (対称) キーを使用して処理されます。

注記

データが暗号化された状態で保存されているので、暗号化を有効にし、swift クラスターにデータを追加した後には暗号化を無効にすることはできません。その結果、同じキーで暗号化を再度有効にするまで、暗号化が無効になっている場合は、データは読み取りできなくなります。

前提条件

  • OpenStack Key Manager がインストールされ、有効である。

手順

  1. 環境ファイルに SwiftEncryptionEnabled: True パラメーターを追加してから、/home/stack/overcloud_deploy.sh を使用して openstack overcloud deploy を再実行します。
  2. swift が at-rest 暗号化を使用するように設定されていることを確認します。

    $ crudini --get /var/lib/config-data/puppet-generated/swift/etc/swift/proxy-server.conf pipeline-main pipeline
    
    pipeline = catch_errors healthcheck proxy-logging cache ratelimit bulk tempurl formpost authtoken keystone staticweb copy container_quotas account_quotas slo dlo versioned_writes kms_keymaster encryption proxy-logging proxy-server

    結果には、encryption のエントリーが含まれている必要があります。