Apigee mTLS を構成する

Apigee mTLS をクラスタ内のすべてのノードにインストールすると、 apigee-mtls コンポーネントを構成して初期化する必要があります。そのためには、生成された 鍵ペアを作成し、証明書と鍵ペアを 管理マシン上の構成ファイルにインポートします。次に、Kubernetes の 同じ生成されたファイルと構成ファイルをクラスタ内のすべてのノードに割り当て、ローカル apigee-mtls コンポーネント。

apigee-mtls を構成する(初期インストール後)

このセクションでは、Apigee mTLS の構成を 最初のインストール。Deployment の仕様を更新する方法については、 既存のApigee mTLS のインストールについては、既存の apigee-mtls を変更するをご覧ください 構成をご覧ください。

このセクションは、単一のデータセンターへのインストールを対象としています。詳細情報 マルチ データセンター設定での Apigee mTLS の構成について詳しくは、以下をご覧ください。 Apigee mTLS 用に複数のデータセンターを構成する

apigee-mtls を構成する一般的なプロセスは次のとおりです。

  1. 構成ファイルを更新する: 構成ファイルを更新して apigee-mtls を含めます。 設定。
  2. Consul をインストールして認証情報を生成する: インストール Consul と(必要に応じて)TLS 認証情報の生成に使用します(1 回のみ)。

    さらに、Apigee mTLS 構成ファイルを次のように編集します。

    1. 認証情報を追加する
    2. クラスタのトポロジを定義する

    既存の認証情報または Consul で生成します。

  3. 認証情報と構成ファイルを配布します 同じ生成された証明書と鍵のペアと更新された構成ファイルをすべてのノードに配布します。 必要があります。
  4. apigee-mtls を初期化: 各ノードに apigee-mtls コンポーネントを配置します。

それぞれの手順は、次のセクションで説明します。

ステップ 1: 構成ファイルを更新する

このセクションでは、mTLS 構成を含めるために構成ファイルを変更する方法について説明します。 プロパティです。構成ファイルの一般的な詳細については、 構成の作成 。

mTLS 関連のプロパティで構成ファイルを更新したら、構成ファイルを クラスタ内のすべてのノードを確認してから、apigee-mtls コンポーネントをそれらのノードで初期化します。 説明します。

構成ファイルを更新するには:

  1. 管理マシンで、構成ファイルを開いて編集します。
  2. 次の一連の mTLS 構成プロパティをコピーして、構成に貼り付けます ファイル:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    実際の構成に合わせて、各プロパティの値を設定します。

    次の表に、これらの構成プロパティを示します。

    プロパティ 説明
    ALL_IP クラスタ内のすべてのノードのプライベート ホスト IP アドレスをスペースで区切ったリスト。

    IP アドレスの順序は重要ではないが、すべての IP アドレスが同じでなければならない 構成ファイルを管理できます。

    複数のデータセンターに Apigee mTLS を構成する場合は、 すべてのホストのすべての IP アドレスにアクセスできます。

    LDAP_MTLS_HOSTS クラスタ内の OpenLDAP ノードのプライベート ホスト IP アドレス。
    ZK_MTLS_HOSTS

    ZooKeeper ノードがホストされているプライベート ホスト IP アドレスのスペース区切りリスト 構成されます。

    なお、要件に基づいて、 少なくとも 3 つの ZooKeeper ノードが必要です。

    CASS_MTLS_HOSTS Cassandra サーバーがホストされているプライベート ホスト IP アドレスをスペースで区切ったリスト 構成されます。
    PG_MTLS_HOSTS Postgres サーバーがホストされているプライベート ホスト IP アドレスをスペースで区切ったリスト 構成されます。
    RT_MTLS_HOSTS Router がホストされているプライベート ホスト IP アドレスをスペースで区切ったリスト 作成します。
    MTLS_ENCAPSULATE_LDAP Message Processor と LDAP サーバー間の LDAP トラフィックを暗号化します。次に設定 y
    MS_MTLS_HOSTS Management Server ノードが存在するプライベート ホスト IP アドレスをスペースで区切ったリスト ホストされます。
    MP_MTLS_HOSTS Message Processor が実行されているプライベート ホスト IP アドレスをスペースで区切ったリスト ホストされます。
    QP_MTLS_HOSTS Qpid サーバーがホストされているプライベート ホスト IP アドレスをスペースで区切ったリスト 作成します。
    ENABLE_SIDECAR_PROXY Cassandra と Postgres がサービス メッシュを認識するかどうかを決定します。

    この値は「y」に設定する必要があります。

    ENCRYPT_DATA Consul が使用する Base64 エンコードの暗号鍵。この鍵は、 ステップ 2: Consul と Terraform のインストールの consul keygen コマンド 認証情報の生成をご覧ください。

    この値は、クラスタ内のすべてのノードで同じである必要があります。

    PATH_TO_CA_CERT ノード上の証明書ファイルの場所。このファイルは次の場所に生成されました: ステップ 2: Consul をインストールして認証情報を生成する

    このロケーションは、クラスタ内のすべてのノードで同じ 同じです。

    証明書は X509v3 でエンコードする必要があります。

    PATH_TO_CA_KEY ノード上の鍵ファイルの場所。このファイルは次の場所に生成されました: ステップ 2: Consul をインストールして認証情報を生成する

    このロケーションは、クラスタ内のすべてのノードで同じ 同じです。

    鍵ファイルは X509v3 でエンコードする必要があります。

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    次の場合、証明書の有効な日数 カスタム証明書を生成します。

    デフォルト値は 365 です。最大値は 7,865 日(5 年)です。

    上記のプロパティに加えて、Apigee mTLS はいくつかの追加プロパティを使用します。 マルチデータセンター構成に インストールすると詳細については、次をご覧ください: 複数のデータセンターを構成する

  3. ENABLE_SIDECAR_PROXY が「y」に設定されていることを確認します。
  4. ホスト関連のプロパティで IP アドレスを更新します。必ず 各ノードを参照する場合は、public IP アドレスではなく、プライベート IP アドレスを使用します。 制限します。

    後のステップで、次のような他のプロパティの値を設定します。 ENCRYPT_DATAPATH_TO_CA_CERTPATH_TO_CA_KEY。あなたは 値がまだ設定されていません。

    apigee-mtls 構成プロパティを編集する場合は、次の点に注意してください。

    • プロパティはすべて文字列です。すべてのプロパティの値を double または double でラップする必要があります。 なりません。
    • ホスト関連の値に複数のプライベート IP アドレスがある場合は、各 IP アドレスを区切る できます。
    • ホスト関連のすべてのリソースに、ホスト名やパブリック IP アドレスではなく、プライベート IP アドレスを使用する プロパティを宣言します。
    • プロパティ値の IP アドレスの順序は、すべての 構成ファイルを管理できます。
  5. 変更を構成ファイルに保存します。

ステップ 2: Consul をインストールして認証情報を生成する

このセクションでは、Consul をインストールして、アプリケーションが使用する認証情報を生成する方法について説明します。 コンポーネントが含まれます。

認証情報を生成するには、次のいずれかの方法を選択する必要があります。

  • (推奨)Consul を使用して独自の認証局(CA)を作成する。 セクション
  • Apigee mTLS で既存の CA の認証情報を使用する(高度)

認証情報について

認証情報は次の要素で構成されます。

  • 証明書: TLS 証明書
  • 鍵: TLS 公開鍵
  • Gossip メッセージ: Base64 でエンコードされた暗号鍵

これらの各ファイルの 1 つのバージョンを 1 回だけ生成します。次に、その鍵と証明書をコピーして、 構成ファイルを作成し、構成ファイルに暗号鍵を追加して、 すべてのノードにコピーします。

Consul の暗号化の実装の詳細については、以下をご覧ください。

Consul をインストールして認証情報を生成する

Apigee mTLS で使用する認証情報を生成するには、 Private Cloud クラスタ内のノード間のセキュアな通信を認証するには、ローカル Consul バイナリ。その結果 事前に管理マシンに Consul をインストールする必要がある 認証情報を生成できます。

Consul をインストールして mTLS 認証情報を生成するには:

  1. 管理マシンで、Consul 1.8.0 バイナリを HashiCorp のウェブサイト
  2. ダウンロードしたアーカイブ ファイルの内容を抽出します。たとえば、内容を抽出して、 /opt/consul/
  3. 管理マシンで、次のコマンドを実行して、新しい認証局(CA)を作成します。 次のコマンドを実行します。
    /opt/consul/consul tls ca create

    Consul は、証明書と鍵のペアを形成する次のファイルを作成します。

    • consul-agent-ca.pem(証明書)
    • consul-agent-ca-key.pem(鍵)

    デフォルトでは、証明書ファイルと鍵ファイルは X509v3 でエンコードされます。

    後で、これらのファイルをクラスタ内のすべてのノードにコピーします。ただし、現時点では ノードのどこにそのファイルを配置するかを決定するだけです。同じ名前にする必要がある ローカルに配置する必要があります。例: /opt/apigee/

  4. 構成ファイルで、PATH_TO_CA_CERT の値を次のロケーションに設定します。 ノード上の consul-agent-ca.pem ファイルをコピーします。次に例を示します。
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. PATH_TO_CA_KEY の値を、コピー先のロケーションに設定します。 ノード上の consul-agent-ca-key.pem ファイル。次に例を示します。
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. 次のコマンドを実行して、Consul の暗号鍵を作成します。
    /opt/consul/consul keygen

    Consul は、次のようなランダムな文字列を出力します。

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. この生成された文字列をコピーし、ENCRYPT_DATA プロパティの値として設定します。 指定します。次に例を示します。
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. 構成ファイルを保存します。

次の例は、構成ファイル内の mTLS 関連の設定を示しています 値):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

ステップ 3: 構成ファイルと認証情報を配布する

scp などのツールを使用して、次のファイルをすべてのノードにコピーします。

  • 構成ファイル: このファイルの更新版をコピーして、 (ZooKeeper を実行しているノードだけでなく)すべてのノードに既存のバージョンが存在することを確認します。
  • consul-agent-ca.pem: 構成ファイル内の PATH_TO_CA_CERT
  • consul-agent-ca-key.pem: 構成ファイル内の PATH_TO_CA_KEY

証明書ファイルと鍵ファイルのコピー先が、 ステップ 2: Consul をインストールして生成する 認証情報

ステップ 4: apigee-mtls を初期化する

各ノードに apigee-mtls をインストールした後、構成ファイルを更新して 認証情報がクラスタ内のすべてのノードにコピーされたら、 各ノード上の apigee-mtls コンポーネント。

apigee-mtls を初期化するには:

  1. クラスタ内のノードに root ユーザーとしてログインします。以下の手順は、Compute Engine インスタンス内の 指定することもできます。
  2. apigee:apigee ユーザーを、更新された構成ファイルのオーナーにします。 次の例をご覧ください。
    chown apigee:apigee config_file
  3. 次のコマンドを実行して、apigee-mtls コンポーネントを構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (省略可)次のコマンドを実行して、設定が正常に完了したことを確認します。
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. 次のコマンドを実行して、Apigee mTLS を起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Apigee mTLS をインストールしたら、このコンポーネントを他のコンポーネントより先に起動する必要があります。 ノードに配置されます。

  6. (Cassandra ノードのみ)Cassandra がノード内で機能するには、追加の引数が必要です。 セキュリティ メッシュです。そのため、各 Cassandra ノードで次のコマンドを実行する必要があります。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (Postgres ノードのみ)Postgres が機能するには、追加の引数が必要です。 セキュリティ メッシュです。そのため、Postgres ノードで次のことを行う必要があります。

    (メインのみ)

    1. Postgres プライマリ ノードで次のコマンドを実行します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (スタンバイのみ)

    1. 既存の Postgres データをバックアップします。Apigee mTLS をインストールするには、 プライマリ/スタンバイ ノードが使用されるため、データ損失が発生します。詳細については、次をご覧ください: プライマリ/スタンバイ レプリケーションを Postgres
    2. すべての Postgres データを削除します。
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. 次の例のように、Postgres を構成してから Postgres を再起動します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
    で確認できます。

    マルチデータセンター トポロジにインストールする場合は、 構成ファイルが更新されます。

  8. ノードで残りの Apigee コンポーネントを起動します。 start order: 次の例をご覧ください。
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. クラスタ内のノードごとにこの手順を繰り返します。
  10. (省略可)以下を使用して apigee-mtls の初期化が成功したことを確認する または複数のメソッドを使用できます。 <ph type="x-smartling-placeholder">
      </ph>
    1. iptables の構成を検証する
    2. リモート プロキシのステータスを確認する
    3. クォーラムのステータスを確認する

    これらの各方法については、 構成します

既存の apigee-mtls 構成を変更する

既存の apigee-mtls 構成をカスタマイズするには、アンインストールして apigee-mtls を再インストールします。また、このカスタマイズをすべての 説明します。

既存の Apigee mTLS 構成を変更するときに、この点を繰り返すと、次のようになります。

  • 構成ファイルを変更する場合は、まず apigee-mtls をアンインストールし、 setup または configure を再実行します。
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • クラスタ内のすべてのノードで、setup または configure をアンインストールして再実行する必要があります。 単一ノードではなくクラスタです
で確認できます。