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

了解服务执行角色

注意

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

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kafkaconnect.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:kafkaconnect:us-east-1:123456789012:connector/myConnector/abc12345-abcd-4444-a8b9-123456f513ed-2" } } } ] }

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

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeCluster" ], "Resource": [ "arn:aws:kafka:us-east-1:000000000001:cluster/testClusterName/300d0000-0000-0005-000f-00000000000b-1" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:topic/myCluster/300a0000-0000-0003-000a-00000000000b-6/__amazon_msk_connect_read" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:topic/testCluster/300f0000-0000-0008-000d-00000000000m-7/__amazon_msk_connect_write" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:topic/testCluster/300f0000-0000-0008-000d-00000000000m-7/__amazon_msk_connect_*" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:us-east-1:123456789012:group/testCluster/300d0000-0000-0005-000f-00000000000b-1/__amazon_msk_connect_*", "arn:aws:kafka:us-east-1:123456789012:group/testCluster/300d0000-0000-0005-000f-00000000000b-1/connect-*" ] } ] }

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