Mit einem Amazon Kinesis Data Streams-Importthema können Sie Daten aus Amazon Kinesis Data Streams als externe Quelle in Pub/Sub aufnehmen. Dann können Sie die Daten in jedes der Ziele streamen, Pub/Sub unterstützt.
In diesem Dokument erfahren Sie, wie Sie Importthemen für Amazon Kinesis Data Streams erstellen und verwalten. Informationen zum Erstellen eines Standardthemas finden Sie unter Standardthema erstellen.
Hinweis
Konfigurieren Sie die erforderlichen Rollen und Berechtigungen zum Verwalten von Amazon Kinesis Data Streams-Importthemen, einschließlich der folgenden:
Richten Sie die Workload Identity-Föderation ein, damit Google Cloud auf den externen Streamingdienst zugreifen kann.
Erforderliche Rollen und Berechtigungen zum Verwalten von Importthemen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Pub/Sub-Bearbeiter“ (roles/pubsub.editor
) für Ihr Thema oder Projekt zu gewähren, um die Berechtigungen zum Erstellen und Verwalten von Amazon Kinesis Data Streams-Importthemen zu erhalten.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen und Verwalten von Amazon Kinesis Data Streams-Importthemen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen und Verwalten von Amazon Kinesis Data Streams-Importthemen erforderlich:
-
Erstellen Sie ein Importthema:
pubsub.topics.create
-
So löschen Sie ein Importthema:
pubsub.topics.delete
-
Importthema abrufen:
pubsub.topics.get
-
Importthema angeben:
pubsub.topics.list
-
In einem importierten Thema veröffentlichen:
pubsub.topics.publish
-
Aktualisieren Sie ein Importthema:
pubsub.topics.update
-
Rufen Sie die IAM-Richtlinie für ein Importthema ab:
pubsub.topics.getIamPolicy
-
Konfigurieren Sie die IAM-Richtlinie für ein Importthema:
pubsub.topics.setIamPolicy
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie können die Zugriffssteuerung auf Projektebene und auf der auf der Ebene einzelner Ressourcen.
Föderierte Identität für den Zugriff auf Kinesis Data Streams einrichten
Mit der Workload Identity-Föderation können Google Cloud-Dienste auf Arbeitslasten zugreifen, die außerhalb von Google Cloud ausgeführt werden. Mit der Identitätsfederation müssen Sie keine Anmeldedaten für Google Cloud verwalten oder an Google Cloud weitergeben, um auf Ihre Ressourcen in anderen Clouds zuzugreifen. Stattdessen können Sie die Identitäten der Arbeitslasten selbst um sich bei Google Cloud zu authentifizieren und auf Ressourcen zuzugreifen.
Dienstkonto in Google Cloud erstellen
Dieser Schritt ist optional. Wenn Sie bereits ein Dienstkonto haben, können Sie es in diesem Verfahren verwenden, anstatt ein neues Dienstkonto zu erstellen. Wenn Sie ein vorhandenes Dienstkonto verwenden, gehen Sie zu Notieren Sie sich die eindeutige Dienstkonto-ID für die nächsten Schritt.
Bei einem Amazon Kinesis Data Streams-Importthema verwendet Pub/Sub das Dienstkonto als Identität für den Zugriff auf Ressourcen von AWS.
Weitere Informationen zum Erstellen eines Dienstkontos, einschließlich Voraussetzungen, erforderlicher Rollen und Berechtigungen sowie Richtlinien für die Benennung, finden Sie unter Dienstkonten erstellen. Nach dem Erstellen Dienstkonto angemeldet sind, müssen Sie möglicherweise 60 Sekunden oder länger warten, bevor Sie das Dienstkonto verwenden. Dieses Verhalten tritt auf, weil Lesevorgänge Eventual Consistency haben. Es kann einige Zeit dauern, bis das neue Dienstkonto sichtbar ist.
Eindeutige ID des Dienstkontos notieren
Sie benötigen eine eindeutige ID für das Dienstkonto, um eine Rolle in der AWS-Konsole einzurichten.
Rufen Sie in der Google Cloud Console die Seite Dienstkonto auf.
Klicken Sie auf das Dienstkonto, das Sie gerade erstellt haben oder auf das Sie gerade sind. die Sie nutzen möchten.
Notieren Sie sich auf der Seite Dienstkontodetails die eindeutige ID.
Sie benötigen die ID im Abschnitt Rolle in AWS mit benutzerdefinierter Vertrauensrichtlinie erstellen.
Pub/Sub-Dienstkonto die Rolle „Ersteller von Dienstkonto-Tokens“ hinzufügen
Mit der Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator
) können Hauptkonten kurzlebige Anmeldedaten für ein Dienstkonto erstellen. Diese Tokens oder Anmeldedaten werden verwendet, um das Dienstkonto zu imitieren.
Weitere Informationen zu Identitätswechsel für Dienstkonten.
Sie können während dieses Vorgangs auch die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher
) hinzufügen. Weitere Informationen zur Rolle und dazu, warum Sie sie hinzufügen,
Siehe Pub/Sub-Publisher-Rolle zum Pub/Sub-Dienstkonto hinzufügen.
Öffnen Sie in der Google Cloud Console die Seite IAM.
Aktivieren Sie die Option Von Google bereitgestellte Rollenzuweisungen einbeziehen.
Suchen Sie nach dem Dienstkonto im Format
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.Klicken Sie für dieses Dienstkonto auf die Schaltfläche Hauptkonto bearbeiten.
Klicken Sie bei Bedarf auf Weitere Rolle hinzufügen.
Suchen und wählen Sie die Rolle „Ersteller von Dienstkonto-Tokens“ (
roles/iam.serviceAccountTokenCreator
) aus.Klicken Sie auf Speichern.
Richtlinie in AWS erstellen
Sie benötigen eine Richtlinie in AWS, damit sich Pub/Sub mit AWS, damit Pub/Sub Daten aus AWS Kinesis-Daten aufnehmen kann . Erstellen Sie vor dem Erstellen einer AWS-Richtlinie einen Kinesis-Datenstream mit einem registrierten Nutzer erstellt. Wir empfehlen Folgendes: um die Berechtigungen auf den jeweiligen Stream zu beschränken.
Weitere Informationen zum Erstellen eines AWS Kinesis-Datenstreams finden Sie unter Kinesis-Datenstream
Weitere Informationen zur AWS Kinesis Data Stream API, mit der Verbraucher registriert werden, finden Sie unter RegisterStreamConsumer.
Weitere Methoden und Informationen zum Erstellen einer Richtlinie in AWS finden Sie unter IAM-Richtlinien erstellen.
So erstellen Sie eine Richtlinie in AWS:
Melden Sie sich in der AWS Management Console an und öffnen Sie die IAM-Konsole
Klicken Sie im Navigationsbereich der Console unter IAM auf Zugriffsverwaltung > Richtlinien.
Klicken Sie auf Richtlinie erstellen.
Wählen Sie unter Dienst auswählen die Option Kinesis aus.
Wählen Sie unter Aktion erlaubt Folgendes aus:
Liste > ListShards:
Durch diese Aktion wird die Berechtigung zum Auflisten der Shards in einem Stream gewährt und liefert Informationen zu jedem Shard.
Lesen > SubscribeToShard
Mit dieser Aktion wird die Berechtigung zum Abhören eines bestimmten Shards mit erweitertem Fan-out erteilt.
Lesen > DescribeStreamConsumer
Diese Aktion gewährt die Berechtigung, die Beschreibung eines registrierten Stream-Empfängers abzurufen.
Diese Berechtigungen decken das Lesen aus dem Stream ab. Pub/Sub unterstützt nur das Lesen aus einem Kinesis-Stream mit erweitertem Fan-Out, und zwar mithilfe der Streaming SubscribeToShard API.
Wenn du die Richtlinie auf einen bestimmten Stream oder Nutzer beschränken möchtest (empfohlen), gib unter Ressourcen den ARN des Nutzers und den ARN des Streams an.
Klicken Sie auf Weitere Berechtigungen hinzufügen.
Geben Sie unter Dienst auswählen STS ein und wählen Sie diese Option aus.
Wählen Sie unter Aktion erlaubt die Option Schreiben > AssumeRoleWithWebIdentity.
Durch diese Aktion wird die Berechtigung zum Abrufen eines temporären Sicherheitssatzes gewährt Anmeldedaten für Pub/Sub zur Authentifizierung bei Kinesis-Daten mithilfe der Identitätsföderation streamen.
Klicken Sie auf Weiter.
Geben Sie einen Namen und eine Beschreibung für die Richtlinie ein.
Klicken Sie auf Richtlinie erstellen.
Rolle in AWS mit benutzerdefinierter Trust-Richtlinie erstellen
Sie müssen eine Rolle in AWS erstellen, damit sich Pub/Sub authentifizieren kann zu AWS, um Daten aus Kinesis Data Streams aufzunehmen.
So erstellen Sie eine Rolle mit einer benutzerdefinierten Vertrauensrichtlinie:
Melden Sie sich in der AWS Management Console an und öffnen Sie die IAM-Konsole.
Klicken Sie im Navigationsbereich der Console unter IAM auf Rollen.
Klicken Sie auf Rolle erstellen.
Wählen Sie unter Vertrauenswürdige Entität auswählen die Option Benutzerdefinierte Vertrauensrichtlinie aus.
Geben Sie im Abschnitt Benutzerdefinierte Vertrauensrichtlinie Folgendes ein oder fügen Sie es ein:
{ "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>" } } } ] }
Ersetzen Sie
<SERVICE_ACCOUNT_UNIQUE_ID>
durch die eindeutige ID von das Dienstkonto, in dem Sie sich Notieren Sie die eindeutige Dienstkonto-ID.Klicken Sie auf Weiter.
Wählen Sie unter Berechtigungen hinzufügen die benutzerdefinierte Richtlinie aus, die die Sie gerade erstellt haben.
Klicken Sie auf Weiter.
Geben Sie einen Rollennamen und eine Beschreibung ein.
Klicken Sie auf Rolle erstellen.
Pub/Sub-Publisher-Rolle dem Pub/Sub-Dienstkonto hinzufügen
Sie müssen dem Pub/Sub-Dienstkonto eine Publisher-Rolle zuweisen damit Pub/Sub Inhalte im Importthema veröffentlichen kann, AWS Kinesis Data Streams
Informationen zum Aktivieren der Veröffentlichung aus allen Themen in einem Projekt finden Sie unter Veröffentlichung aus allen Themen aktivieren.
Informationen zum Aktivieren der Veröffentlichung aus einem bestimmten Thema (empfohlen) finden Sie unter Veröffentlichung aus einem einzelnen Thema aktivieren.
Veröffentlichung aus allen Themenbereichen aktivieren
Öffnen Sie in der Google Cloud Console die Seite IAM.
Aktivieren Sie die Option Von Google bereitgestellte Rollenzuweisungen einschließen.
Suchen Sie nach dem Dienstkonto mit folgendem Format:
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
Klicken Sie für dieses Dienstkonto auf die Schaltfläche Hauptkonto bearbeiten.
Klicken Sie bei Bedarf auf Weitere Rolle hinzufügen.
Wählen Sie die Pub/Sub-Publisher-Rolle (
roles/pubsub.publisher
) aus.Klicken Sie auf Speichern.
Veröffentlichung über ein einzelnes Thema aktivieren
Wenn Sie die Veröffentlichungsberechtigung nur für ein bestimmtes Amazon Kinesis Data Streams-Importthema gewähren möchten, gehen Sie so vor:
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.
Führen Sie den Befehl
gcloud pubsub topics add-iam-policy-binding
aus:gcloud pubsub topics add-iam-policy-binding TOPIC_ID\ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com"\ --role="roles/pubsub.publisher"
Ersetzen Sie Folgendes:
TOPIC_ID ist die Topic-ID des Amazon Kinesis Data Streams-Import-Topics.
ist PROJECT_NUMBER die Projektnummer. So rufen Sie das Projekt auf: erhalten Sie unter Projekte identifizieren.
Dienstkonto die Rolle „Dienstkontonutzer“ hinzufügen
Die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser
) umfasst die Berechtigung iam.serviceAccounts.actAs
, mit der ein Hauptkonto ein Dienstkonto an die Aufnahmeeinstellungen des Amazon Kinesis Data Streams-Import-Themas anhängen und dieses Dienstkonto für die föderierte Identität verwenden kann.
Führen Sie diese Schritte aus:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Für das Hauptkonto, das die Create- oder Update-Topic-Aufrufe ausgibt, Klicken Sie auf die Schaltfläche Hauptkonto bearbeiten.
Klicken Sie bei Bedarf auf Weitere Rolle hinzufügen.
Wählen Sie die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser
) aus.Klicken Sie auf Speichern.
Amazon Kinesis Data Streams-Importthema erstellen
Weitere Informationen zu Attributen, die mit einem Thema verknüpft sind, finden Sie unter Eigenschaften eines Themas.
Vergewissern Sie sich, dass Sie die folgenden Schritte ausgeführt haben:
Föderierte Identität für den Zugriff auf Kinesis Data Streams einrichten
Dem Pub/Sub-Dienstkonto die Rolle „Pub/Sub-Publisher“ hinzufügen
So erstellen Sie ein Amazon Kinesis Data Streams-Importthema:
Console
-
Rufen Sie in der Google Cloud Console die Seite Themen auf.
-
Klicken Sie auf Thema erstellen.
-
Geben Sie im Feld Topic ID (Themen-ID) eine ID für Ihr Amazon Kinesis Data Streams-Importthema ein.
Weitere Informationen zur Benennung von Themen finden Sie in den Benennungsrichtlinien.
-
Wählen Sie Standardabo hinzufügen aus.
-
Wählen Sie Aufnahme aktivieren aus.
-
Wählen Sie als Datenaufnahmequelle Amazon Kinesis Data Streams aus.
-
Geben Sie die folgenden Informationen ein:
-
ARN des Kinesis-Streams: Der ARN für den Kinesis-Datenstream, der Daten in Pub/Sub aufnehmen möchten. Das ARN-Format lautet:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
-
ARN des Kinesis-Nutzers: Der ARN der Nutzerressource, die für den AWS Kinesis-Datenstream registriert ist. Das ARN-Format ist folgt:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
-
ARN der AWS-Rolle: Der ARN der AWS-Rolle. Die ARN der Rolle hat folgendes Format:
arn:aws:iam:${Account}:role/${RoleName}
. -
Dienstkonto: Das Dienstkonto, das Sie unter Dienstkonto in Google Cloud erstellen erstellt haben.
-
-
Klicken Sie auf Thema erstellen.
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.
-
Führen Sie den Befehl
gcloud pubsub topics create
aus: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_ACCOUNTErsetzen Sie Folgendes:
-
TOPIC_ID ist die Themen-ID.
-
KINESIS_STREAM_ARN ist der ARN für die Kinesis-Datenstreams. die Sie in Pub/Sub aufnehmen möchten. Die ARN hat folgendes Format:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
. -
KINESIS_CONSUMER_ARN ist der ARN der Nutzerressource. das bei AWS Kinesis Data Streams registriert ist. Das ARN-Format ist wie folgt:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
-
KINESIS_ROLE_ARN ist der ARN der AWS-Rolle. Der ARN Format der Rolle:
arn:aws:iam:${Account}:role/${RoleName}
-
PUBSUB_SERVICE_ACCOUNT ist das Dienstkonto, erstellt in Dienstkonto erstellen in Google Cloud.
-
Go
Folgen Sie der Einrichtungsanleitung für Go in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung zur Verwendung von Clientbibliotheken, bevor Sie dieses Beispiel anwenden. Weitere Informationen finden Sie in der Pub/Sub Java API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Node.js in der Pub/Sub-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Pub/Sub Node.js API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Python in der Pub/Sub-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
C++
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für C++ in der Pub/Sub-Schnellstart mit Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js (TypeScript)
Folgen Sie der Einrichtungsanleitung für Node.js in der Pub/Sub-Kurzanleitung mit Clientbibliotheken Weitere Informationen finden Sie in der Pub/Sub Node.js API Referenzdokumentation.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Pub/Sub zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weitere Informationen zu ARNs finden Sie unter Amazon-Ressourcennamen (ARNs) und IAM-IDs.
Wenn Probleme auftreten, lesen Sie den Hilfeartikel Probleme beim Importieren in Amazon Kinesis Data Streams beheben.
Amazon Kinesis Data Streams-Importthema bearbeiten
Sie können die Einstellungen für die Datenaufnahmequelle eines Amazon Kinesis Data Streams-Importthemas bearbeiten. Führen Sie diese Schritte aus:
Console
-
Rufen Sie in der Google Cloud Console die Seite Themen auf.
-
Klicken Sie auf das Importthema Amazon Kinesis Data Streams.
-
Klicken Sie auf der Seite mit den Themendetails auf Bearbeiten.
-
Aktualisieren Sie die Felder, die Sie ändern möchten.
-
Klicken Sie auf Aktualisieren.
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.
-
Führen Sie den Befehl
gcloud pubsub topics update
mit allen im folgenden Beispiel genannten Flags aus: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_ACCOUNTErsetzen Sie Folgendes:
-
TOPIC_ID ist die Themen-ID. Dieses Feld kann nicht aktualisiert werden.
-
KINESIS_STREAM_ARN ist die ARN für die Kinesis Data Streams, die Sie in Pub/Sub aufnehmen möchten. Der ARN folgendes Format:
arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}
-
KINESIS_CONSUMER_ARN ist der ARN der Nutzerressource. das bei AWS Kinesis Data Streams registriert ist. Das ARN-Format hat folgendes Format:
arn:${Partition}:kinesis:${Region}:${Account}:${StreamType}/${StreamName}/consumer/${ConsumerName}:${ConsumerCreationTimpstamp}
. -
KINESIS_ROLE_ARN ist der ARN der AWS-Rolle. Die ARN der Rolle hat folgendes Format:
arn:aws:iam:${Account}:role/${RoleName}
. -
PUBSUB_SERVICE_ACCOUNT ist das Dienstkonto, das unter Dienstkonto in Google Cloud erstellen erstellt wurde.
-
Kontingente und Limits für Amazon Kinesis Data Streams-Importthemen
Der Publisher-Durchsatz für importierte Themen ist durch das Publish-Kontingent des Themas begrenzt. Weitere Informationen finden Sie unter Pub/Sub-Kontingente und Limits.
Nächste Schritte
Wählen Sie die Art des Abos für Ihr Thema aus.
Weitere Informationen zum Veröffentlichen von Nachrichten in einem Thema
Themen mit der gcloud CLI, REST APIs oder Clientbibliotheken erstellen oder ändern
Fehlerbehebung bei einem Amazon Kinesis Data Streams-Importthema
Schritte zum Konfigurieren eines Storage Transfer-Jobs zum Übertragen von Daten von AWS S3 zu GCS