開啟MSK叢集的公有存取權 - Amazon Managed Streaming for Apache Kafka

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

開啟MSK叢集的公有存取權

Amazon MSK可讓您選擇開啟對執行 Apache Kafka 2.6.0 或更新版本之MSK叢集代理程式的公開存取。基於安全考量,您無法在建立MSK叢集時開啟公有存取。但是,您可以更新現有叢集使其可公開存取。您也可以建立新叢集,然後對其進行更新,使其可公開存取。

您可以開啟MSK叢集的公有存取,無需額外費用,但標準 AWS 資料傳輸成本適用於叢集內外的資料傳輸。如需定價的相關資訊,請參閱 Amazon EC2 隨需定價。

若要開啟對叢集的公開存取,請先確保該叢集符合下列所有條件:

  • 與叢集相關聯的子網路必須是公開的。這表示子網路必須具有相關聯的路由表,並連接網際網路閘道。如需有關如何建立和連接網際網路閘道的資訊,請參閱 Amazon VPC使用者指南中的網際網路閘道

  • 未驗證的存取控制必須關閉,且至少必須開啟下列其中一種存取控制方法:SASL/IAM, SASL/SCRAM,m TLS。如需有關如何更新叢集存取控制方法的詳細資訊,請參閱更新 Amazon MSK叢集的安全設定

  • 必須開啟叢集內的加密。建立叢集時,預設為「開啟」。對於建立時已關閉的叢集,無法開啟叢集內加密功能。因此,對於在叢集內加密關閉的情況下建立的叢集,無法開啟公開存取。

  • 代理程式和用戶端之間的純文字流量必須關閉。如需有關如何在此項開啟時將其關閉的詳細資訊,請參閱更新 Amazon MSK叢集的安全設定

  • 如果您使用 SASL/SCRAM 或 mTLS 存取控制方法,則必須ACLs為叢集設定 Apache Kafka。ACLs 為叢集設定 Apache Kafka 之後,請更新叢集的組態,讓叢集的 屬性allow.everyone.if.no.acl.found為 false。如需有關更新叢集組態的資訊,請參閱Amazon MSK組態操作。如果您使用IAM存取控制,並想要套用授權政策或更新您的授權政策,請參閱 IAM 存取控制。如需 Apache Kafka 的相關資訊ACLs,請參閱 Apache Kafka ACLs

確保MSK叢集符合上述條件後,您可以使用 AWS CLI、 AWS Management Console或 Amazon MSKAPI來開啟公有存取。開啟對叢集的公開存取後,您可以為其取得公用引導代理程式字串。如需有關取得叢集引導代理程式的詳細資訊,請參閱取得 Amazon MSK叢集的引導代理程式

重要

除了開啟公有存取之外,請確保叢集的安全群組具有允許從您的 IP 地址公開存取的傳入TCP規則。建議您盡可能嚴格設定這些規則。如需有關安全群組和傳入規則的資訊,請參閱 Amazon VPC使用者指南中的 的安全群組VPC。如需連接埠號碼,請參閱連接埠資訊。如需有關變更叢集安全群組的說明,請參閱變更 Amazon MSK叢集的安全群組

注意

如果您使用下列指示開啟公開存取,但仍無法存取該叢集,請參閱無法存取已開啟公開存取的叢集

使用主控台開啟公開存取
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/msk/home?region=us-east-1#/home/ 開啟 Amazon MSK主控台。

  2. 在叢集清單中,選擇您要開啟公開存取的叢集。

  3. 選擇屬性索引標籤,然後尋找網路設定區段。

  4. 選擇編輯公開存取

使用 開啟公有存取 AWS CLI
  1. 執行下列 AWS CLI 命令,取代 ClusterArn 以及 Current-Cluster-Version 使用 ARN和目前版本的叢集。若要尋找叢集的目前版本,請使用 DescribeCluster操作或 describe-cluster AWS CLI 命令。範例版本為KTVPDKIKX0DER

    aws kafka update-connectivity --cluster-arn ClusterArn --current-version Current-Cluster-Version --connectivity-info '{"PublicAccess": {"Type": "SERVICE_PROVIDED_EIPS"}}'

    update-connectivity命令的輸出如下所示JSON。

    { "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef" }
    注意

    若要關閉公有存取,請使用類似的 AWS CLI 命令,但改用下列連線資訊:

    '{"PublicAccess": {"Type": "DISABLED"}}'
  2. 若要取得update-connectivity操作結果,請執行下列命令,取代 ClusterOperationArn ARN 您在 update-connectivity 命令的輸出中取得的 。

    aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn

    describe-cluster-operation命令的輸出如下所示JSON。

    { "ClusterOperationInfo": { "ClientRequestId": "982168a3-939f-11e9-8a62-538df00285db", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-06-20T21:08:57.735Z", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_COMPLETE", "OperationType": "UPDATE_CONNECTIVITY", "SourceClusterInfo": { "ConnectivityInfo": { "PublicAccess": { "Type": "DISABLED" } } }, "TargetClusterInfo": { "ConnectivityInfo": { "PublicAccess": { "Type": "SERVICE_PROVIDED_EIPS" } } } } }

    如果 OperationState 具有值 UPDATE_IN_PROGRESS,請稍候一段時間,然後再次執行 describe-cluster-operation 命令。

使用 Amazon 開啟公有存取 MSK API
注意

基於安全考量,Amazon MSK不允許公開存取 Apache ZooKeeper 或KRaft控制器節點。