16.4. TLS を使用するエンドポイントの設定

本セクションでは、既存のデプロイメントで TLS によるエンドポイントの暗号化を有効にする方法、さらにエンドポイントが正しく設定されていることを確認する方法について説明します。

TLS everywhere を有効にする場合、ドメインの構造化方法に応じて、さまざまなアップグレードパスを利用することができます。以下の例では、サンプルドメイン名を使用してアップグレードパスを説明します。

  • オーバークラウドドメイン(lab.local)が IdM ドメイン(lab.local)と一致する 内部 エンドポイントおよび admin エンドポイントで、既存のパブリックエンドポイント証明書を再利用して、TLS everywhere を有効にします。
  • オーバークラウドドメイン(lab.local)が IdM ドメイン(lab.local)と一致する 内部 および admin エンドポイントで、IdM が新しいパブリックエンドポイント証明書を発行できるようにし、TLS everywhere を有効にすることが可能です。
  • オーバークラウドドメイン(site1.lab.local)が IdM ドメイン(lab.local)のサブドメインである 内部 および admin エンドポイントで、既存のパブリックエンドポイント証明書を再利用して、TLS everywhere を有効にします。
  • オーバークラウドドメイン(site1.lab.local)が IdM ドメイン(lab.local)のサブドメインである場合に、IdM が新しいパブリックエンドポイント証明書を発行し、内部 および admin エンドポイントで TLS everywhere を有効にすることを許可します。

本セクションの以降の手順で、上記のさまざまな組み合わせを使用して、この統合を設定する方法について説明します。

16.4.1. IdM と同じドメインを使用するデプロイメントのアンダークラウドインテグレーションの設定

以下の手順では、IdM と同じドメインを使用するデプロイメントのアンダークラウドインテグレーションを設定する方法について説明します。

Red Hat OpenStack Platform は novajoin を使用して Red Hat Identity Management(IdM)と統合し、暗号化証明書を発行および管理します。以下の手順では、アンダークラウドを IdM に登録し、トークンを生成し、アンダークラウド設定でトークンを有効にしてから、アンダークラウドおよびオーバークラウドのデプロイメントスクリプトを再実行します。以下に例を示します。

  1. IdM と統合するために python-novajoin をインストールします。

    [stack@undercloud-0 ~]$ sudo yum install python-novajoin
  2. novajoin 設定スクリプトを実行し、IdM デプロイメントの設定情報を指定します。以下に例を示します。

    [stack@undercloud-0 ~]$ sudo novajoin-ipa-setup --principal admin --password ComplexRedactedPassword \
      --server ipa.lab.local --realm lab.local --domain lab.local \
      --hostname undercloud-0.lab.local --precreate
    ...
    0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wg

    この出力には、IdM のワンタイムパスワード (OTP) が含まれますが、この値はご自分のデプロイメントとは異なります。

  3. novajoin を使用するようにアンダークラウドを設定し、ワンタイムパスワード(OTP)を追加し、DNS に IdM IP アドレスを使用し、オーバークラウドドメインを記述します。実際のデプロイメントに合わせて、この例を修正する必要があります。

    [stack@undercloud ~]$ vi undercloud.conf
    ...
    enable_novajoin = true
    ipa_otp = 0Uvua6NyIWVkfCSTOmwbdAobsqGH2GONRJrW24MoQ4wg
    undercloud_hostname = undercloud-0.lab.local
    undercloud_nameservers = X.X.X.X
    overcloud_domain_name = lab.local
    ...
  4. アンダークラウドに novajoin サービスをインストールします。

    [stack@undercloud ~]$ openstack undercloud install
  5. オーバークラウドの IP アドレスを DNS に追加します。実際のデプロイメントに合わせて、この例を修正する必要があります。

    注記: オーバークラウドの network-environment.yaml を確認し、各ネットワークの範囲内の仮想 IP アドレスを選択します。

    [root@ipa ~]$ ipa dnsrecord-add lab.local overcloud --a-rec=10.0.0.101
    [root@ipa ~]# ipa dnszone-add ctlplane.lab.local
    [root@ipa ~]# ipa dnsrecord-add ctlplane.lab.local overcloud --a-rec 192.168.24.101
    [root@ipa ~]# ipa dnszone-add internalapi.lab.local
    [root@ipa ~]# ipa dnsrecord-add internalapi.lab.local overcloud --a-rec 172.17.1.101
    [root@ipa ~]# ipa dnszone-add storage.lab.local
    [root@ipa ~]# ipa dnsrecord-add storage.lab.local overcloud --a-rec 172.17.3.101
    [root@ipa ~]# ipa dnszone-add storagemgmt.lab.local
    [root@ipa ~]# ipa dnsrecord-add storagemgmt.lab.local overcloud --a-rec 172.17.4.101
  6. すべてのエンドポイント用に public_vip.yaml マッピングを作成します。

    Parameter_defaults:
        PublicVirtualFixedIPs: [{'ip_address':'10.0.0.101'}]
        ControlFixedIPs: [{'ip_address':'192.168.24.101'}]
        InternalApiVirtualFixedIPs: [{'ip_address':'172.17.1.101'}]
        StorageVirtualFixedIPs: [{'ip_address':'172.17.3.101'}]
        StorageMgmtVirtualFixedIPs: [{'ip_address':'172.17.4.101'}]
        RedisVirtualFixedIPs: [{'ip_address':'172.17.1.102'}]