借助 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 导入主题,您可以从 Amazon MSK(作为外部来源)持续注入数据到 Pub/Sub 中。然后,您可以将数据流式传输到 Pub/Sub 支持的任何目标位置。
本文档介绍了如何创建和管理 Amazon MSK 导入主题。如需创建标准主题,请参阅创建标准主题。
如需详细了解导入主题,请参阅关于导入主题。
准备工作
详细了解 Pub/Sub 发布流程。
配置管理 Amazon MSK 导入主题所需的角色和权限,包括以下内容:
设置工作负载身份联合,以便Google Cloud 可以访问外部流式传输服务。
所需的角色和权限
如需获得创建和管理 Amazon MSK 导入主题所需的权限,请让您的管理员为您授予主题或项目的 Pub/Sub Editor (roles/pubsub.editor) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建和管理 Amazon MSK 导入主题所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建和管理 Amazon MSK 导入主题,需要具备以下权限:
- 创建导入主题: pubsub.topics.create
- 删除导入主题: pubsub.topics.delete
- 获取导入主题: pubsub.topics.get
- 列出导入主题: pubsub.topics.list
- 发布到导入主题: pubsub.topics.publish 和 pubsub.serviceAgent
- 更新导入主题: pubsub.topics.update
- 获取导入主题的 IAM 政策: pubsub.topics.getIamPolicy
-
为导入主题配置 IAM 政策:
pubsub.topics.setIamPolicy
您可以在项目级层和个别资源级层配置访问权限控制。
设置联合身份以访问 Amazon MSK
借助工作负载身份联合, Google Cloud 服务可以访问在 Google Cloud外部运行的工作负载。借助身份联合,您无需维护凭据或将凭据传递给 Google Cloud ,即可访问其他云中的资源。相反,您可以使用工作负载本身的身份向 Google Cloud 进行身份验证并访问资源。
在 Google Cloud中创建服务账号
这是一个可选步骤。 如果您已有服务账号,则可以在此过程中使用该账号,而不必创建新的服务账号。 如果您使用的是现有服务账号,请前往记录服务账号唯一 ID 以进行下一步。
对于 Amazon MSK 导入主题,Pub/Sub 使用服务账号作为身份来访问 AWS 中的资源。
如需详细了解如何创建服务账号,包括前提条件、所需角色和权限以及命名指南,请参阅创建服务账号。创建服务账号后,您可能需要等待 60 秒或更长时间才能使用该服务账号。出现这种行为的原因是读取操作是最终一致的;新服务账号可能需要一段时间才能显示。
记录服务账号唯一 ID
您需要服务账号唯一 ID 才能在 AWS 控制台中设置角色。
在 Google Cloud 控制台中,前往服务账号详情页面。
点击您刚刚创建的服务账号或计划使用的服务账号。
在服务账号详情页面中,记录唯一 ID 编号。
您需要在工作流程中使用该 ID,以便在 AWS 控制台中设置角色。
向 Pub/Sub 服务账号添加服务账号令牌创建者角色
借助 Service Account Token Creator 角色 (roles/iam.serviceAccountTokenCreator),主账号可以为服务账号创建短期有效凭据。这些令牌或凭据用于模拟服务账号。
如需详细了解服务账号模拟,请参阅服务账号模拟。
您还可以在此过程中添加 Pub/Sub 发布者角色 (roles/pubsub.publisher)。如需详细了解该角色以及您添加该角色的原因,请参阅向 Pub/Sub 服务账号添加 Pub/Sub 发布者角色。
在 Google Cloud 控制台中,前往 IAM 页面。
点击包括 Google提供的角色授权复选框。
查找格式为
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com的服务账号。对于此服务账号,点击修改主账号按钮。
如果需要,请点击添加其他角色。
搜索并点击 服务账号令牌创建者角色 (
roles/iam.serviceAccountTokenCreator)。点击保存。
在 AWS 中创建政策
您需要在 AWS 中添加一项政策,以允许 Pub/Sub 向 AWS 进行身份验证,以便 Pub/Sub 可以从 Amazon MSK 中注入数据。
- 如需了解更多方法以及如何在 AWS 中创建政策,请参阅创建 IAM 政策。
如需在 AWS 中创建政策,请执行以下步骤:
登录 AWS 管理控制台,然后打开 IAM 控制台。
在 IAM 控制台的导航窗格中,依次点击访问管理 > 政策。
点击创建政策。
对于点击服务,请点击 MSK。
对于允许的操作,依次点击读取 > GetBootstrapBrokers。
此操作授予了获取 Pub/Sub 用于连接到 MSK 集群的初始启动代理的权限。
点击添加更多权限。
在选择服务中,点击 Apache Kafka API for MSK。
对于允许的操作,请选择以下内容: