服务执行角色 - Amazon Managed Streaming for Apache Kafka

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

服务执行角色

注意

Amazon MSK Connect 不支持使用服务相关角色作为服务执行角色。您必须创建单独的服务执行角色。有关如何创建自定义 IAM 角色的说明,请参阅 I A M 用户指南中的创建角色以向 AWS 服务委派权限

使用 MSK Connect 创建连接器时,您需要指定要与之一起使用的 AWS Identity and Access Management (IAM)角色。您的服务执行角色必须具有以下信任策略,以便 MSK Connect 可以代入该角色。有关此策略中条件上下文键的说明,请参阅 防止跨服务混淆座席

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kafkaconnect.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "Account-ID" }, "ArnLike": { "aws:SourceArn": "MSK-Connector-ARN" } } } ] }

如果您想要与连接器一起使用的 Amazon MSK 集群使用 IAM 身份验证,则必须向连接器的服务执行角色添加以下权限策略。有关如何查找集群的 UUID 以及如何构造主题 ARN 的信息,请参阅 资源

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeCluster" ], "Resource": [ "cluster-arn" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic" ], "Resource": [ "ARN of the topic that you want a sink connector to read from" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic" ], "Resource": [ "ARN of the topic that you want a source connector to write to" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic" ], "Resource": [ "arn:aws:kafka:region:account-id:topic/cluster-name/cluster-uuid/__amazon_msk_connect_*" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/__amazon_msk_connect_*", "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/connect-*" ] } ] }

根据连接器的类型,您可能还需要为服务执行角色附加允许其访问 AWS 资源的权限策略。例如,如果您的连接器需要向 S3 存储桶发送数据,则服务执行角色必须具有授予写入该存储桶之权限的权限策略。出于测试目的,您可以使用其中一个预构建 IAM policy 来授予完全访问权限,例如 arn:aws:iam::aws:policy/AmazonS3FullAccess。但是,出于安全考虑,我们建议您使用最严格的策略,允许您的连接器从 AWS 源读取数据或写入 AWS 接收器。