Un sujet d'importation Amazon Kinesis Data Streams vous permet d'ingérer en continu des données depuis Amazon Kinesis Data Streams en tant que source externe et dans Pub/Sub. Vous pouvez ensuite diffuser les données vers l'une des destinations compatibles avec Pub/Sub.
Pour en savoir plus sur les thèmes d'importation, consultez À propos des thèmes d'importation.
Avant de commencer
En savoir plus sur le processus de publication Pub/Sub
Configurez les rôles et autorisations requis pour gérer les thèmes d'importation Amazon Kinesis Data Streams, y compris les suivants :
Configurez la fédération d'identité de charge de travail pour queTrusted Cloud puisse accéder au service de streaming externe.
Rôles et autorisations requis
Pour obtenir les autorisations nécessaires pour créer et gérer des sujets d'importation Amazon Kinesis Data Streams, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (roles/pubsub.editor
) sur votre sujet ou votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour créer et gérer des thèmes d'importation Amazon Kinesis Data Streams. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer et gérer des rubriques d'importation Amazon Kinesis Data Streams :
-
Créez un sujet d'importation :
pubsub.topics.create
-
Supprimez un thème d'importation :
pubsub.topics.delete
-
Obtenir un sujet d'importation :
pubsub.topics.get
-
Lister un sujet d'importation :
pubsub.topics.list
-
Publier dans un sujet d'importation :
pubsub.topics.publish and pubsub.serviceAgent
-
Mettre à jour un thème d'importation :
pubsub.topics.update
-
Obtenez la stratégie IAM pour un sujet d'importation :
pubsub.topics.getIamPolicy
-
Configurez la stratégie IAM pour un sujet d'importation :
pubsub.topics.setIamPolicy
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vous pouvez configurer le contrôle des accès au niveau du projet et au niveau de chaque ressource.
Configurer une identité fédérée pour accéder à Amazon Kinesis Data Streams
La fédération d'identité de charge de travail permet aux services Trusted Cloud d'accéder aux charges de travail exécutées en dehors de Trusted Cloud. Grâce à la fédération d'identité, vous n'avez pas besoin de gérer ni de transmettre des identifiants à Trusted Cloud pour accéder à vos ressources dans d'autres clouds. À la place, vous pouvez utiliser les identités des charges de travail elles-mêmes pour vous authentifier auprès de Trusted Cloud et accéder aux ressources.
Créer un compte de service dans Trusted Cloud
Il s'agit d'une étape facultative. Si vous disposez déjà d'un compte de service, vous pouvez l'utiliser dans cette procédure au lieu d'en créer un autre. Si vous utilisez un compte de service existant, accédez à Enregistrer l'ID unique du compte de service pour l'étape suivante.
Pour les thèmes d'importation Amazon Kinesis Data Streams, Pub/Sub utilise le compte de service comme identité pour accéder aux ressources depuis AWS.
Pour en savoir plus sur la création d'un compte de service, y compris sur les prérequis, les rôles et autorisations requis, et les consignes de dénomination, consultez Créer des comptes de service. Une fois le compte de service créé, vous devrez peut-être attendre au moins 60 secondes avant de l'utiliser. Ce comportement se produit car les opérations de lecture sont cohérentes à terme. Il peut s'écouler un certain temps avant que le nouveau compte de service devienne visible.
Enregistrez l'ID unique du compte de service.
Vous avez besoin d'un ID unique de compte de service pour configurer un rôle dans AWS.
Dans la console Trusted Cloud , accédez à la page d'informations Compte de service.
Cliquez sur le compte de service que vous venez de créer ou sur celui que vous prévoyez d'utiliser.
Sur la page Détails du compte de service, notez le numéro d'ID unique.
Vous avez besoin de l'ID dans le workflow pour configurer un rôle dans AWS.
Ajouter le rôle de créateur de jetons du compte de service au compte de service Pub/Sub
Le rôle de créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator
) permet aux comptes principaux de créer des identifiants éphémères pour un compte de service. Ces jetons ou identifiants sont utilisés pour emprunter l'identité du compte de service.
Pour plus d'informations sur l'emprunt de l'identité d'un compte de service, consultez la page Emprunter l'identité d'un compte de service.
Vous pouvez également ajouter le rôle Éditeur Pub/Sub (roles/pubsub.publisher
) au cours de cette procédure. Pour en savoir plus sur le rôle et la raison pour laquelle vous l'ajoutez, consultez Ajouter le rôle d'éditeur Pub/Sub au compte de service Pub/Sub.
Dans la console Trusted Cloud , accédez à la page IAM.
Cochez la case Inclure les attributions de rôles fournies par S3NS.
Recherchez le compte de service au format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Pour ce compte de service, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator
).Cliquez sur Enregistrer.
Créer une règle dans AWS
Vous avez besoin d'une stratégie dans AWS pour permettre à Pub/Sub de s'authentifier auprès d'AWS afin que Pub/Sub puisse ingérer des données à partir d'Amazon Kinesis Data Streams.
- Pour découvrir d'autres méthodes et obtenir plus d'informations sur la création d'une règle dans AWS, consultez Créer des règles IAM.
Pour créer une règle dans AWS, procédez comme suit :
Connectez-vous à la console de gestion AWS et ouvrez la console IAM.
Dans le panneau de navigation de la console IAM, cliquez sur Gestion des accès > Règles.
Cliquez sur Créer une règle.
Pour Sélectionner un service, cliquez sur Kinesis.
Dans Action autorisée, cliquez sur l'une des options suivantes :
List > ListShards.
Cette action permet de lister les partitions d'un flux et fournit des informations sur chacune d'elles.
Lire > SubscribeToShard.
Cette action autorise l'écoute d'un shard spécifique avec une diffusion améliorée.
Read > DescribeStreamConsumer.
Cette action accorde l'autorisation d'obtenir la description d'un consommateur de flux enregistré.
Ces autorisations couvrent la lecture du flux. Pub/Sub n'accepte la lecture à partir d'un flux Kinesis avec Enhanced Fan-Out qu'à l'aide de l'API SubscribeToShard de streaming.
Pour les ressources, si vous souhaitez limiter la règle à un flux ou à un consommateur spécifique (recommandé), spécifiez l'ARN du consommateur et l'ARN du flux.
Cliquez sur Ajouter des autorisations.
Pour Sélectionner un service, cliquez sur STS.
Pour Action autorisée, cliquez sur Écrire > AssumeRoleWithWebIdentity.
Cette action autorise l'obtention d'un ensemble d'identifiants de sécurité temporaires pour que Pub/Sub s'authentifie auprès d'Amazon Kinesis Data Streams à l'aide de la fédération d'identité.
Cliquez sur Suivant.
Saisissez un nom et une description pour la règle.
Cliquez sur Créer une règle.
Créer un rôle dans AWS à l'aide d'une stratégie de confiance personnalisée
Vous devez créer un rôle dans AWS pour que Pub/Sub puisse s'authentifier auprès d'AWS afin d'ingérer des données à partir d'Amazon Kinesis Data Streams.
Connectez-vous à la console de gestion AWS et ouvrez la console IAM.
Dans le panneau de navigation de la console IAM, cliquez sur Rôles.
Cliquez sur Créer un rôle.
Pour Sélectionner une entité de confiance, cliquez sur Règle d'approbation personnalisée.
Dans la section Règle de confiance personnalisée, saisissez ou collez les informations suivantes :
{ "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>" } } } ] }
Remplacez
<SERVICE_ACCOUNT_UNIQUE_ID>
par l'ID unique du compte de service que vous avez enregistré dans Enregistrer l'ID unique du compte de service.Cliquez sur Suivant.
Pour Ajouter des autorisations, recherchez et cliquez sur la règle personnalisée que vous venez de créer.
Cliquez sur Suivant.
Saisissez un nom et une description pour le rôle.
Cliquez sur Créer un rôle.
Ajouter le rôle d'éditeur Pub/Sub au principal Pub/Sub
Pour activer la publication, vous devez attribuer un rôle d'éditeur au compte de service Pub/Sub afin que Pub/Sub puisse publier sur le sujet d'importation Amazon Kinesis Data Streams.
Ajouter le rôle d'agent de service Pub/Sub au compte de service Pub/Sub
Pour permettre à Pub/Sub d'utiliser le quota de publication du projet de votre sujet d'importation, l'agent de service Pub/Sub doit disposer de l'autorisation serviceusage.services.use
sur le projet de votre sujet d'importation.
Pour accorder cette autorisation, nous vous recommandons d'ajouter le rôle d'agent de service Pub/Sub au compte de service Pub/Sub.
Si le compte de service Pub/Sub ne dispose pas du rôle d'agent de service Pub/Sub, vous pouvez l'attribuer comme suit :
Dans la console Trusted Cloud , accédez à la page IAM.
Cochez la case Inclure les attributions de rôles fournies par S3NS.
Recherchez le compte de service au format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Pour ce compte de service, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur le rôle Agent de service Pub/Sub (
roles/pubsub.serviceAgent
).Cliquez sur Enregistrer.
Activer la publication à partir de tous les thèmes
Utilisez cette méthode si vous n'avez créé aucun sujet d'importation Amazon Kinesis Data Streams.
Dans la console Trusted Cloud , accédez à la page IAM.
Cochez la case Inclure les attributions de rôles fournies par S3NS.
Recherchez le compte de service au format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Pour ce compte de service, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
).Cliquez sur Enregistrer.
Activer la publication à partir d'un seul sujet
N'utilisez cette méthode que si le sujet d'importation Amazon Kinesis Data Streams existe déjà.
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
Exécutez la commande
gcloud pubsub topics add-iam-policy-binding
:gcloud pubsub topics add-iam-policy-binding TOPIC_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher"
Remplacez les éléments suivants :
TOPIC_ID
: ID du sujet d'importation Amazon Kinesis Data Streams.PROJECT_NUMBER
: numéro du projet. Pour afficher le numéro de projet, consultez Identifier des projets.
Dans la console Trusted Cloud , accédez à la page IAM.
Pour le compte principal qui émet les appels de création ou de mise à jour de sujets, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et cliquez sur le rôle Utilisateur du compte de service (
roles/iam.serviceAccountUser
).Cliquez sur Enregistrer.
- Créer le sujet et l'abonnement séparément, même si vous le faites rapidement, peut entraîner une perte de données. Il existe une courte période pendant laquelle le sujet existe sans abonnement. Si des données sont envoyées au sujet pendant cette période, elles sont perdues. En créant d'abord le sujet, puis l'abonnement, et en convertissant ensuite le sujet en sujet d'importation, vous vous assurez qu'aucun message n'est manqué pendant le processus d'importation.
Configurer une identité fédérée pour accéder à Kinesis Data Streams
Ajouter le rôle d'éditeur Pub/Sub au compte de service Pub/Sub
Ajouter le rôle "Utilisateur du compte de service" au compte de service
Dans la console Trusted Cloud , accédez à la page Sujets.
Cliquez sur Create topic (Créer un sujet).
Dans le champ ID du sujet, saisissez un ID pour votre sujet d'importation Amazon Kinesis Data Streams.
Pour en savoir plus sur l'attribution de noms aux thèmes, consultez les consignes de dénomination.
Sélectionnez Ajouter un abonnement par défaut.
Sélectionnez Activer l'ingestion.
Pour la source d'ingestion, sélectionnez Amazon Kinesis Data Streams.
Saisissez les informations suivantes :
ARN du flux Kinesis : ARN du flux de données Kinesis que vous prévoyez d'ingérer dans Pub/Sub. Le format ARN est le suivant :
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
.ARN du consommateur Kinesis : ARN de la ressource consommateur enregistrée dans le flux de données AWS Kinesis. Le format ARN est le suivant :
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimestamp}
.ARN du rôle AWS : ARN du rôle AWS. Le format ARN du rôle est le suivant :
arn:aws:iam::${Account}:role/${RoleName}
Compte de service : compte de service que vous avez créé dans Créer un compte de service dans Trusted Cloud.
Cliquez sur Create topic (Créer un sujet).
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
Exécutez la commande
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_ACCOUNT
Remplacez les éléments suivants :
TOPIC_ID
: ID du sujet.KINESIS_STREAM_ARN
: ARN du flux Kinesis Data Streams que vous prévoyez d'ingérer dans Pub/Sub. Le format ARN est le suivant :arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
.KINESIS_CONSUMER_ARN
: ARN de la ressource consommateur enregistrée dans AWS Kinesis Data Streams. Le format ARN est le suivant :arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimestamp}
.KINESIS_ROLE_ARN
: ARN du rôle AWS. Le format ARN du rôle est le suivant :arn:aws:iam::${Account}:role/${RoleName}
.PUBSUB_SERVICE_ACCOUNT
: compte de service que vous avez créé dans Créer un compte de service dans Google Cloud.
-
Dans la console Trusted Cloud , accédez à la page Sujets.
-
Cliquez sur la rubrique d'importation Amazon Kinesis Data Streams.
-
Sur la page des détails de la rubrique, cliquez sur Modifier.
-
Modifiez les champs que vous souhaitez modifier.
-
Cliquez sur Mettre à jour.
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
Pour éviter de perdre vos paramètres pour le thème d'importation, assurez-vous de tous les inclure chaque fois que vous mettez à jour le thème. Si vous oubliez de spécifier une valeur, Pub/Sub rétablit la valeur par défaut d'origine.
Exécutez la commande
gcloud pubsub topics update
avec tous les indicateurs mentionnés dans l'exemple suivant :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_ACCOUNTRemplacez les éléments suivants :
-
TOPIC_ID est l'ID du sujet. Ce champ ne peut pas être modifié.
-
KINESIS_STREAM_ARN est l'ARN pour les flux de données Kinesis que vous prévoyez d'ingérer dans Pub/Sub. Le format ARN est le suivant :
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN correspond à l'ARN de la ressource consommateur enregistrée dans AWS Kinesis Data Streams. Le format ARN est le suivant :
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimestamp}
. -
KINESIS_ROLE_ARN est l'ARN du rôle AWS. Le format ARN du rôle est le suivant :
arn:aws:iam::${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT correspond au compte de service que vous avez créé dans Créer un compte de service dans Trusted Cloud.
-
Choisissez le type d'abonnement pour votre sujet.
Découvrez comment publier un message dans un sujet.
Créez ou modifiez un sujet avec gcloud CLI, les API REST ou les bibliothèques clientes.
Résolvez les problèmes liés à un thème d'importation Amazon Kinesis Data Streams.
Ajouter le rôle "Utilisateur du compte de service" au compte de service
Le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser
) inclut l'autorisation iam.serviceAccounts.actAs
qui permet à un compte principal d'associer un compte de service aux paramètres d'ingestion du thème d'importation Amazon Kinesis Data Streams et d'utiliser ce compte de service pour l'identité fédérée.
Utiliser les thèmes Amazon Kinesis Data Streams
Vous pouvez créer un sujet d'importation ou en modifier un existant.
Remarques
Créer une rubrique d'importation Amazon Kinesis Data Streams
Pour en savoir plus sur les propriétés associées à un thème, consultez Propriétés d'un thème.
Assurez-vous d'avoir effectué les procédures suivantes :
Pour créer une rubrique d'importation Amazon Kinesis Data Streams :
Console
gcloud
C++
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage C++ qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour C++.
Go
L'exemple suivant utilise la version majeure de la bibliothèque cliente Go Pub/Sub (v2). Si vous utilisez toujours la bibliothèque v1, consultez le guide de migration vers la v2. Pour consulter la liste des exemples de code de la version 1, consultez les exemples de code obsolètes.
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Go.
Java
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Java qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Java.
Node.js
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Node.ts
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Node.js qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Python
Avant d'essayer cet exemple, suivez les instructions d'installation dans le langage Python qui se trouvent sur la page Démarrage rapide : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Python.
Pour en savoir plus sur les ARN, consultez Noms de ressources Amazon (ARN) et Identifiants IAM.
Si vous rencontrez des problèmes, consultez Dépannage d'un import Amazon Kinesis Data Streams.
Modifier une rubrique d'importation Amazon Kinesis Data Streams
Vous pouvez modifier les paramètres de la source de données d'ingestion d'un sujet d'importation Amazon Kinesis Data Streams. Procédez comme suit :
Console
gcloud
Quotas et limites pour les thèmes d'importation Amazon Kinesis Data Streams
Le débit de publication pour les sujets d'importation est limité par le quota de publication du sujet. Pour en savoir plus, consultez la page Quotas et limites de Pub/Sub.