如何對 Amazon MSK 叢集的跨帳戶 AWS Glue 工作問題進行疑難排解?

2 分的閱讀內容
0

我想要對跨 AWS 帳戶連線到 Amazon Managed Streaming for Apache Kafka (MSK) 叢集的失敗 AWS Glue 工作問題進行疑難排解。

解決方法

檢查 AWS Glue 工作是否可以連線到 Amazon MSK 叢集,然後對 AWS Glue 工作的驗證方法進行疑難排解。

檢查跨帳戶 AWS Glue 工作的連線性

若要確認 AWS Glue 工作是否可以連線到 Amazon MSK 叢集,請完成下列步驟:

  1. 確認 AWS Glue 連線的網路存取控制清單 (網路 ACL) 是否允許流量進入跨帳戶 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon MSK 叢集。
  2. 確認 Amazon MSK 叢集的安全群組允許 AWS Glue 連線的子網路 CIDR 存取 Amazon MSK 叢集的啟動程序伺服器連接埠。
    注意: AWS Glue 連線的安全群組必須包含必要 TCP 連接埠的自我參考傳入規則。
  3. 檢查您是否正確設定了 Amazon MSK 叢集與 AWS Glue 連線的 VPC 或子網路之間的 VPC 對等互連
  4. 使用 Reachability Analyzer 檢查元件是否干擾 VPC 之間的連線。
  5. 在 AWS Glue 連線使用的相同子網路和安全群組中啟動 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體

使用 Session Manager (AWS Systems Manager 的一項功能) 或 SSH 用戶端登入您的 EC2 執行個體。然後,執行下列測試:

telnet example-bootstrap-server-hostname example-bootstrap-server-port  
nc -zv example-bootstrap-server-hostname example-bootstrap-server-port   
dig example-bootstrap-server-hostname

注意: 用您的值取代上一個命令中的範例值。如果未安裝 telnet,請執行 sudo yum install telnet -y 進行安裝。

如果傳出包含已連線連線已建立,則表示 AWS Glue 工作的連線性已得到驗證。

對驗證問題進行疑難排解

若要驗證 AWS Glue 連線中的啟動程序伺服器 URL,請完成下列步驟:

  1. 從 Amazon MSK 取得啟動程序代理程式
  2. 開啟 AWS Glue 主控台
  3. 在導覽窗格的 Data Catalog (資料目錄) 下,選擇 Connections (連線)。您也可以在導覽窗格中選擇 Data connections (資料連線)。
  4. Connections (連線) 中,選取您的連線,然後選擇 Actions (動作)。
  5. 在下拉式清單中,選擇 Edit (編輯)。
  6. Connection access (連線存取) 下,檢查 Kafka 啟動程序伺服器 URL 是否與 Amazon MSK 主控台中的 URL 相符。
  7. 如果 URL 不相符,請根據 Amazon MSK 叢集使用的驗證方法更新它們。使用與您的代理程式組態相符的連接埠號碼:
    對於 TLS/SSL,請使用連接埠 9094 進行 AWS 內部存取,使用連接埠 9194 進行公開存取。
    對於 SASL/SCRAM,請使用連接埠 9096 進行 AWS 內部存取,使用連接埠 9196 進行公開存取。
  8. 選擇 Save changes (儲存變更)。

然後,根據 Amazon MSK 叢集的驗證方法執行下列動作。

SASL/SCRAM-SHA-512

使用 AWS Secrets Manager 驗證您的使用者名稱和密碼。如果您使用 Secrets Manager 來儲存您的憑證,請確認 AWS Glue 連線的子網路是否可以到達 Secret Manager 的端點。

TLS/SSL 用戶端驗證

若要驗證 Kafka 用戶端的金鑰存放區憑證和金鑰存放區密碼或金鑰密碼,請執行以下命令:

keytool -list -v -keystore /pathtocert/kafka.client.keystore.jks -storepass 123456

檢查輸出是否包含 Amazon MSK 叢集使用的 AWS 私有憑證認證機構 (AWS Private CA) 憑證。

如果輸出不包含憑證,請完成設定用戶端以使用驗證的步驟 5-11 來建立新金鑰存放區。

重要: 為每個用戶端建立新的金鑰存放區,並使用與 Amazon MSK 叢集相同的私有憑證。

kafka.client.keystore.jks 憑證上傳到 Amazon Simple Storage Service (Amazon S3)。然後,使用憑證的 S3 路徑設定您的 AWS Glue Kafka 連線

IAM 驗證

確認 AWS Glue 工作的 AWS Identity and Access Management (IAM) 角色是否具有針對 Amazon MSK 叢集的正確授權政策

相關資訊

建立 Kafka 連線

AWS Glue 中的串流 ETL 工作

AWS 官方
AWS 官方已更新 1 個月前