

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

# Amazon MSK 프로비저닝된 클러스터에 연결
<a name="client-access"></a>

기본적으로 클라이언트는 클러스터와 동일한 VPC에 있는 경우에만 MSK 프로비저닝된 클러스터에 액세스할 수 있습니다. Kafka 클라이언트와 MSK 프로비저닝된 클러스터 간의 모든 통신은 기본적으로 프라이빗이며 스트리밍 데이터는 절대로 인터넷을 통과하지 않습니다. 클러스터와 동일한 VPC에 있는 클라이언트에서 MSK 프로비저닝된 클러스터에 연결하려면 클러스터의 보안 그룹에 클라이언트의 보안 그룹으로부터 트래픽을 허용하는 인바운드 규칙이 있는 것을 확인해야 합니다. 이러한 규칙 설정에 대한 자세한 내용은 [보안 그룹 규칙](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)을 참조하십시오. 클러스터와 동일한 VPC에 있는 Amazon EC2 인스턴스에서 클러스터에 액세스하는 방법의 예제는 [Amazon MSK 사용 시작하기](getting-started.md) 섹션을 참조하세요.

**참고**  
KRaft 메타데이터 모드와 MSK Express 브로커는 공개 모니터링과 퍼블릭 액세스 둘 다를 활성화할 수 없습니다.

클러스터의 VPC 외부에 있는 클라이언트에서 MSK 프로비저닝된 클러스터에 연결하려면 [클러스터의 VPC 내부 AWS 및 외부에서 액세스를 참조하세요](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access.html).

**Topics**
+ [MSK 프로비저닝된 클러스터에 대한 퍼블릭 액세스 활성화](public-access.md)
+ [클러스터의 VPC 내부 AWS 및 외부에서 액세스](aws-access.md)

# MSK 프로비저닝된 클러스터에 대한 퍼블릭 액세스 활성화
<a name="public-access"></a>

Amazon MSK는 Apache Kafka 2.6.0 이상 버전을 실행하는 MSK 프로비저닝된 클러스터의 브로커에 대한 퍼블릭 액세스를 활성화할 수 있는 옵션을 제공합니다. 보안상의 이유로 MSK 클러스터를 생성하는 동안에는 퍼블릭 액세스를 활성화할 수 없습니다. 그러나 기존 클러스터를 업데이트하여 공개적으로 액세스할 수 있도록 할 수 있습니다. 새 클러스터를 만든 다음 업데이트하여 공개적으로 액세스할 수 있도록 할 수도 있습니다.

추가 비용 없이 MSK 클러스터에 대한 퍼블릭 액세스를 켤 수 있지만 클러스터 내부 및 외부 AWS 로의 데이터 전송에는 표준 데이터 전송 비용이 적용됩니다. 가격 책정에 대한 자세한 내용은 [Amazon EC2 온디맨드 가격 책정](https://aws.amazon.com/ec2/pricing/on-demand/)을 참조하세요.

 듀얼 스택 네트워크 유형의 Amazon MSK 프로비저닝 클러스터는 퍼블릭 액세스를 위해 IPv4 및 IPv6 연결을 모두 지원합니다. 클러스터에서 퍼블릭 액세스가 활성화되면 동일한 IPv6 부트스트랩 문자열이 기본 및 퍼블릭 액세스 연결 모두에서 자동으로 작동합니다. 기존 IPv4 부트스트랩 문자열은 IPv4 연결에 계속 작동합니다. 클러스터에서 퍼블릭 액세스가 활성화되지 않은 경우 IPv6 부트스트랩 문자열에는 퍼블릭 액세스 기능이 없습니다. 자세한 내용은 Amazon MSK 클러스터에 대한 듀얼 스택 네트워크 유형 구성을 참조하세요.

**참고**  
SASL/SCRAM 또는 mTLS 액세스 제어 방법을 사용하는 경우 먼저 클러스터에 대해 Apache Kafka ACL을 설정해야 합니다. 그런 다음 클러스터의 구성을 업데이트하여 `allow.everyone.if.no.acl.found` 속성이 false로 설정되도록 합니다. 클러스터 구성을 업데이트하는 방법에 대한 자세한 내용은 [브로커 구성 작업](msk-configuration-operations.md) 섹션을 참조하세요.

MSK 프로비저닝된 클러스터에 대한 퍼블릭 액세스를 활성화하려면 먼저 클러스터가 다음 조건을 모두 충족하도록 해야 합니다.
+ 클러스터와 연결된 서브넷은 퍼블릭이어야 합니다. 각 퍼블릭 서브넷에는 연결된 퍼블릭 IPv4 주소가 있으며, 퍼블릭 IPv4 주소는 [Amazon VPC 요금 페이지](https://aws.amazon.com/vpc/pricing/)에 표시된 대로 가격이 책정됩니다. 즉, 서브넷에는 인터넷 게이트웨이가 연결된 관련 라우팅 테이블이 있어야 합니다. 인터넷 게이트웨이를 생성하고 연결하는 방법에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [인터넷 게이트웨이를 사용하여 VPC 인터넷 액세스 활성화](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)를 참조하세요.
+ 인증되지 않은 액세스 제어는 비활성화되어 있어야 하며 SASL/IAM, SASL/SCRAM, mTLS 액세스 제어 방법 중 하나 이상이 활성화되어 있어야 합니다. 클러스터의 액세스 제어 방법을 업데이트하는 방법에 대한 자세한 내용은 [Amazon MSK 클러스터의 보안 설정 업데이트](msk-update-security.md) 섹션을 참조하세요.
+ 클러스터 내 암호화가 활성화되어 있어야 합니다. 클러스터를 생성할 때 기본 설정은 켜짐입니다. 암호화를 비활성화한 상태로 생성한 클러스터에 대해서는 클러스터 내에서 암호화를 활성화할 수 없습니다. 따라서 클러스터 내에서 암호화를 비활성화한 상태로 생성된 클러스터에 대해서는 퍼블릭 액세스를 활성화할 수 없습니다.
+ 브로커와 클라이언트 간의 일반 텍스트 트래픽은 비활성화되어 있어야 합니다. 활성화되어 있는 경우 비활성화하는 방법에 대한 자세한 내용은 [Amazon MSK 클러스터의 보안 설정 업데이트](msk-update-security.md) 섹션을 참조하세요.
+ IAM 액세스 제어를 사용 중이고 권한 부여 정책을 적용하거나 업데이트하려는 경우 [IAM 액세스 제어](iam-access-control.md) 섹션을 참조하세요. Apache Kafka ACL에 대한 자세한 내용은 [Apache Kafka ACL](msk-acls.md) 섹션을 참조하세요.

MSK 클러스터가 위에 나열된 조건을 충족하는지 확인한 후 AWS CLI, 또는 Amazon MSK API AWS Management Console를 사용하여 퍼블릭 액세스를 켤 수 있습니다. 클러스터에 대해 퍼블릭 액세스를 활성화한 후에는 클러스터에 대한 퍼블릭 부트스트랩 브로커 문자열을 가져올 수 있습니다. 클러스터에 대한 부트스트랩 브로커를 가져오는 방법에 대한 자세한 내용은 [Amazon MSK 클러스터를 위한 부트스트랩 브로커 가져오기](msk-get-bootstrap-brokers.md) 섹션을 참조하세요.

**중요**  
퍼블릭 액세스를 활성화하는 것 외에도 클러스터의 보안 그룹에 내 IP 주소에서 퍼블릭 액세스를 허용하는 인바운드 TCP 규칙이 있는지 확인합니다. 이러한 규칙은 가능한 한 제한적으로 설정하는 것을 권장합니다. 보안 그룹 및 인바운드 규칙에 대한 자세한 내용은 Amazon VPC 사용 설명서에서 [VPC의 보안 그룹](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)을 참조하세요. 포트 번호는 [포트 정보](port-info.md) 섹션을 참조하세요. 클러스터의 보안 그룹을 변경하는 방법에 대한 지침은 [Amazon MSK 클러스터의 보안 그룹 변경](change-security-group.md) 섹션을 참조하세요.

**참고**  
다음 지침에 따라 퍼블릭 액세스를 활성화한 후에도 여전히 클러스터에 액세스할 수 없는 경우 [퍼블릭 액세스가 활성화된 클러스터에 액세스할 수 없음](troubleshooting.md#public-access-issues) 섹션을 참조하세요.

**콘솔을 사용하여 퍼블릭 액세스를 활성화하려면 다음을 수행합니다.**

1. 에 로그인 AWS Management Console하고 [https://console.aws.amazon.com/msk/home?region=us-east-1\$1/home/](https://console.aws.amazon.com/msk/home?region=us-east-1#/home/) Amazon MSK 콘솔을 엽니다.

1. 클러스터 목록에서 퍼블릭 액세스를 활성화하려는 클러스터를 선택합니다.

1. **속성** 탭을 선택한 다음 **네트워크 설정** 섹션을 찾습니다.

1. **퍼블릭 액세스 편집**을 선택합니다.

**를 사용하여 퍼블릭 액세스 켜기 AWS CLI**

1. 다음 AWS CLI 명령을 실행하여 *ClusterArn* 및 *Current-Cluster-Version*을 클러스터의 ARN 및 현재 버전으로 바꿉니다. 클러스터의 현재 버전을 찾으려면 [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster) 작업 또는 [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) 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"}}'
   ```

1. `update-connectivity` 작업 결과를 가져오려면 다음 명령을 실행하여 *ClusterOperationArn*을 `update-connectivity` 명령의 출력에서 가져온 ARN으로 바꿉니다.

   ```
   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를 사용하여 퍼블릭 액세스를 활성화하려면 다음을 수행합니다.**
+ API를 사용하여 클러스터에 대한 퍼블릭 액세스를 켜거나 끄려면 [UpdateConnectivity](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-connectivity.html#UpdateConnectivity)를 참조하세요.

**참고**  
보안상의 이유로 Amazon MSK는 Apache ZooKeeper 또는 켜기 컨트롤러 노드에 대한 퍼블릭 액세스를 허용하지 않습니다.

# 클러스터의 VPC 내부 AWS 및 외부에서 액세스
<a name="aws-access"></a>

클러스터의 Amazon VPC 내부 AWS 및 외부에서 MSK 클러스터에 연결하려면 다음 옵션이 있습니다.

## Amazon VPC 피어링
<a name="vpc-peering"></a>

클러스터의 VPC와 다른 VPC에서 MSK 클러스터에 연결하려면 두 VPC 간에 피어링 연결을 생성하면 됩니다. VPC 피어링에 대한 자세한 내용은 [Amazon VPC 피어링 안내서](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)를 참조하십시오.

## Direct Connect
<a name="direct-connect"></a>

Direct Connect 는 표준 1기가비트 또는 10기가비트 이더넷 광섬유 케이블을 AWS 통해 온프레미스 네트워크를에 연결합니다. 케이블의 한쪽 끝은 라우터에 연결되고 다른 쪽 끝은 Direct Connect 라우터에 연결됩니다. 이 연결을 사용하면 네트워크 경로에서 인터넷 서비스 공급자를 우회하여 AWS 클라우드 및 Amazon VPC에 직접 가상 인터페이스를 생성할 수 있습니다. 자세한 내용은 [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 단원을 참조하십시오.

## AWS Transit Gateway
<a name="transit-gateway"></a>

AWS Transit Gateway 는 VPCs와 온프레미스 네트워크를 단일 게이트웨이에 연결할 수 있는 서비스입니다. AWS Transit Gateway사용 방법에 대한 자세한 내용은 [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) 단원을 참조하십시오.

## VPN 연결
<a name="vpn-connections"></a>

[VPN 연결](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html) 주제에 설명된 VPN 연결 옵션을 사용하여 MSK 클러스터의 VPC를 원격 네트워크 및 사용자에 연결할 수 있습니다.

## REST 프록시
<a name="rest-proxies"></a>

클러스터의 Amazon VPC 내에서 실행 중인 인스턴스에 REST 프록시를 설치할 수 있습니다. REST 프록시를 사용하면 생산자와 소비자가 HTTP API 요청을 통해 클러스터와 통신할 수 있습니다.

## 다중 리전 다중 VPC 연결
<a name="multi-vpc-multi-region"></a>

[다중 리전 다중 VPC 연결](https://aws.amazon.com/answers/networking/aws-multiple-region-multi-vpc-connectivity/) 문서에서는 서로 다른 리전에 상주하는 다중 VPC에 대한 연결 옵션을 설명합니다.

## 단일 리전 다중 VPC 프라이빗 연결
<a name="multi-vpc-single-region"></a>

Amazon Managed Streaming for Apache Kafka(Amazon MSK) 클러스터에 대한 다중 VPC 프라이빗 연결([AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) 제공)은 다양한 Virtual Private Cloud(VPCs) 및 AWS 계정에서 호스팅되는 Kafka 클라이언트를 Amazon MSK 클러스터에 더 빠르게 연결할 수 있는 기능입니다.

[크로스 계정 클라이언트를 위한 단일 리전 다중 VPC 연결](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access-mult-vpc.html)을 참조하세요.

## EC2-Classic 네트워킹이 사용 중지됨
<a name="ec2-classic-retired"></a>

Amazon MSK는 더 이상 Amazon EC2-Classic 네트워킹에서 실행되는 Amazon EC2 인스턴스를 지원하지 않습니다.

[EC2-Classic 네트워킹은 사용 중지 중 - 준비 방법은 다음과 같습니다](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/)를 참조하세요.

# 단일 리전에서의 Amazon MSK 다중 VPC 프라이빗 연결
<a name="aws-access-mult-vpc"></a>

Amazon Managed Streaming for Apache Kafka(Amazon MSK) 클러스터에 대한 다중 VPC 프라이빗 연결([AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) 제공)은 다양한 Virtual Private Cloud(VPCs) 및 AWS 계정에서 호스팅되는 Kafka 클라이언트를 Amazon MSK 클러스터에 더 빠르게 연결할 수 있는 기능입니다.

다중 VPC 프라이빗 연결은 다중 VPC 및 크로스 계정 연결을 위한 네트워킹 인프라를 간소화하는 관리형 솔루션입니다. 클라이언트는 AWS 네트워크 내에서 모든 트래픽을 유지하면서 PrivateLink를 통해 Amazon MSK 클러스터에 연결할 수 있습니다. Amazon MSK 클러스터에 대한 다중 VPC 프라이빗 연결은 Amazon MSK를 사용할 수 있는 모든 AWS 리전에서 사용할 수 있습니다.

**Topics**
+ [다중 VPC 프라이빗 연결이란 무엇인가요?](#mvpc-what-is)
+ [다중 VPC 프라이빗 연결의 이점](#mvpc-benefits)
+ [다중 VPC 프라이빗 연결에 대한 요구 사항과 제한](#mvpc-requirements)
+ [다중 VPC 프라이빗 연결을 사용하여 시작하기](mvpc-getting-started.md)
+ [클러스터에서 권한 부여 체계 업데이트](mvpc-cross-account-update-authschemes.md)
+ [Amazon MSK 클러스터에 대한 관리형 VPC 연결 거부](mvpc-cross-account-reject-connection.md)
+ [Amazon MSK 클러스터에 대한 관리형 VPC 연결 삭제](mvpc-cross-account-delete-connection.md)
+ [다중 VPC 프라이빗 연결에 대한 권한](mvpc-cross-account-permissions.md)

## 다중 VPC 프라이빗 연결이란 무엇인가요?
<a name="mvpc-what-is"></a>

Amazon MSK에 대한 다중 VPC 프라이빗 연결은 서로 다른 Virtual Private Cloud(VPCs) 및 AWS 계정에서 호스팅되는 Apache Kafka 클라이언트를 MSK 클러스터에 연결할 수 있는 연결 옵션입니다.

Amazon MSK는 [클러스터 정책](mvpc-cluster-owner-action-policy.md)으로 크로스 계정 액세스를 간소화합니다. 이러한 정책을 통해 클러스터 소유자는 다른 AWS 계정에 MSK 클러스터에 대한 프라이빗 연결을 설정할 수 있는 권한을 부여할 수 있습니다.

## 다중 VPC 프라이빗 연결의 이점
<a name="mvpc-benefits"></a>

다중 VPC 프라이빗 연결은 [다른 연결 솔루션](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access.html)에 비해 몇 가지 이점이 있습니다.
+ 프라이빗 AWS PrivateLink 연결 솔루션의 운영 관리를 자동화합니다.
+ 이 솔루션은 연결된 VPC 간 IP 중복을 허용하므로 다른 VPC 연결 솔루션과 관련된 중복되지 않는 IP, 복잡한 피어링, 라우팅 테이블을 유지할 필요가 없습니다.

MSK 클러스터에 대한 클러스터 정책을 사용하여 MSK 클러스터에 대한 교차 계정 프라이빗 연결을 설정할 권한이 있는 AWS 계정을 정의합니다. 크로스 계정 관리자는 적절한 역할 또는 사용자에게 권한을 위임할 수 있습니다. IAM 클라이언트 인증과 함께 사용하는 경우 클러스터 정책을 사용하여 연결 클라이언트에 대해 세분화된 단위로 Kafka 데이터 영역 권한을 정의할 수도 있습니다.

## 다중 VPC 프라이빗 연결에 대한 요구 사항과 제한
<a name="mvpc-requirements"></a>

다중 VPC 프라이빗 연결을 실행하려면 다음 MSK 클러스터 요구 사항을 참고하세요.
+ 다중 VPC 프라이빗 연결은 Apache Kafka 2.7.1 이상에서만 지원됩니다. MSK 클러스터와 함께 사용하는 모든 클라이언트가 클러스터와 호환되는 Apache Kafka 버전을 실행하고 있는지 확인합니다.
+ 다중 VPC 프라이빗 연결은 인증 유형 IAM, TLS, SASL/SCRAM을 지원합니다. 인증되지 않은 클러스터는 다중 VPC 프라이빗 연결을 사용할 수 없습니다.
+ SASL/SCRAM 또는 mTLS 액세스 제어 방법을 사용하는 경우 클러스터에 대해 Apache Kafka ACL을 설정해야 합니다. 먼저 클러스터에 대한 Apache Kafka ACL을 설정합니다. 그런 다음 클러스터의 구성을 업데이트하여 클러스터에 대해 `allow.everyone.if.no.acl.found` 속성이 false로 설정되도록 합니다. 클러스터 구성을 업데이트하는 방법에 대한 자세한 내용은 [브로커 구성 작업](msk-configuration-operations.md) 섹션을 참조하세요. IAM 액세스 제어를 사용 중이고 권한 부여 정책을 적용하거나 업데이트하려는 경우 [IAM 액세스 제어](iam-access-control.md) 섹션을 참조하세요. Apache Kafka ACL에 대한 자세한 내용은 [Apache Kafka ACL](msk-acls.md) 섹션을 참조하세요.
+ 다중 VPC 프라이빗 연결은 t3.small 인스턴스 유형을 지원하지 않습니다.
+ 다중 VPC 프라이빗 연결은 AWS 리전 간에 지원되지 않으며 동일한 리전 내의 AWS 계정에서만 지원됩니다.
+ 다중 VPC 프라이빗 연결을 설정하려면 클러스터 서브넷과 동일한 수의 클라이언트 서브넷이 있어야 합니다. 또한 클라이언트 서브넷과 클러스터 서브넷의 [가용 영역 ID](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)가 동일한지 확인해야 합니다.
+ Amazon MSK는 Zookeeper 노드에 대한 다중 VPC 프라이빗 연결을 지원하지 않습니다.

# 다중 VPC 프라이빗 연결을 사용하여 시작하기
<a name="mvpc-getting-started"></a>

**Topics**
+ [1단계: 계정 A의 MSK 클러스터에서 클러스터의 IAM 인증 체계를 위한 다중 VPC 연결을 활성화](mvpc-cluster-owner-action-turn-on.md)
+ [2단계: MSK 클러스터에 클러스터 정책 연결](mvpc-cluster-owner-action-policy.md)
+ [3단계: 크로스 계정 사용자 작업을 통해 클라이언트 관리형 VPC 연결 구성](mvpc-cross-account-user-action.md)

이 자습서에서는 다중 VPC 연결을 사용하여 Apache Kafka 클라이언트를 클러스터의 내부 AWS및 VPC 외부에서 MSK 클러스터에 비공개로 연결하는 방법의 예로 일반적인 사용 사례를 사용합니다. 이 프로세스를 수행하려면 크로스 계정 사용자가 필요한 클라이언트 권한을 포함하여 각 클라이언트에 대한 MSK 관리형 VPC 연결 및 구성을 생성해야 합니다. 또한 이 프로세스에서는 MSK 클러스터 소유자가 MSK 클러스터에서 PrivateLink 연결을 활성화하고 클러스터에 대한 액세스를 제어하기 위해 인증 체계를 선택해야 합니다.

이 자습서의 다른 부분에서는 이 예제에 적용되는 옵션을 선택합니다. 이 옵션이 MSK 클러스터 또는 클라이언트 인스턴스를 설정하는 데 사용되는 유일한 옵션이라는 의미는 아닙니다.

이 사용 사례의 네트워크 구성은 다음과 같습니다.
+ 크로스 계정 사용자(Kafka 클라이언트)와 MSK 클러스터가 동일한 AWS 네트워크/리전에 있지만 서로 다른 계정에 있습니다.
  + 계정 A의 MSK 클러스터
  + 계정 B의 Kafka 클라이언트
+ 크로스 계정 사용자는 IAM 인증 체계를 사용하여 MSK 클러스터에 비공개로 연결합니다.

이 자습서에서는 Apache Kafka 버전 2.7.1 이상으로 생성된 프로비저닝된 MSK 클러스터가 있다고 가정합니다. 구성 프로세스를 시작하기 전에 MSK 클러스터가 활성 상태여야 합니다. 잠재적인 데이터 손실이나 가동 중지를 방지하기 위해 다중 VPC 프라이빗 연결을 사용하여 클러스터에 연결할 클라이언트는 클러스터와 호환되는 Apache Kafka 버전을 사용해야 합니다.

다음 다이어그램은 다른 AWS 계정의 클라이언트에 연결된 Amazon MSK 다중 VPC 연결의 아키텍처를 보여줍니다.

![\[단일 리전의 다중 VPC 네트워크 다이어그램\]](http://docs.aws.amazon.com/ko_kr/msk/latest/developerguide/images/mvpc-network.png)


# 1단계: 계정 A의 MSK 클러스터에서 클러스터의 IAM 인증 체계를 위한 다중 VPC 연결을 활성화
<a name="mvpc-cluster-owner-action-turn-on"></a>

MSK 클러스터 소유자는 클러스터가 생성된 후 활성 상태에서 MSK 클러스터에 대한 구성 설정을 해야 합니다.

클러스터 소유자는 클러스터에서 활성화될 모든 인증 체계에 대해 활성 클러스터에서 다중 VPC 프라이빗 연결을 활성화합니다. 이는 [UpdateSecurity API](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-security.html) 또는 MSK 콘솔을 사용하여 수행할 수 있습니다. 다중 VPC 프라이빗 연결은 여러 인증 체계 SASL/SCRAM, IAM, TLS를 지원합니다. 인증되지 않은 클러스터에는 다중 VPC 프라이빗 연결을 활성화할 수 없습니다.

이 사용 사례에서는 IAM 인증 체계를 사용하도록 클러스터를 구성합니다.

**참고**  
SASL/SCRAM 인증 체계를 사용하도록 MSK 클러스터를 구성하는 경우 Apache Kafka ACL 속성 “`allow.everyone.if.no.acl.found=false`”는 필수입니다. [Apache Kafka ACLs](https://docs.aws.amazon.com/msk/latest/developerguide/msk-acls.html)를 참조하세요.

다중 VPC 프라이빗 연결 설정을 업데이트하면 Amazon MSK는 브로커 구성을 업데이트하는 브로커 노드의 롤링 재부팅을 시작합니다. 이 작업을 완료하는 데 최대 30분 이상 소요될 수 있습니다. 연결이 업데이트되는 동안에는 클러스터에 다른 업데이트를 수행할 수 없습니다.

**콘솔을 사용하여 계정 A의 클러스터에서 선택한 인증 체계에 대해 다중 VPC를 활성화합니다.**

1. [https://console.aws.amazon.com/msk/](https://docs.aws.amazon.com/msk/latest/developerguide/msk-acls.html)에서 클러스터가 있는 계정에 대해 Amazon MSK 콘솔을 엽니다.

1. 탐색 창의 **MSK 클러스터에서** **클러스터**를 선택하여 계정의 클러스터 목록을 표시합니다.

1. 다중 VPC 프라이빗 연결을 구성할 클러스터를 선택합니다. 클러스터는 활성 상태여야 합니다.

1. 클러스터 **속성** 탭을 선택한 다음 **네트워크** 설정으로 이동합니다.

1. **편집** 드롭다운 메뉴를 선택하고 **다중 VPC 연결 켜기**를 선택합니다.

1. 이 클러스터에 대해 활성화하려는 인증 유형을 하나 이상 선택합니다. 이 사용 사례에서는 **IAM 역할** 기반 인증을 선택합니다.

1. **변경 사항 저장**을 선택합니다.

**Example - 클러스터에서 다중 VPC 프라이빗 연결 인증 체계를 활성화하는 UpdateConnectivity API**  
MSK 콘솔 대신 [UpdateConnectivity API](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-connectivity.html)를 사용하여 다중 VPC 프라이빗 연결을 활성화하고 활성 클러스터에서 인증 체계를 구성할 수 있습니다. 다음 예제는 클러스터에 대해 설정된 IAM 인증 체계를 보여줍니다.  

```
{
  "currentVersion": "K3T4TT2Z381HKD",
  "connectivityInfo": {
    "vpcConnectivity": {
      "clientAuthentication": {
        "sasl": {
          "iam": {
            "enabled": TRUE
            }
        }
      }
    }
  }
}
```

Amazon MSK는 프라이빗 연결에 필요한 네트워킹 인프라를 생성합니다. 또한 Amazon MSK는 프라이빗 연결이 필요한 각 인증 유형에 대해 새 부트스트랩 브로커 엔드포인트 세트를 생성합니다. 일반 텍스트 인증 체계는 다중 VPC 프라이빗 연결을 지원하지 않는다는 점에 유의하세요.

# 2단계: MSK 클러스터에 클러스터 정책 연결
<a name="mvpc-cluster-owner-action-policy"></a>

클러스터 소유자는 클러스터 정책([리소스 기반 정책](https://docs.aws.amazon.com/msk/latest/developerguide/security_iam_service-with-iam.html#security_iam_service-with-iam-resource-based-policies)이라고도 함)을 MSK 클러스터에 연결하여 다중 VPC 프라이빗 연결을 활성화할 수 있습니다. 클러스터 정책은 클라이언트가 다른 계정에서 클러스터에 액세스할 수 있는 권한을 부여합니다. 클러스터 정책을 편집하기 전에 MSK 클러스터에 액세스할 수 있는 권한이 있어야 하는 계정의 계정 ID가 필요합니다. [Amazon MSK가 IAM과 작동하는 방식](https://docs.aws.amazon.com/msk/latest/developerguide/security_iam_service-with-iam.html)을 참조하세요.

클러스터 소유자는 계정 B의 크로스 계정 사용자가 클러스터에 대한 부트스트랩 브로커를 가져오고 계정 A의 MSK 클러스터에서 다음 작업을 할 수 있도록 권한을 부여하는 클러스터 정책을 MSK 클러스터에 연결해야 합니다.
+ CreateVpcConnection
+ GetBootstrapBrokers
+ DescribeCluster
+ DescribeClusterV2

**Example**  
참고로 다음은 MSK 콘솔 IAM 정책 편집기에 표시되는 기본 정책과 유사한 기본 클러스터 정책에 대한 JSON의 예제입니다. 다음 정책은 클러스터, 주제 및 그룹 수준 액세스에 대한 권한을 부여합니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "123456789012"
      },
      "Action": [
        "kafka:CreateVpcConnection",
        "kafka:GetBootstrapBrokers",
        "kafka:DescribeCluster",
        "kafka:DescribeClusterV2",
        "kafka-cluster:*"
      ],
      "Resource": "arn:aws:kafka:us-east-1:111122223333:cluster/testing/de8982fa-8222-4e87-8b20-9bf3cdfa1521-2"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "123456789012"
      },
      "Action": "kafka-cluster:*",
      "Resource": "arn:aws:kafka:us-east-1:111122223333:topic/testing/*"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "123456789012"
      },
      "Action": "kafka-cluster:*",
      "Resource": "arn:aws:kafka:us-east-1:111122223333:group/testing/*"
    }
  ]
}
```

**MSK 클러스터에 클러스터 정책 연결**

1. Amazon MSK 콘솔의 **MSK 클러스터**에서 **클러스터**를 선택합니다.

1. **보안 설정**까지 아래로 스크롤하여 **클러스터 편집** 정책을 선택합니다.

1. 콘솔의 **클러스터 정책 편집** 화면에서 **다중 VPC 연결을 위한 기본 정책**을 선택합니다.

1. **계정 ID** 필드에 이 클러스터에 액세스할 수 있는 권한이 있어야 하는 각 계정의 계정 ID를 입력합니다. ID를 입력하면 ID가 표시된 정책 JSON 구문에 자동으로 복사됩니다. 예제 클러스터 정책에서 계정 ID는 *111122223333*입니다.

1. **변경 사항 저장**을 선택합니다.

클러스터 정책 API에 대한 자세한 내용은 [Amazon MSK 리소스 기반 정책](https://docs.aws.amazon.com/msk/latest/developerguide/security_iam_service-with-iam.html#security_iam_service-with-iam-resource-based-policies)을 참조하세요.

# 3단계: 크로스 계정 사용자 작업을 통해 클라이언트 관리형 VPC 연결 구성
<a name="mvpc-cross-account-user-action"></a>

MSK 클러스터와 다른 계정의 클라이언트 간에 다중 VPC 프라이빗 연결을 설정하려면 크로스 계정 사용자가 클라이언트에 대한 관리형 VPC 연결을 생성합니다. 이 절차를 반복하여 여러 클라이언트를 MSK 클러스터에 연결할 수 있습니다. 이 사용 사례에서는 하나의 클라이언트만 구성합니다.

클라이언트는 지원되는 인증 체계인 IAM, SASL/SCRAM 또는 TLS를 사용할 수 있습니다. 각 관리형 VPC 연결에 하나의 인증 체계만 연결할 수 있습니다. 클라이언트 인증 체계는 클라이언트가 연결할 MSK 클러스터에서 구성해야 합니다

 이 사용 사례에서는 계정 B의 클라이언트가 IAM 인증 체계를 사용하도록 클라이언트 인증 체계를 구성합니다.

**사전 조건**

이 프로세스에는 다음 항목이 필요합니다.
+ 이전에 만든 클러스터 정책으로, 계정 B의 클라이언트가 계정 A의 MSK 클러스터에서 작업을 수행할 수 있는 권한을 부여합니다.
+ `kafka:CreateVpcConnection`, `ec2:CreateTags`, `ec2:CreateVPCEndpoint` 및 `ec2:DescribeVpcAttribute` 작업에 대한 권한을 부여하는 계정 B의 클라이언트에 연결된 자격 증명 정책입니다.

**Example**  
참고로 다음은 기본 클라이언트 ID 정책에 대한 JSON의 예제입니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kafka:CreateVpcConnection",
        "ec2:CreateTags",
        "ec2:CreateVPCEndpoint",
        "ec2:DescribeVpcAttribute"
      ],
      "Resource": "*"
    }
  ]
}
```

**계정 B에서 클라이언트를 위한 관리형 VPC 연결을 만들려면 다음을 수행합니다.**

1. 클러스터 관리자로부터 계정 B의 클라이언트가 연결할 계정 A에 있는 MSK 클러스터의 **클러스터 ARN**을 가져옵니다. 나중에 사용할 클러스터 ARN을 기록해 둡니다.

1. 클라이언트 계정 B의 MSK 콘솔에서 **관리형 VPC 연결**을 선택한 다음 **연결 생성**을 선택합니다.

1. **연결 설정** 창에서 클러스터 ARN을 클러스터 ARN 텍스트 필드에 붙여넣은 다음 **확인**을 선택합니다.

1. 계정 B에서 클라이언트에 대한 **인증 유형**을 선택합니다. 이 사용 사례의 경우 클라이언트 VPC 연결을 생성할 때 IAM을 선택합니다.

1. 클라이언트에 대한 **VPC**를 선택합니다.

1. 최소 2개의 가용 **영역**과 관련 **서브넷**을 선택합니다. AWS Management Console 클러스터 세부 정보에서 또는 [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster) API 또는 [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI 명령을 사용하여 가용 영역 IDs를 가져올 수 있습니다. 클라이언트 서브넷에 지정하는 영역 ID는 클러스터 서브넷의 영역 ID와 일치해야 합니다. 서브넷의 값이 누락된 경우 먼저 MSK 클러스터와 동일한 영역 ID를 가진 서브넷을 생성합니다.

1. 이 VPC 연결에 사용할 **보안 그룹**을 선택합니다. 기본 보안 그룹을 사용할 수 있습니다. 보안 그룹 구성에 대한 자세한 내용은 [보안 그룹을 사용하여 리소스에 대한 트래픽 제어](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)를 참조하세요.

1. **연결 생성**을 선택합니다.

1. 크로스 계정 사용자의 MSK 콘솔(**클러스터** 세부 정보 > **관리형 VPC 연결**)에서 새 부트스트랩 브로커 문자열 목록을 가져오려면 “**클러스터 연결 문자열**” 아래에 표시된 부트스트랩 브로커 문자열을 참조하세요. 클라이언트 계정 B에서 부트스트랩 브로커 목록은 [GetBootstrapBrokers](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#GetBootstrapBrokers) API를 호출하거나 콘솔 클러스터 세부 정보에서 부트스트랩 브로커 목록을 확인하여 볼 수 있습니다.

1. 다음과 같이 VPC 연결과 관련된 보안 그룹을 업데이트합니다.

   1. 계정 B 네트워크의 IP 범위에 대한 모든 트래픽을 허용하도록 PrivateLink VPC에 대한 **인바운드 규칙**을 설정합니다.

   1. [선택 사항] MSK 클러스터에 대한 **아웃바운드 규칙** 연결을 설정합니다. VPC 콘솔에서 **보안 그룹**을 선택하고 **아웃바운드 규칙 편집**을 선택한 다음 포트 범위 14001\$114100에 대한 **사용자 지정 TCP 트래픽**에 대한 규칙을 추가합니다. 다중 VPC Network Load Balancer는 14001\$114100 포트 범위에서 수신 대기합니다. [Network Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html)를 참조하세요.

1. 다중 VPC 프라이빗 연결을 위한 새 부트스트랩 브로커를 사용하여 계정 A의 MSK 클러스터에 연결하도록 계정 B의 클라이언트를 구성합니다. [데이터 생성 및 소비](https://docs.aws.amazon.com/msk/latest/developerguide/produce-consume.html)를 참조하세요.

인증이 완료되면 Amazon MSK는 지정된 각 VPC 및 인증 체계에 대해 관리형 VPC 연결을 생성합니다. 선택한 보안 그룹이 각 연결과 관련이 있습니다. 이 관리형 VPC 연결은 Amazon MSK에서 브로커에 비공개로 연결하도록 구성합니다. 새로운 부트스트랩 브로커 세트를 사용하여 Amazon MSK 클러스터에 비공개로 연결할 수 있습니다.

# 클러스터에서 권한 부여 체계 업데이트
<a name="mvpc-cross-account-update-authschemes"></a>

다중 VPC 프라이빗 연결은 여러 인증 체계 SASL/SCRAM, IAM, TLS를 지원합니다. 클러스터 소유자는 하나 이상의 인증 체계에 대한 프라이빗 연결을 활성화/비활성화할 수 있습니다. 이 작업을 수행하려면 클러스터가 활성 상태여야 합니다.

**Amazon MSK 콘솔을 사용하여 인증 체계를 사용 설정하려면 다음을 수행합니다.**

1. 편집하려는 클러스터에 대해 [AWS Management Console](https://console.aws.amazon.com/msk)에서 Amazon MSK 콘솔을 엽니다.

1. 탐색 창의 **MSK 클러스터에서** **클러스터**를 선택하여 계정의 클러스터 목록을 표시합니다.

1. 편집하려는 클러스터를 선택합니다. 클러스터는 활성 상태여야 합니다.

1. 클러스터 **속성** 탭을 선택한 다음 **네트워크 설정**으로 이동합니다.

1. 새 인증 체계를 활성화하려면 **편집** 드롭다운 메뉴를 선택하고 **다중 VPC 연결 켜기**를 선택합니다.

1. 이 클러스터에 대해 활성화하려는 인증 유형을 하나 이상 선택합니다.

1. **선택 켜기**를 선택합니다.

새 인증 체계를 사용 설정할 때 새 인증 체계에 대한 관리형 VPC 연결도 새로 만들고 클라이언트가 새 인증 체계에 특정한 부트스트랩 브로커를 사용하도록 업데이트해야 합니다.

**Amazon MSK 콘솔을 사용하여 인증 체계를 비활성화하려면 다음을 수행합니다.**
**참고**  
인증 체계에 대한 다중 VPC 프라이빗 연결을 비활성화하면 관리형 VPC 연결을 포함한 모든 연결 관련 인프라가 삭제됩니다.

인증 체계에 대한 다중 VPC 프라이빗 연결을 비활성화하면 클라이언트 측의 기존 VPC 연결이 비활성 상태로 변경되고 클러스터 측의 관리형 VPC 연결을 포함한 클러스터 측의 PrivateLink 인프라가 제거됩니다. 크로스 계정 사용자는 비활성 VPC 연결만 삭제할 수 있습니다. 클러스터에서 프라이빗 연결이 다시 활성화된 경우 크로스 계정 사용자는 클러스터에 대한 새 연결을 생성해야 합니다.

1. [AWS Management Console](https://console.aws.amazon.com/msk)에서 Amazon MSK 콘솔을 엽니다.

1. 탐색 창의 **MSK 클러스터에서** **클러스터**를 선택하여 계정의 클러스터 목록을 표시합니다.

1. 편집하려는 클러스터를 선택합니다. 클러스터는 활성 상태여야 합니다.

1. 클러스터 **속성** 탭을 선택한 다음 **네트워크 설정**으로 이동합니다.

1. 인증 체계를 비활성화하려면 **편집** 드롭다운 메뉴를 선택하고 **다중 VPC 연결 끄기**를 선택합니다.

1. 이 클러스터에 대해 비활성화하려는 인증 유형을 하나 이상 선택합니다.

1. **선택 끄기**를 선택합니다.

**Example API를 사용하여 인증 체계를 켜거나 끄려면 다음을 수행합니다.**  
MSK 콘솔 대신 [UpdateConnectivity API](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-connectivity.html)를 사용하여 다중 VPC 프라이빗 연결을 활성화하고 활성 클러스터에서 인증 체계를 구성할 수 있습니다. 다음 예제는 클러스터에 설정된 SASL/SCRAM 및 IAM 인증 체계를 보여줍니다.  
새 인증 체계를 사용 설정할 때 새 인증 체계에 대한 관리형 VPC 연결도 새로 만들고 클라이언트가 새 인증 체계에 특정한 부트스트랩 브로커를 사용하도록 업데이트해야 합니다.  
인증 체계에 대한 다중 VPC 프라이빗 연결을 비활성화하면 클라이언트 측의 기존 VPC 연결이 비활성 상태로 변경되고 관리형 VPC 연결을 포함하여 클러스터 측의 PrivateLink 인프라가 제거됩니다. 크로스 계정 사용자는 비활성 VPC 연결만 삭제할 수 있습니다. 클러스터에서 프라이빗 연결이 다시 활성화된 경우 크로스 계정 사용자는 클러스터에 대한 새 연결을 생성해야 합니다.  

```
Request:
{
  "currentVersion": "string",
  "connnectivityInfo": {
    "publicAccess": {
      "type": "string"
    },
    "vpcConnectivity": {
      "clientAuthentication": {
        "sasl": {
          "scram": {
            "enabled": TRUE
          },
          "iam": {
            "enabled": TRUE
          }        
        },
        "tls": {
          "enabled": FALSE
        }
      }
    }
  }
}

Response:
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

# Amazon MSK 클러스터에 대한 관리형 VPC 연결 거부
<a name="mvpc-cross-account-reject-connection"></a>

클러스터 관리자 계정의 Amazon MSK 콘솔에서 클라이언트 VPC 연결을 거부할 수 있습니다. 클라이언트 VPC 연결이 거부되려면 사용 가능 상태여야 합니다. 더 이상 클러스터에 연결할 수 있는 권한이 없는 클라이언트의 관리형 VPC 연결을 거부할 수 있습니다. 클라이언트에 연결되는 새 관리형 VPC 연결을 방지하려면 클러스터 정책에서 클라이언트에 대한 액세스를 거부합니다. 거부된 연결은 연결 소유자가 삭제할 때까지 비용이 계속 발생합니다. [Amazon MSK 클러스터에 대한 관리형 VPC 연결 삭제](https://docs.aws.amazon.com/msk/latest/developerguide/mvpc-cross-account-delete-connection.html)를 참조하세요.

**MSK 콘솔을 사용하여 클라이언트 VPC 연결을 거부하려면 다음을 수행합니다.**

1. [AWS Management Console](https://console.aws.amazon.com/msk)에서 Amazon MSK 콘솔을 엽니다.

1. 탐색 창에서 **클러스터**를 선택하고 **네트워크 설정 > 클라이언트 VPC 연결** 목록으로 스크롤합니다.

1. 거부하려는 연결을 선택하고 클라이언트 **VPC 연결 거부**를 선택합니다.

1. 선택한 클라이언트 VPC 연결을 거부할지 확인합니다.

API를 사용하여 관리형 VPC 연결을 거부하려면 `RejectClientVpcConnection` API를 사용합니다.

# Amazon MSK 클러스터에 대한 관리형 VPC 연결 삭제
<a name="mvpc-cross-account-delete-connection"></a>

크로스 계정 사용자는 클라이언트 계정 콘솔에서 MSK 클러스터에 대한 관리형 VPC 연결을 삭제할 수 있습니다. 클러스터를 소유한 사용자는 관리형 VPC 연결을 소유하지 않으므로 클러스터 관리자 계정에서 연결을 삭제할 수 없습니다. VPC 연결이 삭제되면 더 이상 비용이 발생하지 않습니다.

**MSK 콘솔을 사용하여 관리형 VPC 연결을 삭제하려면 다음을 수행합니다.**

1. 클라이언트 계정의 [AWS Management Console](https://console.aws.amazon.com/msk)에서 Amazon MSK 콘솔을 엽니다.

1. 탐색 창에서 **관리형 VPC 연결**을 선택합니다.

1. 연결 목록에서 삭제하려는 연결을 선택합니다.

1. VPC 연결을 삭제할 것인지 확인합니다.

API를 사용해 관리형 VPC 연결을 삭제하려면 `DeleteVpcConnection` API를 사용합니다.

# 다중 VPC 프라이빗 연결에 대한 권한
<a name="mvpc-cross-account-permissions"></a>

이 섹션에서는 다중 VPC 프라이빗 연결 기능을 사용하는 클라이언트와 클러스터에 필요한 권한을 요약합니다. 다중 VPC 프라이빗 연결은 클라이언트 관리자가 MSK 클러스터에 대한 관리형 VPC 연결이 가능한 각 클라이언트에 대한 권한을 생성해야 합니다. 또한 MSK 클러스터 관리자는 MSK 클러스터에서 PrivateLink 연결을 활성화하고 인증 체계를 선택하여 클러스터에 대한 액세스를 제어해야 합니다.

**클러스터 인증 유형 및 주제 액세스 권한**  
MSK 클러스터에서 활성화된 인증 체계에 대해 다중 VPC 프라이빗 연결 기능을 사용 설정합니다. [다중 VPC 프라이빗 연결에 대한 요구 사항과 제한](aws-access-mult-vpc.md#mvpc-requirements)을 참조하세요. SASL/SCRAM 인증 체계를 사용하도록 MSK 클러스터를 구성하는 경우 Apache Kafka ACL 속성 `allow.everyone.if.no.acl.found=false`는 필수입니다. 클러스터에 대해 [Apache Kafka ACL](msk-acls.md)을 설정한 후 클러스터의 구성을 업데이트하여 클러스터에 대해 `allow.everyone.if.no.acl.found` 속성이 false로 설정되도록 합니다. 클러스터 구성을 업데이트하는 방법에 대한 자세한 내용은 [브로커 구성 작업](msk-configuration-operations.md) 섹션을 참조하세요.

**크로스 계정 클러스터 정책 권한**  
Kafka 클라이언트가 MSK 클러스터와 다른 AWS 계정에 있는 경우 클라이언트 루트 사용자에게 교차 계정 연결을 승인하는 클러스터 기반 정책을 MSK 클러스터에 연결합니다. MSK 콘솔의 IAM 정책 편집기(클러스터 **보안 설정** > **클러스터 정책 편집**)를 사용하여 다중 VPC 클러스터 정책을 편집하거나 다음 API를 사용하여 클러스터 정책을 관리할 수 있습니다.

**PutClusterPolicy**  
클러스터 정책을 클러스터에 연결합니다. 이 API를 사용하여 지정된 MSK 클러스터 정책을 생성하거나 업데이트할 수 있습니다. 정책을 업데이트하는 경우 요청 페이로드에 currentVersion 필드가 필수입니다.

**GetClusterPolicy**  
클러스터에 연결된 클러스터 정책 문서의 JSON 텍스트를 검색합니다.

**DeleteClusterPolicy**  
클러스터 정책을 삭제합니다.

다음은 MSK 콘솔 IAM 정책 편집기에 표시된 것과 유사한 기본 클러스터 정책에 대한 JSON의 예제입니다. 다음 정책은 클러스터, 주제 및 그룹 수준 액세스에 대한 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Principal": {
            "AWS": [
                "123456789012"
            ]
        },
        "Action": [
            "kafka-cluster:*",
            "kafka:CreateVpcConnection",
            "kafka:GetBootstrapBrokers",
            "kafka:DescribeCluster",
            "kafka:DescribeClusterV2"
        ],
        "Resource": [
            "arn:aws:kafka:us-east-1:123456789012:cluster/testing/de8982fa-8222-4e87-8b20-9bf3cdfa1521-2",
            "arn:aws:kafka:us-east-1:123456789012:topic/testing/*",
            "arn:aws:kafka:us-east-1:123456789012:group/testing/*"
        ]
    }]
}
```

------

**MSK 클러스터에 대한 다중 VPC 프라이빗 연결을 위한 클라이언트 권한**  
Kafka 클라이언트와 MSK 클러스터 간에 다중 VPC 프라이빗 연결을 설정하려면 클라이언트에 대한 `kafka:CreateVpcConnection`, `ec2:CreateTags`, `ec2:CreateVPCEndpoint` 작업에 대한 권한을 부여하는 연결된 ID 정책이 필요합니다. 참고로 다음은 기본 클라이언트 ID 정책에 대한 JSON의 예제입니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kafka:CreateVpcConnection",
        "ec2:CreateTags",
        "ec2:CreateVPCEndpoint"
      ],
      "Resource": "*"
    }
  ]
}
```

------

# 포트 정보
<a name="port-info"></a>

Amazon MSK가 클라이언트 머신과 통신할 수 있도록 다음 포트 번호를 사용합니다.
+ 브로커와 일반 텍스트로 통신하려면 포트 9092를 사용합니다.
+ TLS 암호화를 사용하여 브로커와 통신하려면 내부에서 액세스하는 경우 포트 9094를 사용하고 퍼블릭 액세스의 경우 AWS 포트 9194를 사용합니다.
+ SASL/SCRAM을 사용하여 브로커와 통신하려면 내부에서 액세스하기 위해 포트 9096을 사용하고 퍼블릭 액세스를 위해 AWS 포트 9196을 사용합니다.
+ 를 사용하도록 설정된 클러스터의 브로커와 통신하려면 내부에서 액세스하기 위해 포트 9098을 사용하고 퍼블릭 액세스를 위해 AWS 포트 9198을 [IAM 액세스 제어](iam-access-control.md)사용합니다.
+ IPv6 네트워크 유형을 일반 텍스트로 사용하여 브로커와 통신하려면 포트 20092를 사용합니다.
+ IPv6를 사용하여 IAM 액세스 제어를 사용하도록 설정된 클러스터의 브로커와 통신하려면 포트 20098을 사용합니다.
+ IPv6를 사용하여 SASL/SCRAM으로 브로커와 통신하려면 포트 20096을 사용합니다.
+ IPv6를 사용하여 TLS 암호화로 브로커와 통신하려면 포트 20094를 사용합니다.