As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Permissões de replicação de tópicos
Use o Amazon MSK Replicator para replicar tópicos entre clusters. Conceda à função de execução do serviço permissões para se conectar aos dois clusters, gerenciar tópicos internos do replicador, ler dados dos tópicos de origem e gravar dados replicados no cluster de destino.
As permissões para tópicos de dados no cluster de destino diferem com base na topicNameConfiguration configuração:
PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (padrão) — Os tópicos replicados no destino são nomeados com o alias do cluster de origem como prefixo (por exemplo,).
source-alias.my-topicComo o alias de origem completo não é conhecido no momento da criação, use*.${topicPattern}como recurso de tópico de dados de destino do IAM. Para ACLs do Kafka em clusters não MSK, use os primeiros 28 caracteres do nome do cluster MSK como um padrão PREFIXADO.IDÊNTICO — Os tópicos replicados no destino mantêm o mesmo nome da fonte. O recurso do tópico de dados de destino usa o mesmo padrão da fonte.
Política do IAM da função de execução do serviço (clusters MSK)
Anexe a política a seguir à função de execução do serviço. Substitua os valores do espaço reservado por seus nomes de cluster, UUIDs e padrões de tópicos. Escolha a TargetDataTopicPermissions declaração que corresponde à sua topicNameConfiguration configuração.
PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (padrão)
Os tópicos replicados no destino são nomeados com o alias do cluster de origem como prefixo (por exemplo,). source-alias.my-topic Como o alias completo não é conhecido até que o replicador seja criado, use um prefixo curinga com o padrão de tópico (por exemplo,*.${topicPattern}) no recurso de tópico de dados de destino. O IAM oferece suporte a vários curingas em um ARN de recurso.
{ "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_*" ] } ] }
IDÊNTICO
Os tópicos replicados no destino mantêm o mesmo nome da fonte. Substitua a TargetDataTopicPermissions declaração pela seguinte:
{ "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}Substitua pelo nome ou padrão do tópico que você configurou para replicação (por exemplo, my-app-* ou por um nome de tópico específico).
nota
Ambos os clusters do MSK exigem permissões para todos os tópicos internos (*__amazon_msk_replicator_*,mskr-offset-syncs.*, e*.checkpoints.internal). Use essa política para cobrir os dois clusters, independentemente de qual cluster não seja MSK.
ACLs do Kafka (clusters não MSK)
Quando sua origem ou destino for um cluster autogerenciado do Apache Kafka, configure as seguintes ACLs usando a CLI. kafka-acls Todas as ACLs usam o tipo de ALLOW permissão e o principal com os quais seu replicador se autentica. Salvo indicação em contrário, as ACLs usam o tipo de PREFIXED padrão.
Quando um cluster não MSK está envolvido, o replicador coloca a maioria dos tópicos internos (sincronizações de offset, pontos de verificação, estado do grupo de trabalho) no cluster MSK. O cluster não MSK hospeda somente tópicos de heartbeat e tópicos de dados.
Non-MSK como fonte
Quando a origem é um cluster autogerenciado, o replicador coloca todos os tópicos internos no destino do MSK. A fonte não MSK só precisa de ACLs para tópicos de pulsação e tópicos de leitura de dados.
| Tipo de atributo | Padrão | Operações |
|---|---|---|
Cluster |
|
Criar, descrever IdempotentWrite, DescribeConfigs |
Tópico (pulsação) |
|
Criar, ler, escrever, descrever DescribeConfigs, alterar, AlterConfigs |
Tópico (dados) |
PREFIXADO ou LITERAL por tópico |
Leia, descreva, DescribeConfigs |
Non-MSK como alvo
Quando o destino é um cluster autogerenciado, o replicador coloca todos os tópicos internos na origem do MSK. O alvo que não é do MSK só precisa de ACLs para tópicos de pulsação e tópicos de gravação de dados. O padrão do tópico de dados depende da sua topicNameConfiguration configuração.
| Tipo de atributo | Padrão | Operações |
|---|---|---|
Cluster |
|
Criar, descrever IdempotentWrite, DescribeConfigs |
Tópico (pulsação) |
|
Criar, ler, escrever, descrever DescribeConfigs, alterar, AlterConfigs |
Tópico (pulsação replicada) |
|
Criar, ler, escrever, descrever DescribeConfigs, alterar, AlterConfigs |
Tópico (dados) |
|
Criar, escrever, descrever DescribeConfigs, alterar AlterConfigs |
Se você usar a nomenclatura de IDENTICAL tópicos, substitua a linha do tópico de dados pela seguinte.
| Tipo de atributo | Padrão | Operações |
|---|---|---|
Tópico (dados) |
PREFIXADO ou LITERAL por tópico (mesmo nome da fonte) |
Criar, escrever, descrever DescribeConfigs, alterar AlterConfigs |