Apigee mTLS を構成する

クラスタ内のすべてのノードに apigee-mtls コンポーネントをインストールすると、次の処理が行われます。 構成と初期化が必要です。これを行うには、証明書と鍵のペアを生成し、 管理マシン上の構成ファイルにインポートします。次に、Kubernetes の 同じ生成されたファイルをクラスタ内のすべてのノードに割り当て、ローカル 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 コンポーネントをそれらのノードで初期化します。 説明します。

構成ファイルを参照するコマンドでは「config_file」を使用します。そのエントリが location は可変で、各ノードの保存場所によって異なります。

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

  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 をインストールして認証情報を生成する

ローカルの Consul バイナリを使用して、Apigee mTLS が使用する認証情報を生成します。 プライベート クラウド クラスタ内のノード間の安全な通信の認証を行う。その結果 事前に管理マシンに Consul をインストールする必要がある 認証情報を生成できます。

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

  1. 管理マシンで、Consul 1.6.2 バイナリを 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: 構成ファイルと認証情報を配布する

次のようなツールを使用して、ZooKeeper を実行しているノードに次のファイルをコピーします。 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 をアンインストールして再実行する必要があります。 単一ノードではなくクラスタです
で確認できます。