

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# IAM 액세스 제어를 위한 클라이언트 구성
<a name="configure-clients-for-iam-access-control"></a>

클라이언트가 IAM 액세스 제어를 사용하는 MSK 클러스터와 통신할 수 있도록 하려면 다음 메커니즘 중 하나를 사용할 수 있습니다.
+ SASL\$1OAUTHBEARER 메커니즘을 사용하여 비 Java 클라이언트 구성
+ SASL\$1OAUTHBEARER 메커니즘 또는 AWS\$1MSK\$1IAM 메커니즘을 사용하여 Java 클라이언트 구성

## SASL\$1OAUTHBEARER 메커니즘을 사용하여 IAM 구성
<a name="configure-clients-for-iam-access-control-sasl-oauthbearer"></a>

1. 다음 Python Kafka 클라이언트 예제를 사용하여 client.properties 구성 파일을 편집합니다. 구성 변경은 다른 언어에서도 비슷합니다.

   ```
   from kafka import KafkaProducer
   from kafka.errors import KafkaError
   from kafka.sasl.oauth import AbstractTokenProvider
   import socket
   import time
   from aws_msk_iam_sasl_signer import MSKAuthTokenProvider
   
   class MSKTokenProvider():
       def token(self):
           token, _ = MSKAuthTokenProvider.generate_auth_token('<my AWS 리전>')
           return token
   
   tp = MSKTokenProvider()
   
   producer = KafkaProducer(
       bootstrap_servers='<myBootstrapString>',
       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()
   ```

1. 선택한 구성 언어의 헬퍼 라이브러리를 다운로드하고 해당 언어 라이브러리 홈페이지의 *시작하기* 섹션에 있는 지침을 따르세요.
   + JavaScript: [https://github.com/aws/aws-msk-iam-sasl-signer-js\$1getting-started](https://github.com/aws/aws-msk-iam-sasl-signer-js#getting-started)
   + Python: [https://github.com/aws/aws-msk-iam-sasl-signer-python\$1get-started](https://github.com/aws/aws-msk-iam-sasl-signer-python#get-started)
   + Go: [https://github.com/aws/aws-msk-iam-sasl-signer-go\$1getting-started](https://github.com/aws/aws-msk-iam-sasl-signer-go#getting-started)
   + .NET: [https://github.com/aws/aws-msk-iam-sasl-signer-net\$1getting-started](https://github.com/aws/aws-msk-iam-sasl-signer-net#getting-started)
   + JAVA: Java용 SASL\$1OAUTHBEARER 지원은 [https://github.com/aws/aws-msk-iam-auth/releases](https://github.com/aws/aws-msk-iam-auth/releases) jar 파일을 통해 사용 가능

## MSK 사용자 지정 AWS\$1MSK\$1IAM 메커니즘을 사용하여 IAM을 구성
<a name="configure-clients-for-iam-access-control-msk-iam"></a>

1. `client.properties` 파일에 다음을 추가합니다. *<PATH\$1TO\$1TRUST\$1STORE\$1FILE>*을 클라이언트의 트러스트 스토어 파일에 대한 정규화된 경로로 변경합니다.
**참고**  
특정 인증서를 사용하지 않으려면 `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 설명서의 [명명된 프로필을](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) 참조하세요.

1. 안정적인 최신 [aws-msk-iam-auth](https://github.com/aws/aws-msk-iam-auth/releases) 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 라이선스에 따라 오픈 소스로 제공됩니다.