View a markdown version of this page

주제 복제 권한 - Amazon Managed Streaming for Apache Kafka

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

주제 복제 권한

Amazon MSK Replicator를 사용하여 클러스터 간에 주제를 복제합니다. 서비스 실행 역할에 두 클러스터에 연결하고, 내부 복제기 주제를 관리하고, 소스 주제에서 데이터를 읽고, 복제된 데이터를 대상 클러스터에 쓸 수 있는 권한을 부여합니다.

대상 클러스터의 데이터 주제에 대한 권한은 topicNameConfiguration 설정에 따라 다릅니다.

  • PREFIXED_WITH_SOURCE_CLUSTER_ALIAS(기본값) - 대상의 복제된 주제는 소스 클러스터 별칭을 접두사(예: )로 사용하여 이름이 지정됩니다source-alias.my-topic. 생성 시 전체 소스 별칭을 알 수 없으므로를 IAM 대상 데이터 주제 리소스*.${topicPattern}로 사용합니다. 비 MSK 클러스터의 Kafka ACLs의 경우 MSK 클러스터 이름의 처음 28자를 PREFIXED 패턴으로 사용합니다.

  • IDENTICAL - 대상의 복제된 주제는 소스와 동일한 이름을 유지합니다. 대상 데이터 주제 리소스는 소스와 동일한 패턴을 사용합니다.

서비스 실행 역할 IAM 정책(MSK 클러스터)

다음 정책을 서비스 실행 역할에 연결합니다. 자리 표시자 값을 클러스터 이름, UUIDs. topicNameConfiguration 설정과 일치하는 TargetDataTopicPermissions 문을 선택합니다.

PREFIXED_WITH_SOURCE_CLUSTER_ALIAS(기본값)

대상의 복제된 주제는 소스 클러스터 별칭을 접두사(예: )로 사용하여 이름이 지정됩니다source-alias.my-topic. 복제기가 생성될 때까지 전체 별칭을 알 수 없으므로 대상 데이터 주제 리소스에서 주제 패턴(예: *.${topicPattern})과 함께 와일드카드 접두사를 사용합니다. IAM은 리소스 ARN에서 여러 와일드카드를 지원합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ClusterPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeCluster", "kafka-cluster:WriteDataIdempotently" ], "Resource": [ "arn:aws:kafka:${region}:${account}:cluster/${SourceClusterName}/${SourceClusterUUID}", "arn:aws:kafka:${region}:${account}:cluster/${TargetClusterName}/${TargetClusterUUID}" ] }, { "Sid": "SourceInternalTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:ReadData", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:AlterTopic", "kafka-cluster:AlterTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/*__amazon_msk_replicator_*", "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/mskr-offset-syncs.*", "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/*.checkpoints.internal" ] }, { "Sid": "SourceDataTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/${topicPattern}" ] }, { "Sid": "TargetInternalTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:ReadData", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:AlterTopic", "kafka-cluster:AlterTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/*__amazon_msk_replicator_*", "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/mskr-offset-syncs.*", "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/*.checkpoints.internal" ] }, { "Sid": "TargetDataTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/*.${topicPattern}" ] }, { "Sid": "TargetGroupPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:${region}:${account}:group/${TargetClusterName}/${TargetClusterUUID}/*__amazon_msk_replicator_*" ] } ] }
IDENTICAL

대상의 복제된 주제는 소스와 동일한 이름을 유지합니다. TargetDataTopicPermissions 문을 다음으로 바꿉니다.

{ "Sid": "TargetDataTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/${topicPattern}" ] }

${topicPattern}를 복제를 위해 구성한 주제 이름 또는 패턴(예: my-app-* 또는 특정 주제 이름)으로 바꿉니다.

참고

두 MSK 클러스터 모두 모든 내부 주제(*__amazon_msk_replicator_*, mskr-offset-syncs.**.checkpoints.internal)에 대한 권한이 필요합니다. 이 정책을 사용하여 비 MSK 클러스터에 관계없이 두 클러스터를 모두 다룹니다.

Kafka ACLs(비 MSK 클러스터)

소스 또는 대상이 자체 관리형 Apache Kafka 클러스터인 경우 kafka-acls CLI를 사용하여 다음 ACLs을 구성합니다. 모든 ACLs ALLOW 권한 유형과 복제기가 인증하는 보안 주체를 사용합니다. 달리 명시되지 않는 한 ACLs PREFIXED 패턴 유형을 사용합니다.

비 MSK 클러스터가 관련된 경우 복제기는 대부분의 내부 주제(오프셋 동기화, 체크포인트, 작업자 그룹 상태)를 MSK 클러스터에 배치합니다. 비 MSK 클러스터는 하트비트 주제 및 데이터 주제만 호스팅합니다.

소스로 비 MSK

소스가 자체 관리형 클러스터인 경우 복제기는 모든 내부 주제를 MSK 대상에 배치합니다. 비 MSK 소스는 하트비트 주제 및 데이터 주제 읽기에만 ACLs 필요합니다.

리소스 유형 패턴 운영

Cluster

kafka-cluster (리터럴)

생성, 설명, IdempotentWrite, DescribeConfigs

주제(하트비트)

__amazon_msk_replicator_ (수정됨)

생성, 읽기, 쓰기, 설명, DescribeConfigs, 변경, AlterConfigs

주제(데이터)

주제당 PREFIXED 또는 LITERAL

읽기, 설명, DescribeConfigs

대상으로서 비MSK

대상이 자체 관리형 클러스터인 경우 복제기는 모든 내부 주제를 MSK 소스에 배치합니다. 비 MSK 대상에는 하트비트 주제 및 데이터 주제 작성에 대한 ACLs만 필요합니다. 데이터 주제 패턴은 topicNameConfiguration 설정에 따라 다릅니다.

리소스 유형 패턴 운영

Cluster

kafka-cluster (리터럴)

생성, 설명, IdempotentWrite, DescribeConfigs

주제(하트비트)

__amazon_msk_replicator_ (수정됨)

생성, 읽기, 쓰기, 설명, DescribeConfigs, 변경, AlterConfigs

주제(복제된 하트비트)

${first28CharsOfSourceClusterName} (수정됨)

생성, 읽기, 쓰기, 설명, DescribeConfigs, 변경, AlterConfigs

주제(데이터)

${first28CharsOfSourceClusterName} (수정됨)

생성, 쓰기, 설명, DescribeConfigs, 변경, AlterConfigs

IDENTICAL 주제 이름을 사용하는 경우 데이터 주제 행을 다음으로 바꿉니다.

리소스 유형 패턴 운영

주제(데이터)

주제당 PREFIXED 또는 LITERAL(소스와 동일한 이름)

생성, 쓰기, 설명, DescribeConfigs, 변경, AlterConfigs