Crea un tema de importación de Amazon Managed Streaming para Apache Kafka

Un tema de importación de Amazon Managed Streaming for Apache Kafka (Amazon MSK) te permite transferir datos de forma continua desde Amazon MSK como fuente externa a Pub/Sub. Luego, puedes transmitir los datos a cualquiera de los destinos que admite Pub/Sub.

En este documento, se muestra cómo crear y administrar temas de importación de Amazon MSK. Para crear un tema estándar, consulta Crea un tema estándar.

Para obtener más información sobre los temas de importación, consulta Acerca de los temas de importación.

Antes de comenzar

Roles y permisos requeridos

Para obtener los permisos que necesitas para crear y administrar temas de importación de Amazon MSK, pídele a tu administrador que te otorgue el rol de IAM de Editor de Pub/Sub (roles/pubsub.editor) en tu tema o proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear y administrar temas de importación de Amazon MSK. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear y administrar temas de importación de Amazon MSK:

  • Crea un tema de importación: pubsub.topics.create
  • Borra un tema de importación: pubsub.topics.delete
  • Obtener un tema de importación: pubsub.topics.get
  • Enumera un tema de importación: pubsub.topics.list
  • Publicar en un tema de importación: pubsub.topics.publish y pubsub.serviceAgent
  • Actualiza un tema de importación: pubsub.topics.update
  • Obtén la política de IAM para un tema de importación: pubsub.topics.getIamPolicy
  • Configura la política de IAM para un tema de importación: pubsub.topics.setIamPolicy

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Puedes configurar el control de acceso a nivel del proyecto y a nivel de los recursos individuales.

Configura la identidad federada para acceder a Amazon MSK

La federación de identidades para cargas de trabajo permite que los Google Cloud servicios accedan a las cargas de trabajo Google Cloudque se ejecutan fuera de Google Cloud. Con la federación de identidades, no necesitas mantener ni pasar credenciales a Google Cloud para acceder a tus recursos en otras nubes. En su lugar, puedes usar las identidades de las cargas de trabajo para autenticarte en Google Cloud y acceder a los recursos.

Crea una cuenta de servicio en Google Cloud

Este paso es opcional. Si ya tienes una cuenta de servicio, puedes usarla en este procedimiento en lugar de crear una nueva. Si usas una cuenta de servicio existente, ve a Registra el ID único de la cuenta de servicio para el siguiente paso.

En el caso de los temas de importación de Amazon MSK, Pub/Sub usa la cuenta de servicio como identidad para acceder a los recursos de AWS.

Si deseas obtener más información para crear una cuenta de servicio, incluidos los requisitos previos, los roles y permisos obligatorios, y los lineamientos para asignar nombres, consulta Crea cuentas de servicio. Después de crear una cuenta de servicio, es posible que debas esperar 60 segundos o más antes de usarla. Este comportamiento sucede porque las operaciones de lectura tienen coherencia eventual. Es posible que la nueva cuenta de servicio tarde un poco más en ser visible.

Registra el ID único de la cuenta de servicio

Necesitas un ID único de la cuenta de servicio para configurar un rol en la consola de AWS.

  1. En la consola de Google Cloud , ve a la página de detalles de la cuenta de servicio.

    Ir a la cuenta de servicio

  2. Haz clic en la cuenta de servicio que acabas de crear o en la que planeas usar.

  3. En la página Detalles de la cuenta de servicio, registra el número de ID único.

    Necesitas el ID como parte del flujo de trabajo para configurar un rol en la consola de AWS.

Agrega el rol de creador de tokens de cuenta de servicio a la cuenta de servicio de Pub/Sub

El rol de creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator) permite que las principales creen credenciales de corta duración para una cuenta de servicio. Estos tokens o credenciales se usan para suplantar la identidad de la cuenta de servicio.

Para obtener más información sobre el uso de la identidad de cuentas de servicio, consulta Uso de la identidad de cuentas de servicio.

También puedes agregar el rol de publicador de Pub/Sub (roles/pubsub.publisher) durante este procedimiento. Para obtener más información sobre el rol y por qué lo agregas, consulta Agrega el rol de publicador de Pub/Sub a la cuenta de servicio de Pub/Sub.

  1. En la consola de Google Cloud , dirígete a la página IAM.

    Ir a IAM

  2. Haz clic en la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.

  3. Busca la cuenta de servicio que tiene el formato service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com.

  4. En esta cuenta de servicio, haz clic en el botón Editar principal.

  5. Si es necesario, haz clic en Agregar otro rol.

  6. Busca y haz clic en el rol de creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator).

  7. Haz clic en Guardar.

Crea una política en AWS

Necesitas una política en AWS para permitir que Pub/Sub se autentique en AWS, de modo que Pub/Sub pueda transferir datos desde Amazon MSK.

  • Para obtener más métodos e información sobre cómo crear una política en AWS, consulta Crea políticas de IAM.

Para crear una política en AWS, sigue estos pasos:

  1. Accede a la consola de administración de AWS y abre la consola de IAM.

  2. En el panel de navegación de la consola de IAM, haz clic en Administración de acceso > Políticas.

  3. Haz clic en Crear política.

  4. En Click a service, haz clic en MSK.

  5. En Action allowed, haz clic en Read > GetBootstrapBrokers.

    Esta acción otorga permiso para obtener los agentes de arranque que Pub/Sub usa para conectarse al clúster de MSK.

  6. Haz clic en Agregar más permisos.

  7. En Select a service, haz clic en Apache Kafka APIs for MSK.

  8. En Acción permitida, selecciona lo siguiente:

    • List > DescribeTopic

      Esta acción otorga permiso para que el tema de transferencia de Pub/Sub obtenga detalles sobre el tema de Kafka de Amazon MSK.

    • Read > ReadData

      Esta acción otorga permiso para leer datos del tema de Kafka de Amazon MSK.

    • Escribir > Conectar

      Esta acción otorga permiso para conectarse y autenticarse en el clúster de Kafka de Amazon MSK.

  9. En Resources, especifica el ARN del clúster (si deseas restringir la política a clústeres específicos, lo que se recomienda).

  10. Haz clic en Agregar más permisos.

  11. En Selecciona un servicio, haz clic en STS.

  12. En Acción permitida, haz clic en Write > AssumeRoleWithWebIdentity.

    Esta acción otorga permiso para obtener un conjunto de credenciales de seguridad temporales para que Pub/Sub se autentique en Amazon MSK con la federación de identidades.

  13. Haz clic en Siguiente.

  14. Ingresa un nombre y una descripción para la política.

  15. Haz clic en Crear política.

Crea un rol en AWS con una política de confianza personalizada

Debes crear un rol en AWS para que Pub/Sub pueda autenticarse en AWS y transferir datos desde Amazon MSK.

  1. Accede a la consola de administración de AWS y abre la consola de IAM.

  2. En el panel de navegación de la consola de IAM, haz clic en Roles.

  3. Haz clic en Crear rol.

  4. En Seleccionar entidad de confianza, haz clic en Política de confianza personalizada.

  5. En la sección Política de confianza personalizada, ingresa o pega lo siguiente:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
         "Effect":