View a markdown version of this page

Autorisations de réplication de sujets - Amazon Managed Streaming for Apache Kafka

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autorisations de réplication de sujets

Utilisez Amazon MSK Replicator pour répliquer des sujets entre des clusters. Accordez au rôle d'exécution du service les autorisations nécessaires pour se connecter aux deux clusters, gérer les sujets internes du réplicateur, lire les données des sujets sources et écrire des données répliquées sur le cluster cible.

Les autorisations pour les sujets de données sur le cluster cible varient en fonction du topicNameConfiguration paramètre :

  • PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (par défaut) — Les sujets répliqués sur la cible sont nommés avec l'alias du cluster source comme préfixe (par exemple,). source-alias.my-topic Étant donné que l'alias source complet n'est pas connu au moment de la création, *.${topicPattern} utilisez-le comme ressource de rubrique de données cible IAM. Pour les ACL Kafka sur des clusters non MSK, utilisez les 28 premiers caractères du nom du cluster MSK comme modèle PRÉFIXÉ.

  • IDENTIQUE — Les rubriques répliquées sur la cible conservent le même nom que sur la source. La ressource de rubrique de données cible utilise le même modèle que la source.

Politique IAM relative au rôle d'exécution des services (clusters MSK)

Associez la politique suivante au rôle d'exécution du service. Remplacez les valeurs d'espace réservé par les noms de vos clusters, vos UUID et vos modèles de rubriques. Choisissez l'TargetDataTopicPermissionsénoncé qui correspond à vos topicNameConfiguration paramètres.

PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (par défaut)

Les sujets répliqués sur la cible sont nommés avec l'alias du cluster source comme préfixe (par exemple,source-alias.my-topic). Comme l'alias complet n'est pas connu tant que le réplicateur n'est pas créé, utilisez un préfixe générique avec le modèle de rubrique (par exemple,*.${topicPattern}) dans la ressource de rubrique de données cible. IAM prend en charge plusieurs caractères génériques dans un ARN de ressource.

{ "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_*" ] } ] }
IDENTIQUE

Les rubriques répliquées sur la cible conservent le même nom que sur la source. Remplacer l'TargetDataTopicPermissionsénoncé par ce qui suit :

{ "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}Remplacez-le par le nom de rubrique ou le modèle que vous avez configuré pour la réplication (par exemple, my-app-* ou un nom de rubrique spécifique).

Note

Les deux clusters MSK nécessitent des autorisations pour tous les sujets internes (*__amazon_msk_replicator_*,mskr-offset-syncs.*, et*.checkpoints.internal). Utilisez cette politique pour couvrir les deux clusters, quel que soit le cluster non MSK.

ACL Kafka (clusters non MSK)

Lorsque votre source ou cible est un cluster Apache Kafka autogéré, configurez les ACL suivantes à l'aide de la CLI. kafka-acls Toutes les ACL utilisent le type ALLOW d'autorisation et le principal sous lesquels votre réplicateur s'authentifie. Sauf indication contraire, les ACL utilisent le type de PREFIXED modèle.

Lorsqu'un cluster non MSK est impliqué, le réplicateur place la plupart des sujets internes (synchronisations décalées, points de contrôle, état du groupe de travail) sur le cluster MSK. Le cluster non MSK héberge uniquement des sujets sur les battements de cœur et des sujets de données.

Non-MSK comme source

Lorsque la source est un cluster autogéré, le réplicateur place tous les sujets internes sur la cible MSK. La source autre que MSK n'a besoin que d'ACL pour les sujets relatifs au rythme cardiaque et aux sujets relatifs aux données de lecture.

Type de ressource Modèle Opérations

Cluster

kafka-cluster(LITTÉRAL)

Créez, décrivez IdempotentWrite, DescribeConfigs

Sujet (battement de cœur)

__amazon_msk_replicator_(PRÉFIXÉ)

Créez, lisez, écrivez, décrivez DescribeConfigs, modifiez, AlterConfigs

Sujet (données)

PRÉFIXE ou LITTÉRAL par sujet

Lisez, décrivez, DescribeConfigs

Non-MSK comme cible

Lorsque la cible est un cluster autogéré, le réplicateur place tous les sujets internes sur la source MSK. La cible non MSK n'a besoin que d'ACL pour les sujets liés au rythme cardiaque et à la rédaction de sujets liés aux données. Le modèle de rubrique des données dépend de votre topicNameConfiguration paramètre.

Type de ressource Modèle Opérations

Cluster

kafka-cluster(LITTÉRAL)

Créez, décrivez IdempotentWrite, DescribeConfigs

Sujet (battement de cœur)

__amazon_msk_replicator_(PRÉFIXÉ)

Créez, lisez, écrivez, décrivez DescribeConfigs, modifiez, AlterConfigs

Sujet (battement de cœur répliqué)

${first28CharsOfSourceClusterName}(PRÉFIXÉ)

Créez, lisez, écrivez, décrivez DescribeConfigs, modifiez, AlterConfigs

Sujet (données)

${first28CharsOfSourceClusterName}(PRÉFIXÉ)

Créez, écrivez, décrivez DescribeConfigs, modifiez, AlterConfigs

Si vous utilisez un nom de IDENTICAL rubrique, remplacez la ligne de rubrique de données par la ligne suivante.

Type de ressource Modèle Opérations

Sujet (données)

PRÉFIXE ou LITTÉRAL par sujet (même nom que la source)

Créez, écrivez, décrivez DescribeConfigs, modifiez, AlterConfigs