本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定用戶端以進行IAM存取控制
若要讓用戶端與使用IAM存取控制的MSK叢集通訊,您可以使用下列任一機制:
-
使用 SASL_OAUTHBEARER 機制的非 Java 用戶端組態
-
使用 SASL_OAUTHBEARER機制或 AWS_MSK_IAM 機制的 Java 用戶端組態
使用 SASL_OAUTHBEARER機制來設定 IAM
編輯您的 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()
下載您選擇的組態語言的協助程式庫,並依照該語言程式庫首頁入門區段中的指示操作。
JavaScript:https://github.com/aws/aws-msk-iam-sasl-signer-js#getting-started
Python:https://github.com/aws/aws-msk-iam-sasl-signer-python#get-started
Go:https://github.com/aws/aws-msk-iam-sasl-signer-go#getting-started
.NET:https://github.com/aws/aws-msk-iam-sasl-signer-net#getting-started
JAVA: SASL_OAUTHBEARER支援 Java 可透過
aws-msk-iam-auth
jar 檔案取得
使用MSK自訂 AWS_MSK_IAM 機制來設定 IAM
將以下內容新增到
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="
請在用戶端組態檔案中包含 。如需具名設定檔的相關資訊,請參閱 AWS CLI 文件中的具名設定檔。your profile name
";下載最新的穩定aws-msk-iam-auth
JAR檔案,並將其放在類別路徑中。如果您使用 Maven,請新增以下依賴項,根據需要調整版本號: <dependency> <groupId>software.amazon.msk</groupId> <artifactId>aws-msk-iam-auth</artifactId> <version>1.0.0</version> </dependency>
Amazon MSK用戶端外掛程式是根據 Apache 2.0 授權進行開放原始碼。