

# Amazon Athena Apache Kafka 커넥터
<a name="connectors-kafka"></a>

Apache Kafka용 Amazon Athena 커넥터를 사용하면 Amazon Athena가 Apache Kafka 주제에서 SQL 쿼리를 실행할 수 있습니다. 이 커넥터를 사용하여 Athena에서 [Apache Kafka](https://kafka.apache.org/) 주제를 테이블로, 메시지를 행으로 볼 수 있습니다.

이 커넥터는 Glue Connections를 사용하여 Glue의 구성 속성을 중앙 집중화하지 않습니다. 연결 구성은 Lambda를 통해 수행됩니다.

## 사전 조건
<a name="connectors-kafka-prerequisites"></a>

Athena 콘솔 또는 AWS Serverless Application Repository를 사용하여 AWS 계정에 커넥터를 배포합니다. 자세한 내용은 [데이터 소스 연결 생성](connect-to-a-data-source.md) 또는 [AWS Serverless Application Repository을 사용하여 데이터 소스 커넥터 배포](connect-data-source-serverless-app-repo.md) 섹션을 참조하세요.

## 제한 사항
<a name="connectors-kafka-limitations"></a>
+ DDL 쓰기 작업은 지원되지 않습니다.
+ 모든 관련 Lambda 제한. 자세한 내용은 *AWS Lambda 개발자 안내서*에서 [Lambda 할당량](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)을 참조하세요.
+ 필터 조건의 날짜 및 타임스탬프 데이터 형식을 적절한 데이터 형식으로 캐스팅해야 합니다.
+ 날짜 및 타임스탬프 데이터 형식은 CSV 파일 형식에 지원되지 않으며 varchar 값으로 처리됩니다.
+ 중첩된 JSON 필드로의 매핑은 지원되지 않습니다. 커넥터는 최상위 필드만 매핑합니다.
+ 커넥터는 복합 유형을 지원하지 않습니다. 복합 형식은 문자열로 해석됩니다.
+ 복잡한 JSON 값을 추출하거나 사용하려면 Athena에서 제공되는 JSON 관련 함수를 사용하세요. 자세한 내용은 [문자열에서 JSON 데이터 추출](extracting-data-from-JSON.md) 섹션을 참조하세요.
+ 커넥터는 Kafka 메시지 메타데이터에 대한 액세스를 지원하지 않습니다.

## 용어
<a name="connectors-kafka-terms"></a>
+ **메타데이터 핸들러** - 데이터베이스 인스턴스에서 메타데이터를 검색하는 Lambda 핸들러.
+ **레코드 핸들러** - 데이터베이스 인스턴스에서 데이터 레코드를 검색하는 Lambda 핸들러.
+ **복합 핸들러** - 데이터베이스 인스턴스에서 메타데이터와 데이터 레코드를 모두 검색하는 Lambda 핸들러.
+ **Kafka 엔드포인트** - Kafka 인스턴스에 연결하는 텍스트 문자열입니다.

## 클러스터 호환성
<a name="connectors-kafka-cluster-compatibility"></a>

Kafka 커넥터는 다음과 같은 클러스터 유형과 함께 사용할 수 있습니다.
+ **독립 실행형 Kafka** - Kafka에 대한 직접 연결(인증된 연결 또는 인증되지 않은 연결)입니다.
+ **Confluent** – Confluent Kafka에 대한 직접 연결입니다. Confluent Kafka 데이터와 함께 Athena를 사용하는 방법에 대한 자세한 내용은 *AWS Business Intelligence Blog*의 [Visualize Confluent data in Quick using Amazon Athena](https://aws.amazon.com/blogs/business-intelligence/visualize-confluent-data-in-amazon-quicksight-using-amazon-athena/)를 참조하세요.

### Confluent에 연결
<a name="connectors-kafka-connecting-to-confluent"></a>

Confluent에 연결하려면 다음 단계를 수행해야 합니다.

1. Confluent에서 API 키를 생성합니다.

1. Confluent API 키의 사용자 이름과 암호를 AWS Secrets Manager에 저장합니다.

1. Kafka 커넥터에 `secrets_manager_secret` 환경 변수의 보안 암호 이름을 입력합니다.

1. 이 문서의 [Kafka 커넥터 설정](#connectors-kafka-setup) 섹션에 나온 단계를 수행합니다.

## 지원되는 인증 방법
<a name="connectors-kafka-supported-authentication-methods"></a>

커넥터에서 지원되는 인증 방법은 다음과 같습니다.
+ [SSL](https://kafka.apache.org/documentation/#security_ssl)
+ [SASL/SCRAM](https://kafka.apache.org/documentation/#security_sasl_scram)
+ SASL/PLAIN
+ SASL/PLAINTEXT
+ NO\$1AUTH
+ **자체 관리형 Kafka 및 Confluent 플랫폼** – SSL, SASL/SCRAM, SASL/PLAINTEXT, NO\$1AUTH
+ **자체 관리형 Kafka 및 Confluent 플랫폼** – SASL/PLAIN

자세한 내용은 [Athena Kafka 커넥터에 대한 인증 구성](#connectors-kafka-setup-configuring-authentication) 섹션을 참조하세요.

## 지원되는 입력 데이터 형식
<a name="connectors-kafka-supported-input-data-formats"></a>

커넥터에서 지원되는 입력 데이터 형식은 다음과 같습니다.
+ JSON
+ CSV
+ AVRO
+ PROTOBUF(프로토콜 버퍼)

## 파라미터
<a name="connectors-kafka-parameters"></a>

이 섹션의 파라미터를 사용하여 Athena Kafka 커넥터를 구성합니다.
+ **auth\$1type** - 클러스터의 인증 유형을 지정합니다. 커넥터에서 지원되는 인증 유형은 다음과 같습니다.
  + **NO\$1AUTH** - Kafka에 직접 연결합니다. 예를 들어 인증을 사용하지 않는 EC2 인스턴스를 통해 배포되는 Kafka 클러스터에 연결합니다.
  + **SASL\$1SSL\$1PLAIN** - 이 메서드는 `SASL_SSL` 보안 프로토콜과 `PLAIN` SASL 메커니즘을 사용합니다. 자세한 내용은 Apache Kafka 설명서의 [SASL configuration](https://kafka.apache.org/documentation/#security_sasl_config)을 참조하세요.
  + **SASL\$1PLAINTEXT\$1PLAIN** - 이 메서드는 `SASL_PLAINTEXT` 보안 프로토콜과 `PLAIN` SASL 메커니즘을 사용합니다. 자세한 내용은 Apache Kafka 설명서의 [SASL configuration](https://kafka.apache.org/documentation/#security_sasl_config)을 참조하세요.
  + **SASL\$1SSL\$1SCRAM\$1SHA512** - 이 인증 유형을 사용하여 Apache Kafka 클러스터에 대한 액세스를 제어할 수 있습니다. 이 메서드는 사용자 이름과 암호를 AWS Secrets Manager에 저장합니다. 보안 암호는 Kafka 클러스터와 연결해야 합니다. 자세한 내용은 Apache Kafka 설명서의 [Authentication using SASL/SCRAM](https://kafka.apache.org/documentation/#security_sasl_scram)을 참조하세요.
  + **SASL\$1PLAINTEXT\$1SCRAM\$1SHA512** – 이 메서드는 `SASL_PLAINTEXT` 보안 프로토콜 및 `SCRAM_SHA512 SASL` 메커니즘을 사용합니다. 이 메서드는 AWS Secrets Manager에 저장된 사용자 이름과 암호를 사용합니다. 자세한 내용은 Apache Kafka 설명서의 [SASL configuration](https://kafka.apache.org/documentation/#security_sasl_config) 섹션을 참조하세요.
  + **SSL** - SSL 인증은 키 스토어 및 트러스트 스토어 파일을 사용하여 Apache Kafka 클러스터에 연결합니다. 트러스트 스토어 파일과 키 스토어 파일을 생성하여 Amazon S3 버킷에 업로드하고 커넥터를 배포할 때 Amazon S3에 대한 참조를 제공해야 합니다. 키 스토어, 트러스트 스토어 및 SSL 키는 AWS Secrets Manager에 저장됩니다. 커넥터가 배포될 때 클라이언트가 AWS 보안 암호 키를 제공해야 합니다. 자세한 내용은 Apache Kafka 설명서의 [Encryption and Authentication using SSL](https://kafka.apache.org/documentation/#security_ssl)을 참조하세요.

    자세한 내용은 [Athena Kafka 커넥터에 대한 인증 구성](#connectors-kafka-setup-configuring-authentication) 섹션을 참조하세요.
+ **certificates\$1s3\$1reference** - 인증서(키 스토어 및 트러스트 스토어 파일)가 들어 있는 Amazon S3 위치입니다.
+ **disable\$1spill\$1encryption** – (선택 사항) `True`로 설정하면 유출 암호화가 비활성화됩니다. S3로 유출되는 데이터가 AES-GCM을 사용하여 암호화되도록 기본값은 `False`입니다(임의로 생성된 키 또는 KMS를 사용하여 키 생성). 유출 암호화를 비활성화하면 특히 유출 위치가 [서버 측 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)를 사용하는 경우 성능이 향상될 수 있습니다.
+ **kafka\$1endpoint** - Kafka에 제공할 엔드포인트 세부 정보입니다.
+ **schema\$1registry\$1url** - 스키마 레지스트리의 URL 주소입니다(예: `http://schema-registry.example.org:8081`). `AVRO` 및 `PROTOBUF` 데이터 형식에 적용됩니다. Athena는 Confluent 스키마 레지스트리만 지원합니다.
+ **secrets\$1manager\$1secret** - 보안 인증이 저장되는 AWS 보안 암호의 이름입니다.
+ **유출 파라미터** - Lambda 함수는 메모리에 맞지 않는 데이터를 Amazon S3에 임시로 저장(“유출”)합니다. 동일한 Lambda 함수에서 액세스하는 모든 데이터베이스 인스턴스는 동일한 위치로 유출됩니다. 다음 표의 파라미터를 사용하여 유출 위치를 지정합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/connectors-kafka.html)
+ **서브넷 ID** – Lambda 함수가 데이터 소스에 액세스하는 데 사용할 수 있는 서브넷에 해당하는 하나 이상의 서브넷 ID입니다.
  + **퍼블릭 Kafka 클러스터 또는 표준 Confluent Cloud 클러스터** - 커넥터를 NAT 게이트웨이가 있는 프라이빗 서브넷에 연결합니다.
  + **프라이빗 연결을 제공하는 Confluent Cloud 클러스터** - Confluent Cloud 클러스터로 연결되는 경로가 있는 프라이빗 서브넷에 커넥터를 연결합니다.
    + [AWS Transit Gateway](https://docs.confluent.io/cloud/current/networking/aws-transit-gateway.html)의 경우 서브넷은 Confluent Cloud가 사용하는 것과 동일한 전송 게이트웨이에 연결된 VPC에 있어야 합니다.
    + [VPC 피어링](https://docs.confluent.io/cloud/current/networking/peering/aws-peering.html)의 경우 서브넷은 Confluent Cloud VPC에 피어링된 VPC에 있어야 합니다.
    + [AWS PrivateLink](https://docs.confluent.io/cloud/current/networking/private-links/aws-privatelink.html)의 경우 서브넷은 Confluent Cloud에 연결된 VPC 엔드포인트로 연결되는 경로가 있는 VPC에 있어야 합니다.

**참고**  
프라이빗 리소스에 액세스하기 위해 커넥터를 VPC에 배포하고 Confluent와 같이 공개적으로 액세스 가능한 서비스에도 연결하려는 경우 커넥터를 NAT 게이트웨이가 있는 프라이빗 서브넷과 연결해야 합니다. 자세한 정보는 Amazon VPC 사용 설명서의 [NAT 게이트웨이](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)를 참조하세요.

## 데이터 형식 지원
<a name="connectors-kafka-data-type-support"></a>

다음 표에 Kafka와 Apache Arrow에 대해 지원되는 해당 데이터 형식이 나와 있습니다.


****  

| Kafka | 화살표 | 
| --- | --- | 
| CHAR | VARCHAR | 
| VARCHAR | VARCHAR | 
| TIMESTAMP | MILLISECOND | 
| DATE | DAY | 
| BOOLEAN | BOOL | 
| SMALLINT | SMALLINT | 
| INTEGER | INT | 
| BIGINT | BIGINT | 
| DECIMAL | FLOAT8 | 
| DOUBLE | FLOAT8 | 

## 파티션 및 분할
<a name="connectors-kafka-partitions-and-splits"></a>

Kafka 주제는 파티션으로 분할됩니다. 각 파티션은 순서대로 정렬됩니다. 파티션의 각 메시지에는 offset이라는 증분 ID가 있습니다.** 각 Kafka 파티션은 병렬 처리를 위해 다시 여러 영역으로 분할됩니다. 데이터는 Kafka 클러스터에 구성된 보존 기간 동안 사용할 수 있습니다.

## 모범 사례
<a name="connectors-kafka-best-practices"></a>

다음 예와 같이 Athena를 쿼리할 때 조건자 푸시다운을 사용하는 것이 좋습니다.

```
SELECT * 
FROM "kafka_catalog_name"."glue_schema_registry_name"."glue_schema_name" 
WHERE integercol = 2147483647
```

```
SELECT * 
FROM "kafka_catalog_name"."glue_schema_registry_name"."glue_schema_name" 
WHERE timestampcol >= TIMESTAMP '2018-03-25 07:30:58.878'
```

## Kafka 커넥터 설정
<a name="connectors-kafka-setup"></a>

커넥터를 사용하려면 먼저 Apache Kafka 클러스터를 설정하고, [AWS Glue Schema Registry](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html)를 사용하여 스키마를 정의하고, 커넥터에 대한 인증을 구성해야 합니다.

AWS Glue Schema Registry에서 작업할 경우 다음 사항에 유의하세요.
+ AWS Glue Schema Registry의 **Description**(설명) 필드에 있는 텍스트에 `{AthenaFederationKafka}` 문자열이 포함되어 있는지 확인합니다. 이 마커 문자열은 Amazon Athena Kafka 커넥터와 함께 사용하는 AWS Glue 레지스트리에 필요합니다.
+ 최상의 성능을 얻으려면 데이터베이스 이름과 테이블 이름에 소문자만 사용합니다. 대/소문자를 혼합하여 사용하면 커넥터에서 대소문자를 구분하지 않고 검색하므로 더욱 컴퓨팅 집약적입니다.

**Apache Kafka 환경 및 AWS Glue Schema Registry를 설정하려면**

1. Apache Kafka 환경을 설정합니다.

1. JSON 형식의 Kafka 주제 설명 파일, 즉, 스키마를 AWS Glue Schema Registry에 업로드합니다. 자세한 내용은 AWS Glue 개발자 안내서의 [AWS Glue Schema Registry와 통합](https://docs.aws.amazon.com/glue/latest/dg/schema-registry-integrations.html)을 참조하세요.

1. AWS Glue 스키마 레지스트리에서 스키마를 정의할 때 `AVRO` 또는 `PROTOBUF` 데이터 형식을 사용하는 방법:
   + **Schema name**에 Kafka 주제 이름을 원본과 같은 대/소문자로 입력합니다.
   + **Data format**에서 **Apache Avro** 또는**Protocol Buffers**를 선택합니다.

    스키마 예는 다음 단원을 참조하세요.

### AWS Glue Schema Registry의 스키마 예
<a name="connectors-kafka-setup-schema-examples"></a>

스키마를 [AWS Glue Schema Registry](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html)에 업로드할 경우 이 단원의 예제 형식을 사용하세요.

#### JSON 유형 스키마 예
<a name="connectors-kafka-setup-schema-examples-json"></a>

다음 예제에서 AWS Glue Schema Registry에서 생성할 스키마는 `json`을 `dataFormat`의 값으로 지정하고 `datatypejson`을 `topicName`에 사용합니다.

**참고**  
`topicName`의 값에서는 Kafka의 주제 이름과 동일한 대/소문자를 사용해야 합니다.

```
{
  "topicName": "datatypejson",
  "message": {
    "dataFormat": "json",
    "fields": [
      {
        "name": "intcol",
        "mapping": "intcol",
        "type": "INTEGER"
      },
      {
        "name": "varcharcol",
        "mapping": "varcharcol",
        "type": "VARCHAR"
      },
      {
        "name": "booleancol",
        "mapping": "booleancol",
        "type": "BOOLEAN"
      },
      {
        "name": "bigintcol",
        "mapping": "bigintcol",
        "type": "BIGINT"
      },
      {
        "name": "doublecol",
        "mapping": "doublecol",
        "type": "DOUBLE"
      },
      {
        "name": "smallintcol",
        "mapping": "smallintcol",
        "type": "SMALLINT"
      },
      {
        "name": "tinyintcol",
        "mapping": "tinyintcol",
        "type": "TINYINT"
      },
      {
        "name": "datecol",
        "mapping": "datecol",
        "type": "DATE",
        "formatHint": "yyyy-MM-dd"
      },
      {
        "name": "timestampcol",
        "mapping": "timestampcol",
        "type": "TIMESTAMP",
        "formatHint": "yyyy-MM-dd HH:mm:ss.SSS"
      }
    ]
  }
}
```

#### CSV 유형 스키마 예
<a name="connectors-kafka-setup-schema-examples-csv"></a>

다음 예제에서 AWS Glue Schema Registry에서 생성할 스키마는 `csv`을 `dataFormat`의 값으로 지정하고 `datatypecsvbulk`을 `topicName`에 사용합니다. `topicName`의 값에서는 Kafka의 주제 이름과 동일한 대/소문자를 사용해야 합니다.

```
{
  "topicName": "datatypecsvbulk",
  "message": {
    "dataFormat": "csv",
    "fields": [
      {
        "name": "intcol",
        "type": "INTEGER",
        "mapping": "0"
      },
      {
        "name": "varcharcol",
        "type": "VARCHAR",
        "mapping": "1"
      },
      {
        "name": "booleancol",
        "type": "BOOLEAN",
        "mapping": "2"
      },
      {
        "name": "bigintcol",
        "type": "BIGINT",
        "mapping": "3"
      },
      {
        "name": "doublecol",
        "type": "DOUBLE",
        "mapping": "4"
      },
      {
        "name": "smallintcol",
        "type": "SMALLINT",
        "mapping": "5"
      },
      {
        "name": "tinyintcol",
        "type": "TINYINT",
        "mapping": "6"
      },
      {
        "name": "floatcol",
        "type": "DOUBLE",
        "mapping": "7"
      }
    ]
  }
}
```

#### AVRO 유형 스키마 예
<a name="connectors-kafka-setup-schema-examples-avro"></a>

다음 예제는 AWS Glue 스키마 레지스트리에 Avro 기반 스키마를 생성하는 데 사용됩니다. AWS Glue 스키마 레지스트리에서 스키마를 정의할 때 **Schema name**에는 원본과 동일한 대/소문자로 Kafka 주제 이름을 입력하고 **Data format**에는 **Apache Avro**를 선택합니다. 레지스트리에서 이 정보를 직접 지정하므로 `dataformat` 및 `topicName` 필드는 필요하지 않습니다.

```
{
    "type": "record",
    "name": "avrotest",
    "namespace": "example.com",
    "fields": [{
            "name": "id",
            "type": "int"
        },
        {
            "name": "name",
            "type": "string"
        }
    ]
}
```

#### PROTOBUF 유형 스키마 예
<a name="connectors-kafka-setup-schema-examples-protobuf"></a>

다음 예제는 AWS Glue 스키마 레지스트리에 PROTOBUF 기반 스키마를 생성하는 데 사용됩니다. AWS Glue 스키마 레지스트리에서 스키마를 정의할 때 **Schema name**에는 원본과 동일한 대/소문자로 Kafka 주제 이름을 입력하고 **Data format**에는 **Protocol Buffers**를 선택합니다. 레지스트리에서 이 정보를 직접 지정하므로 `dataformat` 및 `topicName` 필드는 필요하지 않습니다. 첫 번째 줄은 스키마를 PROTOBUF로 정의합니다.

```
syntax = "proto3";
message protobuftest {
string name = 1;
int64 calories = 2;
string colour = 3;
}
```

AWS Glue 스키마 레지스트리에 레지스트리와 스키마를 추가하는 방법에 대한 자세한 내용은 AWS Glue 설명서의 [Getting started with Schema Registry](https://docs.aws.amazon.com/glue/latest/dg/schema-registry-gs.html)를 참조하세요.

### Athena Kafka 커넥터에 대한 인증 구성
<a name="connectors-kafka-setup-configuring-authentication"></a>

SSL, SASL/SCRAM, SASL/PLAIN, SASL/PLAINTEXT를 비롯한 다양한 방법을 사용하여 Apache Kafka 클러스터에 대한 인증을 수행할 수 있습니다.

다음 표에는 커넥터의 인증 유형과 각 유형에 대한 보안 프로토콜 및 SASL 메커니즘이 나와 있습니다. 자세한 내용은 Apache Kafka 설명서의 [Security](https://kafka.apache.org/documentation/#security) 섹션을 참조하세요.


****  

| auth\$1type | security.protocol | sasl.mechanism | 클러스터 유형 호환성 | 
| --- | --- | --- | --- | 
| SASL\$1SSL\$1PLAIN | SASL\$1SSL | PLAIN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/connectors-kafka.html)  | 
| SASL\$1PLAINTEXT\$1PLAIN | SASL\$1PLAINTEXT | PLAIN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/connectors-kafka.html)  | 
| SASL\$1SSL\$1SCRAM\$1SHA512 | SASL\$1SSL | SCRAM-SHA-512 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/connectors-kafka.html)  | 
| SASL\$1PLAINTEXT\$1SCRAM\$1SHA512 | SASL\$1PLAINTEXT | SCRAM-SHA-512 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/connectors-kafka.html)  | 
| SSL | SSL | 해당 사항 없음 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/connectors-kafka.html)  | 

#### SSL
<a name="connectors-kafka-setup-configuring-authentication-tls"></a>

클러스터가 SSL 인증을 받은 경우 트러스트 스토어와 키 스토어 파일을 생성하여 Amazon S3 버킷에 업로드해야 합니다. 커넥터를 배포할 때 이 Amazon S3 참조를 제공해야 합니다. 키 스토어, 트러스트 스토어 및 SSL 키는 AWS Secrets Manager에 저장됩니다. 커넥터를 배포할 때 AWS 비밀 키를 제공합니다.

Secrets Manager에서 보안 암호를 생성하는 방법에 대한 자세한 내용은 [AWS Secrets Manager 보안 암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)을 참조하세요.

이 인증 유형을 사용하려면 다음 표에 표시된 대로 환경 변수를 설정합니다.


****  

| 파라미터 | 값 | 
| --- | --- | 
| auth\$1type | SSL | 
| certificates\$1s3\$1reference | 인증서가 포함된 Amazon S3 위치입니다. | 
| secrets\$1manager\$1secret | AWS 비밀 키의 이름입니다. | 

Secrets Manager에서 보안 암호를 생성한 이후에 Secrets Manager 콘솔에서 보안 암호를 볼 수 있습니다.

**Secrets Manager에서 보안 암호를 보려면**

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 Secrets Manager 콘솔을 엽니다.

1. 탐색 창에서 **Secrets**(보안 암호)를 선택합니다.

1. **Secrets**(보안 암호) 페이지에서 보안 암호에 대한 링크를 선택합니다.

1. 보안 암호에 대한 세부 정보 페이지에서 **Retrieve secret value**(보안 암호 값 검색)를 선택합니다.

   다음 이미지는 세 개의 키/값 쌍(`keystore_password`, `truststore_password`, `ssl_key_password`)을 가진 보안 암호의 예를 보여줍니다.  
![\[Secrets Manager에서 SSL 보안 암호 검색\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/connectors-kafka-setup-1.png)

Kafka에서 SSL을 사용하는 방법에 대한 자세한 내용은 Apache Kafka 설명서의 [Encryption and Authentication using SSL](https://kafka.apache.org/documentation/#security_ssl)을 참조하세요.

#### SASL/SCRAM
<a name="connectors-kafka-setup-configuring-authentication-sasl-scram"></a>

클러스터에서 SCRAM 인증을 사용하는 경우 커넥터를 배포할 때 클러스터와 연결되는 Secrets Manager 키를 제공합니다. 사용자의 AWS 보안 인증(비밀 키 및 액세스 키)은 클러스터에 인증하는 데 사용됩니다.

다음 표에 표시된 대로 환경 변수를 설정합니다.


****  

| 파라미터 | 값 | 
| --- | --- | 
| auth\$1type | SASL\$1SSL\$1SCRAM\$1SHA512 | 
| secrets\$1manager\$1secret | AWS 비밀 키의 이름입니다. | 

다음 이미지는 Secrets Manager 콘솔에서 `username` 및 `password`에 대해 하나씩 두 개의 키/값 쌍으로 구성된 보안 암호의 예를 보여줍니다.

![\[Secrets Manager에서 SCRAM 보안 암호 검색\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/connectors-kafka-setup-2.png)


Kafka에서 SASL/SCRAM을 사용하는 방법에 대한 자세한 내용은 Apache Kafka 설명서의 [Authentication using SASL/SCRAM](https://kafka.apache.org/documentation/#security_sasl_scram)을 참조하세요.

## 라이선스 정보
<a name="connectors-kafka-license-information"></a>

이 커넥터를 사용하면 이 커넥터에 대한 [pom.xml](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-kafka/pom.xml) 파일에서 목록을 찾을 수 있는 타사 구성 요소가 포함되어 있음을 인정하고 GitHub.com의 [LICENSE.txt](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-kafka/LICENSE.txt) 파일에 제공된 해당 타사 라이선스의 조건에 동의하는 것으로 간주됩니다.

## 추가 리소스
<a name="connectors-kafka-additional-resources"></a>

이 커넥터에 대한 추가 정보를 알아보려면 GitHub.com의 [해당 사이트](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-kafka)를 참조하세요.