設定 Apigee mTLS

Private Cloud v4.19.01 版

在叢集中的每個節點上安裝 apigee-mtls 元件後, 必須加以設定並初始化方法是產生憑證/金鑰組並更新 管理機器上的設定檔。接著您將 將相同的檔案複製到叢集中的所有節點,並初始化 apigee-mtls 元件。

設定 apigee-mtls (初始安裝後)

本節說明如何立即為單一資料中心設定 Apigee mTLS 首次安裝的應用程式如要瞭解如何更新「現有」的 Apigee mTLS,請參閱變更現有的 apigee-mtls 設定。資訊 請參閱設定多個資料中心 。

以下是設定 apigee-mtls:

  1. 更新設定檔在您的裝置上 管理機器,請更新設定檔,加入 apigee-mtls 可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目
  2. 安裝 Consul 並產生憑證安裝 Consul 並將其用於產生 TLS 憑證 (僅限一次)。

    此外,請將 Apigee mTLS 設定檔編輯到:

    1. 新增憑證資訊
    2. 定義叢集的拓撲

    請注意,您可以使用現有憑證 透過 Consul 產生這類檔案

  3. 發布設定檔和憑證 將相同產生的憑證/金鑰組和更新後的設定檔發布到所有節點 叢集內的 Pod 清單
  4. 初始化 apigee-mtls將 每個節點上的 apigee-mtls 元件。

每個步驟都會在後續章節中說明。

步驟 1:更新設定檔

本節說明如何修改設定檔,加入 mTLS 設定 資源。如需更多關於設定檔的一般資訊,請參閱 建立設定 檔案

使用 mTLS 相關資源更新設定檔後,請將檔案複製到 ,再對這些節點初始化 apigee-mtls 元件 節點。

參照設定檔的指令會使用「config_file」代表 會因您在各節點上的儲存位置而異。

如何更新設定檔:

  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,請列出 。

    LDAP_MTLS_HOSTS 叢集內 OpenLDAP 節點的私人主機 IP 位址。
    ZK_MTLS_HOSTS

    託管 ZooKeeper 節點的私人主機 IP 位址清單 (以空格分隔) 叢集內的 Pod 清單

    請注意,根據規定,你必須 至少三個 ZooKeeper 節點。

    CASS_MTLS_HOSTS 託管 Cassandra 伺服器的私人主機 IP 位址清單 (以空格分隔) 叢集內的 Pod 清單
    PG_MTLS_HOSTS 託管 Postgres 伺服器的私人主機 IP 位址清單 (以空格分隔) 叢集內的 Pod 清單
    RT_MTLS_HOSTS 託管路由器的私人主機 IP 位址清單 (以空格分隔) 物件
    MTLS_ENCAPSULATE_LDAP 加密郵件處理者和 LDAP 伺服器之間的 LDAP 流量。設為 y
    MS_MTLS_HOSTS 以空格分隔的私人主機 IP 位址清單,管理伺服器節點在其中 託管於叢集內
    MP_MTLS_HOSTS 訊息處理器的私人主機 IP 位址清單 (以空格分隔) 託管於叢集內
    QP_MTLS_HOSTS 託管 Qpid 伺服器的私人主機 IP 位址清單 (以空格分隔)
    ENABLE_SIDECAR_PROXY 決定 Cassandra 和 Postgres 是否應注意服務網格。

    此值必須設為「y」。

    ENCRYPT_DATA Consul 使用的 Base64 編碼加密金鑰。您透過 consul keygen指令步驟 2:安裝 Consul 並 產生憑證

    叢集內所有節點的值都必須相同。

    PATH_TO_CA_CERT 節點上的憑證檔案位置。你在以下資料夾產生了這個檔案: 步驟 2:安裝 Consul 並產生憑證

    叢集內所有節點的這個位置都必須相同 相同的設定檔

    憑證必須採用 X509v3 編碼。

    PATH_TO_CA_KEY 金鑰檔案在節點上的位置。你在以下資料夾產生了這個檔案: 步驟 2:安裝 Consul 並產生憑證

    叢集內所有節點的這個位置都必須相同 相同的設定檔

    金鑰檔案必須採用 X509v3 編碼。

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    憑證保留天數 產生自訂憑證

    預設值為 365。最大值是 7865 天 (5 年)。

    除了上述屬性以外,Apigee mTLS 還可使用多項額外屬性 多虧在多資料中心設定中進行安裝若需更多資訊,請參閲 設定多個資料中心

  3. 請務必將 ENABLE_SIDECAR_PROXY 屬性設為「y」。
  4. 更新主機相關屬性中的 IP 位址。請務必使用 參照每個節點時 (而非 public) private IP 位址 這能讓虛擬機器執行個體 使用內部 IP 位址進行私人通訊

    在後續步驟中,您將設定其他屬性的值,例如 ENCRYPT_DATAPATH_TO_CA_CERTPATH_TO_CA_KEY。您自己 尚未設定這些值

    編輯 apigee-mtls 設定屬性時,請注意下列事項:

    • 所有屬性皆為字串;必須以單行或雙精度浮點數包住所有屬性的值 引號。
    • 如果主機相關值有多個私人 IP 位址,請分開每個 IP 位址 帶有空格
    • 使用私人 IP 位址,不要使用主機名稱或公開 IP 位址來進行所有主機相關作業 屬性。
    • 屬性值中的 IP 位址順序必須為相同的順序 整個叢集內的設定檔
  5. 儲存對設定檔所做的變更。

步驟 2:安裝 Consul 並產生憑證

本節說明如何安裝 Consul 並產生憑證。

您必須選擇下列其中一種方法來產生憑證:

  • 按照本節所述,使用 Consul 建立自己的 CA (建議做法)
  • 將現有 CA 的憑證與 Apigee mTLS 搭配使用 (進階)

關於憑證

憑證包含以下項目:

  • Certificate:每個節點代管的 TLS 憑證
  • 金鑰:每個節點代管的 TLS 公開金鑰
  • Gossip 訊息:採用 Base-64 編碼的加密金鑰

這些檔案只會產生一次版本,由您複製金鑰和憑證 將檔案新增至叢集中的所有節點,並將加密金鑰新增至設定檔 也會複製到所有節點

如要進一步瞭解 Consul 的加密實作,請參閱以下內容:

安裝 Consul 並產生憑證

您將使用本機 Consul 二進位檔產生 Apigee mTLS 用於測試的憑證 驗證 Private Cloud 叢集內節點的安全通訊機制。因此, 必須先在管理機器上安裝 Consul,才能 來產生憑證

如何安裝 Consul 並產生 mTLS 憑證:

  1. 在管理電腦上,從 HashiCorp 網站
  2. 將下載封存檔的內容解壓縮。例如,將內容擷取至 /opt/consul/
  3. 在管理電腦上執行 以下指令:
    /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. 以超級使用者的身分登入叢集中的節點。您也能在 Cloud Shell 的 。
  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 後,您必須在這個元件「之前」啟動這個元件 所有 Pod 元件

  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. 「開始排序」 範例如下:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. 針對叢集中的每個節點重複執行這項程序。
  10. (選用) 使用一次 apigee-mtls ,確認初始化成功 或執行下列多種方法:
    1. 驗證 iptable 設定
    2. 驗證遠端 Proxy 狀態
    3. 驗證仲裁狀態

    上述每個方法的說明,請參閱驗證 設定

變更現有的 apigee-mtls 設定

如要自訂現有的 apigee-mtls 設定,請解除安裝並 重新安裝 apigee-mtls

請再複習一次,變更現有的 Apigee mTLS 設定時:

  • 如果您變更設定檔,就必須先解除安裝 apigee-mtls 並 重新執行 setupconfigure
    # 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
  • 您必須先解除安裝 setupconfigure,並在 而不只是單一節點
,瞭解如何調查及移除這項存取權。