공개 액세스(Public access) - Amazon Managed Streaming for Apache Kafka

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

공개 액세스(Public access)

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

추가 비용 없이 MSK 클러스터에 대한 퍼블릭 액세스를 활성화할 수 있지만, 클러스터 내부 및 외부 AWS 데이터 전송에는 표준 데이터 전송 요금이 적용됩니다. 가격 책정에 대한 자세한 내용은 Amazon EC2 온디맨드 가격 책정을 참조하세요.

클러스터에 대한 퍼블릭 액세스를 활성화하려면 먼저 클러스터가 다음 조건을 모두 충족하는지 확인합니다.

  • 클러스터와 연결된 서브넷은 퍼블릭이어야 합니다. 즉, 서브넷에는 인터넷 게이트웨이가 연결된 관련 라우팅 테이블이 있어야 합니다. 인터넷 게이트웨이를 생성하고 연결하는 방법에 대한 자세한 내용은 Amazon VPC 사용 설명서의 인터넷 게이트웨이를 참조하세요.

  • 인증되지 않은 액세스 제어는 비활성화되어 있어야 하며 SASL/IAM, SASL/SCRAM, mTLS 액세스 제어 방법 중 하나 이상이 활성화되어 있어야 합니다. 클러스터의 액세스 제어 방법을 업데이트하는 방법에 대한 자세한 내용은 클러스터의 보안 설정 업데이트 섹션을 참조하세요.

  • 클러스터 내 암호화가 활성화되어 있어야 합니다. 클러스터를 생성할 때 기본 설정은 켜짐입니다. 암호화를 비활성화한 상태로 생성한 클러스터에 대해서는 클러스터 내에서 암호화를 활성화할 수 없습니다. 따라서 클러스터 내에서 암호화를 비활성화한 상태로 생성된 클러스터에 대해서는 퍼블릭 액세스를 활성화할 수 없습니다.

  • 브로커와 클라이언트 간의 일반 텍스트 트래픽은 비활성화되어 있어야 합니다. 활성화되어 있는 경우 비활성화하는 방법에 대한 자세한 내용은 클러스터의 보안 설정 업데이트 섹션을 참조하세요.

  • SASL/SCRAM 또는 mTLS 액세스 제어 방법을 사용하는 경우 클러스터에 대해 Apache Kafka ACL을 설정해야 합니다. 클러스터에 대해 Apache Kafka ACL을 설정한 후 클러스터의 구성을 업데이트하여 클러스터에 대해 allow.everyone.if.no.acl.found 속성이 false가 되도록 합니다. 클러스터 구성을 업데이트하는 방법에 대한 자세한 내용은 Amazon MSK 구성 작업 섹션을 참조하세요. IAM 액세스 제어를 사용 중이고 권한 부여 정책을 적용하거나 업데이트하려는 경우 IAM 액세스 제어 섹션을 참조하세요. Apache Kafka ACL에 대한 자세한 내용은 Apache Kafka ACL 섹션을 참조하세요.

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

중요

퍼블릭 액세스를 활성화하는 것 외에도 클러스터의 보안 그룹에 내 IP 주소에서 퍼블릭 액세스를 허용하는 인바운드 TCP 규칙이 있는지 확인합니다. 이러한 규칙은 가능한 한 제한적으로 설정하는 것을 권장합니다. 보안 그룹 및 인바운드 규칙에 대한 자세한 내용은 Amazon VPC 사용 설명서에서 VPC의 보안 그룹을 참조하세요. 포트 번호는 포트 정보 섹션을 참조하세요. 클러스터의 보안 그룹을 변경하는 방법에 대한 지침은 Amazon MSK 클러스터의 보안 그룹 변경 섹션을 참조하세요.

참고

다음 지침에 따라 퍼블릭 액세스를 활성화한 후에도 여전히 클러스터에 액세스할 수 없는 경우 퍼블릭 액세스가 활성화된 클러스터에 액세스할 수 없음 섹션을 참조하세요.

콘솔을 사용하여 퍼블릭 액세스를 활성화하려면 다음을 수행합니다.
  1. 에 AWS Management Console로그인하고 https://console.aws.amazon.com/msk/home?region=us-east-1#/home/ 에서 Amazon MSK 콘솔을 엽니다.

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

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

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

를 사용하여 퍼블릭 액세스를 활성화합니다. AWS CLI
  1. 현재 클러스터 버전을 ARN ClusterArn현재 클러스터 버전으로 대체하여 다음 AWS CLI 명령을 실행합니다. 클러스터의 현재 버전을 찾으려면 작업 또는 describe-cluster 명령을 사용합니다. DescribeCluster 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"}}'
  2. update-connectivity작업 결과를 가져오려면 명령 출력에서 가져온 ClusterOperationArnARN으로 대체하여 다음 명령을 실행합니다. update-connectivity

    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.

참고

보안상의 이유로 Amazon MSK는 Apache ZooKeeper 노드에 대한 퍼블릭 액세스를 허용하지 않습니다. MSK 클러스터 내에서 Apache ZooKeeper 노드에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 을 참조하십시오. AWS아파치에 대한 액세스 제어 ZooKeeper