Un tema de importación de Amazon Kinesis Data Streams te permite transferir datos de Amazon Kinesis Data Streams como fuente externa a Pub/Sub. Luego, puedes transmitir los datos a cualquiera de los destinos que que admite Pub/Sub.
En este documento, se muestra cómo crear y administrar Amazon Kinesis Los flujos de datos importan temas. Para crear un tema estándar, consulta Cómo crear un tema estándar.
Antes de comenzar
Obtén más información sobre el proceso de publicación de Pub/Sub.
Configura el Roles y permisos obligatorios para administrar los temas de importación de Amazon Kinesis Data Streams incluidos los siguientes:
Configura la federación de identidades de cargas de trabajo para que Google Cloud pueda acceder al servicio de transmisión externo.
Roles y permisos necesarios para administrar temas de importación
A fin de obtener los permisos que necesitas para crear y administrar temas de importación de Amazon Kinesis Data Streams,
solicita a tu administrador que te otorgue el
Editor de Pub/Sub(roles/pubsub.editor
)
IAM 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 flujos de datos de Amazon Kinesis. 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 Kinesis Data Streams:
-
Crea un tema de importación:
pubsub.topics.create
-
Borrar un tema de importación:
pubsub.topics.delete
-
Obtén 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
-
Actualiza un tema de importación:
pubsub.topics.update
-
Obtén la política de IAM de 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 una identidad federada para acceder a Kinesis Data Streams
La federación de identidades para cargas de trabajo permite que los servicios de Google Cloud accedan a las cargas de trabajo que se ejecutan fuera de Google Cloud. Con la federación de identidades, no necesitas mantener o 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 usar en este procedimiento, en lugar de crear una cuenta de servicio nueva. Si usas una cuenta de servicio existente, ve a Registra el ID único de la cuenta de servicio del el próximo paso.
En el caso de un tema de importación de Amazon Kinesis Data Streams, Pub/Sub usa la cuenta de servicio como la identidad para acceder a los recursos de AWS.
Para obtener más información sobre cómo crear una cuenta de servicio, incluidos los requisitos previos, los roles y los permisos necesarios, y los lineamientos de nombres, consulta Cómo crear cuentas de servicio. Después de crear una cuenta de servicio, es posible que debas esperar 60 segundos o más usar la cuenta de servicio. 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.
En la consola de Google Cloud, ve a la página de detalles de la Cuenta de servicio.
Haz clic en la cuenta de servicio que acabas de crear o en la que planean usar.
En la página Detalles de la cuenta de servicio, registra el número de ID único.
Necesitarás el ID como parte de la sección Crea un rol en AWS con una política de confianza personalizada.
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 el procedimiento. Para obtener más información sobre el rol y por qué lo estás agregando,
consulta Cómo agregar la función de publicador de Pub/Sub a la cuenta de servicio de Pub/Sub.
En la consola de Google Cloud, ve a la página IAM.
Habilita la opción Incluir asignaciones de roles proporcionadas por Google.
Busca la cuenta de servicio que tenga el formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.En esta cuenta de servicio, haz clic en el botón Editar principal.
Si es necesario, haz clic en Agregar otro rol.
Busca y selecciona el rol de creador de tokens de cuentas de servicio (
roles/iam.serviceAccountTokenCreator
).Haz clic en Guardar.
Crea una política en AWS
Necesitas una política en AWS para permitir que Pub/Sub se autentique con AWS, de modo que Pub/Sub pueda transferir datos de un flujo de datos de AWS Kinesis. Antes de crear una política de AWS, crea un flujo de datos de Kinesis y un consumidor registrado en él. Te recomendamos práctica para restringir los permisos a la transmisión específica.
Para obtener más información sobre cómo crear un flujo de datos de AWS Kinesis, consulta Flujo de datos de Kinesis.
Para obtener más información sobre la API de flujo de datos de AWS Kinesis que se usa para registrar consumidores, consulta RegisterStreamConsumer.
Para obtener más información y métodos 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:
Accede a la consola de administración de AWS y abre la consola de IAM.
En el panel de navegación de la consola de IAM, haz lo siguiente: haz clic en Administración de Accesos > Políticas.
Haz clic en Crear política.
En Seleccionar un servicio, selecciona Kinesis.
En Acción permitida, selecciona lo siguiente:
List > ListShards.
Esta acción otorga permiso para enumerar los fragmentos en una transmisión y proporciona información sobre cada fragmento.
Leer > SubscribeToShard.
Esta acción otorga permiso para escuchar un fragmento específico con fan-out mejorado.
Leer > DescribeStreamConsumer.
Esta acción otorga permiso para obtener la descripción de un consumidor de transmisiones registrado.
Estos permisos abarcan la lectura de la transmisión. Pub/Sub solo admite la lectura de una transmisión de Kinesis con Fan-Out mejorado mediante API de SubscribeToShard.
En Recursos, si deseas restringir la política a una transmisión específica. o consumidor (recomendado), especifica el ARN del consumidor y el ARN de transmisión.
Haz clic en Agregar más permisos.
En Selecciona un servicio, ingresa y selecciona STS.
En acción permitida, selecciona Escribir > AssumeRoleWithWebIdentity.
Esta acción otorga permiso para obtener un conjunto de medidas de seguridad temporales credenciales para que Pub/Sub se autentique en datos de Kinesis con la federación de identidades.
Haz clic en Siguiente.
Ingresa un nombre y una descripción para la política.
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 a AWS para transferir datos de Kinesis Data Streams.
Para crear un rol con una política de confianza personalizada, sigue estos pasos:
Accede a la consola de administración de AWS y abre la consola de IAM.
En el panel de navegación de la consola de IAM, haz clic en Roles.
Haz clic en Crear rol.
En Seleccionar entidad de confianza, selecciona Política de confianza personalizada.
En la sección Política de confianza personalizada, ingresa o pega lo siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:sub": "<SERVICE_ACCOUNT_UNIQUE_ID>" } } } ] }
Reemplaza
<SERVICE_ACCOUNT_UNIQUE_ID>
por el ID único de la cuenta de servicio que registraste en Cómo registrar el ID único de la cuenta de servicio.Haz clic en Siguiente.
En Agregar permisos, busca y selecciona la política personalizada que acabas de crear.
Haz clic en Siguiente.
Ingresa el nombre y la descripción del rol.
Haz clic en Crear rol.
Agrega el rol de publicador de Pub/Sub a la cuenta de servicio de Pub/Sub
Debes asignar un rol de publicador a la cuenta de servicio de Pub/Sub para que Pub/Sub pueda publicar en el tema de importación desde AWS Kinesis Data Streams.
Para habilitar la publicación desde todos los temas de un proyecto, consulta Habilita la publicación desde todos los temas.
Para habilitar la publicación desde un tema específico (recomendado), consulta Habilita la publicación desde un solo tema.
Habilita la publicación desde todos los temas
En la consola de Google Cloud, ve a la página IAM.
Habilita la opción Incluir asignaciones de roles proporcionadas por Google.
Busca la cuenta de servicio que tiene el formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Para esta cuenta de servicio, haz clic en el botón Editar principal.
Si es necesario, haz clic en Agregar otro rol.
Busca y selecciona el rol de publicador de Pub/Sub (
roles/pubsub.publisher
).Haz clic en Guardar.
Habilita la publicación desde un solo tema
Si quieres otorgar el permiso de publicación solo a un Amazon Kinesis Data Streams, tema de importación sigue estos pasos:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Ejecuta el comando
gcloud pubsub topics add-iam-policy-binding
:gcloud pubsub topics add-iam-policy-binding TOPIC_ID\ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com"\ --role="roles/pubsub.publisher"
Reemplaza lo siguiente:
TOPIC_ID es el ID del tema del tema de importación de Amazon Kinesis Data Streams.
PROJECT_NUMBER es el número del proyecto. Para ver el número del proyecto, consulta Identifica proyectos.
Agrega el rol del usuario de la cuenta de servicio a la cuenta de servicio
El rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser
) incluye el permiso iam.serviceAccounts.actAs
que permite que una principal adjunte una cuenta de servicio a la configuración de transferencia del tema de importación de Amazon Kinesis Data Streams y use esa cuenta de servicio para la identidad federada.
Sigue los siguientes pasos:
En la consola de Google Cloud, ve a la página IAM.
En el principal que emite las llamadas para crear o actualizar temas, haz clic en el botón Editar principal.
Si es necesario, haz clic en Agregar otro rol.
Busca y selecciona el rol de usuario de la cuenta de servicio (
roles/iam.serviceAccountUser
).Haz clic en Guardar.
Crea un tema de importación de Amazon Kinesis Data Streams
Para obtener más información sobre las propiedades asociadas con un tema, consulta Propiedades de un tema.
Asegúrate de haber completado los siguientes procedimientos:
Configura la identidad federada para acceder a Kinesis Data Streams
Agrega el rol de publicador de Pub/Sub a la cuenta de servicio de Pub/Sub
Agrega el rol de usuario de la cuenta de servicio a la cuenta de servicio
Para crear un tema de importación de Amazon Kinesis Data Streams, sigue estos pasos:
Console
-
En la consola de Google Cloud, ve a la página Temas.
-
Haz clic en Crear tema.
-
En el campo ID de tema, ingresa un ID para tu tema de importación de Amazon Kinesis Data Streams.
Para obtener más información sobre cómo nombrar temas, consulta los lineamientos de nombres.
-
Selecciona Agregar una suscripción predeterminada.
-
Selecciona Habilitar transferencia.
-
En Fuente de transferencia, selecciona Amazon Kinesis Data Streams.
-
Ingresa los siguientes detalles:
-
ARN de transmisión de Kinesis: Es el ARN del flujo de datos de Kinesis que planeas transferir a Pub/Sub. El formato del ARN es el siguiente:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
ARN del consumidor de Kinesis: Es el ARN del recurso del consumidor que es registrados en AWS Kinesis Data Stream. El formato ARN es sigue:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
-
ARN de rol de AWS: Es el ARN del rol de AWS. Es el formato ARN de la es la siguiente:
arn:aws:iam:${Account}:role/${RoleName}
-
Cuenta de servicio: Es la cuenta de servicio que creaste en Crea una cuenta de servicio en Google Cloud.
-
-
Haz clic en Crear tema.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Ejecuta el comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
--kinesis-ingestion-stream-arn KINESIS_STREAM_ARN
--kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN
--kinesis-ingestion-role-arn KINESIS_ROLE_ARN
--kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNTReemplaza lo siguiente:
-
TOPIC_ID es el ID del tema.
-
KINESIS_STREAM_ARN es el ARN de los flujos de datos de Kinesis. que planeas transferir a Pub/Sub. El formato del ARN es el siguiente:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN es el ARN del recurso del consumidor. registrado en Kinesis Data Streams de AWS. El formato ARN es de la siguiente manera:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
-
KINESIS_ROLE_ARN es el ARN de la función de AWS. El formato del ARN del rol es el siguiente:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT es la cuenta de servicio que creaste en Crea una cuenta de servicio en Google Cloud.
-
Go
Antes de probar esta muestra, sigue las instrucciones de configuración de Go que se encuentran en el Guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Go de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java que se encuentran en el Guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Java de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js que se encuentran en el Guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Node.js de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python que se encuentran en el Guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Python de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ que se encuentran en el Guía de inicio rápido de Pub/Sub con bibliotecas cliente. Para obtener más información, consulta la API de C++ de Pub/Sub documentación de referencia.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js (TypeScript)
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de Pub/Sub mediante bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Para obtener más información sobre los ARN, consulta Nombres de recursos de Amazon (ARN) e Identificadores de IAM.
Si tienes problemas, Consulta Soluciona problemas de un tema de importación de Amazon Kinesis Data Streams.
Editar un tema de importación de Amazon Kinesis Data Streams
Puedes editar la configuración de la fuente de datos de transferencia de un tema de importación de Amazon Kinesis Data Streams. Sigue los siguientes pasos:
Console
-
En la consola de Google Cloud, ve a la página Temas.
-
Haz clic en el tema de importación de Amazon Kinesis Data Streams.
-
En la página de detalles del tema, haz clic en Editar.
-
Actualiza los campos que deseas cambiar.
-
Haz clic en Actualizar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Ejecuta el comando
gcloud pubsub topics update
con todas las marcas mencionadas a continuación. muestra:gcloud pubsub topics update TOPIC_ID
--kinesis-ingestion-stream-arn KINESIS_STREAM_ARN
--kinesis-ingestion-consumer-arn KINESIS_CONSUMER_ARN
--kinesis-ingestion-role-arn KINESIS_ROLE_ARN
--kinesis-ingestion-service-account PUBSUB_SERVICE_ACCOUNTReemplaza lo siguiente:
-
TOPIC_ID es el ID del tema. No se puede actualizar este campo.
-
KINESIS_STREAM_ARN es el ARN de los flujos de datos de Kinesis. que planeas transferir a Pub/Sub. El ARN es el siguiente:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
-
KINESIS_CONSUMER_ARN es el ARN del recurso del consumidor que se registró en AWS Kinesis Data Streams. El formato del ARN es el siguiente:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
KINESIS_ROLE_ARN es el ARN del rol de AWS. El formato del ARN del rol es el siguiente:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT es la cuenta de servicio que creaste en Crea una cuenta de servicio en Google Cloud.
-
Cuotas y límites para los temas de importación de Amazon Kinesis Data Streams
La capacidad de procesamiento del publicador para los temas de importación está limitada por la cuota de publicación del tema. Para obtener más información, consulta Cuotas y límites de Pub/Sub.
¿Qué sigue?
Elige el tipo de suscripción para tu tema.
Obtén información para publicar un mensaje en un tema.
Crear o modificar un tema con gcloud CLI APIs de REST o bibliotecas cliente.
Cómo solucionar problemas de un tema de importación de Amazon Kinesis Data Streams