設定用戶端以進行IAM存取控制 - Amazon Managed Streaming for Apache Kafka

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

設定用戶端以進行IAM存取控制

若要讓用戶端與使用IAM存取控制的MSK叢集通訊,您可以使用下列任一機制:

  • 使用 SASL_OAUTHBEARER 機制的非 Java 用戶端組態

  • 使用 SASL_OAUTHBEARER機制或 AWS_MSK_IAM 機制的 Java 用戶端組態

使用 SASL_OAUTHBEARER機制來設定 IAM

  1. 編輯您的 client.properties 組態檔案,並使用下面的 Python Kafka 範例用戶端中反白的語法作為指南。其他語言的組態變更也與其類似。

    #!/usr/bin/python3from kafka import KafkaProducer from kafka.errors import KafkaError import socket import time from aws_msk_iam_sasl_signer import MSKAuthTokenProvider class MSKTokenProvider(): def token(self): token, _ = MSKAuthTokenProvider.generate_auth_token('<my aws region>') return token tp = MSKTokenProvider() producer = KafkaProducer( bootstrap_servers='<my bootstrap string>', security_protocol='SASL_SSL', sasl_mechanism='OAUTHBEARER', sasl_oauth_token_provider=tp, client_id=socket.gethostname(), ) topic = "<my-topic>" while True: try: inp=input(">") producer.send(topic, inp.encode()) producer.flush() print("Produced!") except Exception: print("Failed to send message:", e) producer.close()
  2. 下載您選擇的組態語言的協助程式庫,並依照該語言程式庫首頁入門區段中的指示操作。

使用MSK自訂 AWS_MSK_IAM 機制來設定 IAM

  1. 將以下內容新增到 client.properties 檔案。<PATH_TO_TRUST_STORE_FILE> 將 取代為用戶端上信任存放區檔案的完整路徑。

    注意

    如果您不想使用特定憑證,可以從 client.properties 檔案中移除 ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>。如果您沒有為 ssl.truststore.location 指定值,Java 程序會使用預設憑證。

    ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE> security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler

    若要使用您為 AWS 登入資料建立的具名設定檔,awsProfileName="your profile name";請在用戶端組態檔案中包含 。如需具名設定檔的相關資訊,請參閱 AWS CLI 文件中的具名設定檔

  2. 下載最新的穩定aws-msk-iam-authJAR檔案,並將其放在類別路徑中。如果您使用 Maven,請新增以下依賴項,根據需要調整版本號:

    <dependency> <groupId>software.amazon.msk</groupId> <artifactId>aws-msk-iam-auth</artifactId> <version>1.0.0</version> </dependency>

Amazon MSK用戶端外掛程式是根據 Apache 2.0 授權進行開放原始碼。