View a markdown version of this page

Für KCL-Verbraucheranwendungen sind IAM-Berechtigungen erforderlich - Amazon Kinesis Data Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Für KCL-Verbraucheranwendungen sind IAM-Berechtigungen erforderlich

Sie müssen der IAM-Rolle oder dem IAM-Benutzer, der Ihrer KCL-Consumer-Anwendung zugeordnet ist, die folgenden Berechtigungen hinzufügen.

Bewährte Sicherheitsmethoden für AWS schreiben die Verwendung von fein abgestuften Berechtigungen vor, um den Zugriff auf verschiedene Ressourcen zu kontrollieren. AWS Identity and Access Management (IAM) ermöglicht die Verwaltung von Benutzern und Benutzerberechtigungen in. AWS Eine IAM-Richtlinie führt explizit zulässige Aktionen sowie Ressourcen auf, für die diese Aktionen relevant sind.

Die folgende Tabelle zeigt die IAM-Mindestberechtigungen, die im Allgemeinen für KCL-Verbraucheranwendungen erforderlich sind:

Minimale IAM-Berechtigungen für KCL-Verbraucheranwendungen
Service Aktionen Ressourcen (ARNs) Zweck
Amazon Kinesis Data Streams

DescribeStream

DescribeStreamSummary

RegisterStreamConsumer

Kinesis-Datenstrom, aus dem Ihre KCL-Anwendung die Daten verarbeitet.

arn:aws:kinesis:region:account:stream/StreamName

Vor dem Versuch, Datensätze zu lesen, prüft der Verbraucher, ob der Daten-Stream vorhanden und ob er aktiv ist und ob Shards im Daten-Stream enthalten sind.

Registriert Verbraucher bei einem Shard.

Amazon Kinesis Data Streams

GetRecords

GetShardIterator

ListShards

Kinesis-Datenstrom, aus dem Ihre KCL-Anwendung die Daten verarbeitet.

arn:aws:kinesis:region:account:stream/StreamName

Auslesen von Datensätzen aus einem Shard.

Amazon Kinesis Data Streams

SubscribeToShard

DescribeStreamConsumer

Kinesis-Datenstrom, aus dem Ihre KCL-Anwendung die Daten verarbeiten wird. Fügen Sie diese Aktion nur hinzu, wenn Sie Enhanced Fan-Out (EFO) -Verbraucher verwenden.

arn:aws:kinesis:region:account:stream/StreamName/consumer/*

Abonniert einen Shard für Verbraucher mit verstärktem Fan-Out (EFO).

Amazon DynamoDB

CreateTable

DescribeTable

UpdateTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

Leasetabelle (Metadatentabelle) in DynamoDB, erstellt von KCL.

arn:aws:dynamodb:region:account:table/KCLApplicationName

Diese Aktionen sind erforderlich, damit KCL die in DynamoDB erstellte Leasetabelle verwalten kann.

Amazon DynamoDB

CreateTable

DescribeTable

Scan

GetItem

PutItem

UpdateItem

DeleteItem

ConditionCheckItem

Von KCL erstellte Worker-Metriken und Koordinator-Statustabelle (Metadatentabellen in DynamoDB).

arn:aws:dynamodb:region:account:table/KCLApplicationName-WorkerMetricStats

arn:aws:dynamodb:region:account:table/KCLApplicationName-CoordinatorState

Diese Aktionen sind erforderlich, damit KCL die Worker-Metriken und die Metadatentabellen für den Koordinatorstatus in DynamoDB verwalten kann. Für die CoordinatorState Tabelle ist die ConditionCheckItem Aktion erforderlich, um die bedingten Schreibvorgänge zu unterstützen, die bei der Migration einer einzelnen Tabelle verwendet wurden.

Amazon DynamoDB

Query

Globaler sekundärer Index in der Leasingtabelle.

arn:aws:dynamodb:region:account:table/KCLApplicationName/index/*

Diese Aktion ist erforderlich, damit KCL den globalen sekundären Index der in DynamoDB erstellten Leasingtabelle lesen kann.

Amazon CloudWatch

PutMetricData

*

Laden Sie Metriken hoch CloudWatch , um die Anwendung zu überwachen. Das Sternchen (*) wird verwendet, weil es keine spezifische Ressource gibt, in CloudWatch der die PutMetricData Aktion aufgerufen wird.

Anmerkung

Ersetzen Sie „region“, „account“, "StreamName,“ und "KCLApplicationName" in den ARNs durch Ihre eigene AWS-Konto Nummer AWS-Region, den Kinesis-Datenstreamnamen bzw. den Namen der KCL-Anwendung. KCL 3.x erstellt zwei weitere Metadatentabellen in DynamoDB. Einzelheiten zu DynamoDB-Metadatentabellen, die von KCL erstellt wurden, finden Sie unter. DynamoDB-Metadatentabellen und Lastenausgleich in KCL Wenn Sie Konfigurationen verwenden, um die Namen der von KCL erstellten Metadatentabellen anzupassen, verwenden Sie diese angegebenen Tabellennamen anstelle des KCL-Anwendungsnamens.

Anmerkung

Nach Abschluss der KCL 3.5-Einzeltabellenmigration müssen die alten Worker-Metriken und die Koordinator-Statustabellen manuell gelöscht werden.

Im Folgenden finden Sie ein Beispiel für ein Richtliniendokument für eine KCL-Verbraucheranwendung.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:DescribeStreamSummary", "kinesis:RegisterStreamConsumer", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/STREAM_NAME" }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/STREAM_NAME/consumer/*" }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME-WorkerMetricStats", "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME-CoordinatorState" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Query" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/KCL_APPLICATION_NAME/index/*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*" } ] }

Bevor Sie diese Beispielrichtlinie verwenden, überprüfen Sie die folgenden Punkte:

  • Ersetzen Sie REGION durch Ihre AWS-Region (z. B. us-east-1).

  • Ersetzen Sie ACCOUNT_ID durch Ihre ID. AWS-Konto

  • Ersetzen Sie STREAM_NAME durch den Namen Ihres Kinesis-Datenstreams.

  • Ersetzen Sie CONSUMER_NAME durch den Namen Ihres Verbrauchers, in der Regel Ihren Anwendungsnamen, wenn Sie KCL verwenden.

  • Ersetzen Sie KCL_APPLICATION_NAME durch den Namen Ihrer KCL-Anwendung.