在叢集的所有節點中安裝 Apigee mTLS 之後
必須設定並初始化 apigee-mtls
元件。只要產生
並更新憑證/金鑰組
管理機器上的設定檔。接著您將
將產生的檔案和設定檔用於叢集中的所有節點,並將本機產生的
apigee-mtls
元件。
設定 apigee-mtls (初始安裝後)
本節說明如何在 初始安裝。如要瞭解如何更新 現有 Apigee mTLS 安裝作業,請參閱變更現有的 apigee-mtls 設定
本節適用於單一資料中心內的安裝作業。資訊 如要瞭解如何在多個資料中心設定中設定 Apigee mTLS,請參閱 為 Apigee mTLS 設定多個資料中心。
設定 apigee-mtls
的一般流程如下:
- 更新設定檔:在您的裝置上
管理機器,請更新設定檔,加入
apigee-mtls
可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目 - 安裝 Consul 並產生憑證:安裝
Consul 和 (選擇性) 會使用這個憑證產生傳輸層安全標準 (TLS) 憑證 (僅一次)。
此外,請將 Apigee mTLS 設定檔編輯到:
- 新增憑證資訊
- 定義叢集的拓撲
請注意,您可以使用現有憑證 透過 Consul 產生這類檔案。
- 發布憑證和設定檔: 將相同產生的憑證/金鑰組和更新後的設定檔發布到所有節點 叢集內的 Pod 清單
- 初始化 apigee-mtls:將
每個節點上的
apigee-mtls
元件。
每個步驟都會在後續章節中說明。
步驟 1:更新設定檔
本節說明如何修改設定檔,加入 mTLS 設定 資源。如需更多關於設定檔的一般資訊,請參閱 建立設定 檔案。
使用 mTLS 相關資源更新設定檔後,請將設定檔複製到
,再對這些節點初始化 apigee-mtls
元件
節點。
如何更新設定檔:
- 在管理電腦上開啟設定檔進行編輯。
- 複製下列 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" TLS_MIN_VERSION="tls12" TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
根據您的設定,設定每個屬性的值。
下表說明這些設定屬性:
屬性 說明 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 年)。
TLS_MIN_VERSION
指定允許的最低 TLS 版本。設為 tls12
即可強制執行傳輸層安全標準 (TLS) 1.2 版本的最低需求。TLS_CIPHER_SUITES
允許使用的 TLS 加密套件清單 (以半形逗號分隔)。 例如:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
除了上述屬性以外,Apigee mTLS 還可使用多項額外屬性 多虧在多資料中心設定中進行安裝若需更多資訊,請參閲 設定多個資料中心。
- 確認
ENABLE_SIDECAR_PROXY
已設為「y」。 - 更新主機相關屬性中的 IP 位址。請務必使用
參照每個節點時 (而非 public) private IP 位址
這能讓虛擬機器執行個體
使用內部 IP 位址進行私人通訊
在後續步驟中,您將設定其他屬性的值,例如
ENCRYPT_DATA
、PATH_TO_CA_CERT
和PATH_TO_CA_KEY
。您自己 尚未設定這些值編輯
apigee-mtls
設定屬性時,請注意下列事項:- 所有屬性皆為字串;必須以單行或雙精度浮點數包住所有屬性的值 引號。
- 如果主機相關值有多個私人 IP 位址,請分開每個 IP 位址 帶有空格
- 使用私人 IP 位址,不要使用主機名稱或公開 IP 位址來進行所有主機相關作業 屬性。
- 屬性值中的 IP 位址順序必須為相同的順序 整個叢集內的設定檔
- 儲存對設定檔所做的變更。
步驟 2:安裝 Consul 並產生憑證
本節說明如何安裝 Consul 並產生 支援 mTLS 的元件
您必須選擇下列其中一種方法來產生憑證:
- (建議做法) 按照下方說明,使用 Consul 建立自己的憑證授權單位 (CA) 區段
- 將現有 CA 的憑證與 Apigee mTLS 搭配使用 (進階)
關於憑證
憑證包含以下項目:
- Certificate:TLS 憑證
- 金鑰:TLS 公開金鑰
- Gossip 訊息:採用 Base-64 編碼的加密金鑰
這些檔案只會產生一次版本,接著複製金鑰和憑證 將檔案新增至叢集中的所有節點,並將加密金鑰新增至設定檔 也會複製到所有節點
如要進一步瞭解 Consul 的加密實作,請參閱以下內容:
安裝 Consul 並產生憑證
為了產生 Apigee mTLS 用於 驗證 Private Cloud 叢集內節點的安全通訊,方法是使用 Consul 二進位檔 。因此, 必須先在管理機器上安裝 Consul,才能 來產生憑證
如何安裝 Consul 並產生 mTLS 憑證:
- 在管理電腦上,從 HashiCorp 網站。
- 將下載封存檔的內容解壓縮。例如,將內容擷取至
/opt/consul/
。 - 在管理電腦上執行
以下指令:
/opt/consul/consul tls ca create
Consul 會建立下列構成「憑證/金鑰組」的檔案:
consul-agent-ca.pem
(憑證)consul-agent-ca-key.pem
(鍵)
根據預設,憑證和金鑰檔案會進行 X509v3 編碼。
您稍後會將這些檔案複製到叢集中的所有節點。現階段,您必須使用 只能決定這些檔案的節點存放位置。兩者必須 各節點的位置例如
/opt/apigee/
。 - 在設定檔中,將
PATH_TO_CA_CERT
的值設為 您將在節點上複製consul-agent-ca.pem
檔案。例如:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- 將
PATH_TO_CA_KEY
的值設為您要複製的位置 節點上的consul-agent-ca-key.pem
檔案。例如:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- 請執行下列指令,為 Consul 建立加密金鑰:
/opt/consul/consul keygen
Consul 會輸出類似以下的隨機字串:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- 複製這個產生的字串,並設為
ENCRYPT_DATA
屬性的值 設定檔。例如:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - 儲存設定檔。
以下範例為設定檔中的 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:
- 以超級使用者的身分登入叢集中的節點。您也能在 Cloud Shell 的 。
- 將
apigee:apigee
使用者設為已更新設定檔的擁有者, 範例如下:chown apigee:apigee config_file
- 執行下列指令來設定
apigee-mtls
元件:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (選用) 執行下列指令,驗證設定是否成功:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- 執行下列指令來啟動 Apigee mTLS:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
安裝 Apigee mTLS 後,您必須在這個元件「之前」啟動這個元件 所有 Pod 元件
- (僅限 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
- (僅限 Postgres 節點) Postgres 必須在
安全網格因此,您必須在 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
(僅限待命)
- 備份現有的 Postgres 資料。如要安裝 Apigee mTLS,您必須重新初始化 主要/待命節點,因此資料都會遺失。若需更多資訊,請參閲 設定主要/待命複製作業 Postgres:
- 刪除所有 Postgres 資料:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- 設定 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
如果您要在多資料中心拓撲上安裝,請針對 設定檔
- 對 Postgres 主要節點執行下列指令:
- 在
「開始排序」
範例如下:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- 針對叢集中的每個節點重複執行這項程序。
- (選用) 使用一次
apigee-mtls
,確認初始化成功 或執行下列多種方法:- 驗證 iptable 設定
- 驗證遠端 Proxy 狀態
- 驗證仲裁狀態
上述每個方法的說明,請參閱驗證 設定
變更現有的 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
,並在 而不只是單一節點