Zugriffskontrolle mit Amazon Data Firehose - Amazon Data Firehose

Die Bereitstellung von Amazon Data Firehose-Streams an Apache Iceberg Tables in Amazon S3 befindet sich in der Vorschauversion und kann sich ändern.

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.

Zugriffskontrolle mit Amazon Data Firehose

In den folgenden Abschnitten wird beschrieben, wie Sie den Zugriff auf und von Ihren Amazon Data Firehose-Ressourcen kontrollieren können. Zu den Informationen, die sie behandeln, gehört, wie Sie Ihrer Anwendung Zugriff gewähren können, damit sie Daten an Ihren Firehose-Stream senden kann. Sie beschreiben auch, wie Sie Amazon Data Firehose Zugriff auf Ihren Amazon Simple Storage Service (Amazon S3) -Bucket, Amazon Redshift Redshift-Cluster oder Amazon OpenSearch Service-Cluster gewähren können, sowie die Zugriffsberechtigungen, die Sie benötigen, wenn Sie Datadog, Dynatrace,, MongoDB, New Relic LogicMonitor, Splunk oder Sumo Logic als Ziel verwenden. Schließlich finden Sie in diesem Thema Anleitungen zur Konfiguration von Amazon Data Firehose, sodass Daten an ein Ziel gesendet werden können, das zu einem anderen gehört. AWS Konto. Die Technologie zur Verwaltung all dieser Zugriffsformen ist AWS Identity and Access Management (IAM). Weitere Informationen zu IAM finden Sie unter Was istIAM? .

Gewähren Sie Zugriff auf Ihre Firehose-Ressourcen

Verwenden Sie eine Richtlinie, die diesem Beispiel ähnelt, um Ihrer Anwendung Zugriff auf Ihren Firehose-Stream zu gewähren. Sie können die einzelnen API Operationen, denen Sie Zugriff gewähren, anpassen, indem Sie den Action Abschnitt ändern, oder Sie können mit "firehose:*" der Option Zugriff auf alle Operationen gewähren.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }

Gewähren Sie Firehose Zugriff auf Ihren privaten Amazon-Cluster MSK

Wenn die Quelle Ihres Firehose ein privater MSK Amazon-Cluster ist, verwenden Sie eine Richtlinie, die diesem Beispiel ähnelt.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": [ "kafka:CreateVpcConnection" ], "Resource": "cluster-arn" } ] }

Sie müssen der ressourcenbasierten Richtlinie des Clusters eine solche Richtlinie hinzufügen, um dem Firehose-Service Principal die Erlaubnis zu erteilen, den Amazon-Vorgang aufzurufen. MSK CreateVpcConnection API

Erlaube Firehose, eine IAM Rolle zu übernehmen

In diesem Abschnitt werden die Berechtigungen und Richtlinien beschrieben, die Amazon Data Firehose Zugriff auf die Erfassung, Verarbeitung und Übertragung von Daten von der Quelle bis zum Ziel gewähren.

Anmerkung

Wenn Sie die Konsole verwenden, um einen Firehose-Stream zu erstellen, und die Option zum Erstellen einer neuen Rolle wählen, AWS fügt der Rolle die erforderliche Vertrauensrichtlinie hinzu. Wenn Sie möchten, dass Amazon Data Firehose eine bestehende IAM Rolle verwendet, oder wenn Sie selbst eine Rolle erstellen, fügen Sie dieser Rolle die folgenden Vertrauensrichtlinien hinzu, damit Amazon Data Firehose sie übernehmen kann. Bearbeiten Sie die Richtlinien, die ersetzt werden sollen account-id mit deinem AWS Konto-ID. Weitere Informationen zum Ändern der Vertrauensstellung einer Rolle finden Sie unter Ändern einer Rolle.

Amazon Data Firehose verwendet eine IAM Rolle für alle Berechtigungen, die der Firehose-Stream zur Verarbeitung und Bereitstellung von Daten benötigt. Stellen Sie sicher, dass die folgenden Vertrauensrichtlinien mit dieser Rolle verknüpft sind, damit Amazon Data Firehose sie übernehmen kann.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "account-id" } } }] }

Diese Richtlinie verwendet den sts:ExternalId Bedingungskontextschlüssel, um sicherzustellen, dass nur Amazon Data Firehose-Aktivitäten, die von Ihrem AWS Das Konto kann diese IAM Rolle übernehmen. Weitere Informationen zur Verhinderung der unbefugten Verwendung von IAM Rollen finden Sie unter Das Problem mit dem verwirrten Stellvertreter im IAMBenutzerhandbuch.

Wenn Sie Amazon MSK als Quelle für Ihren Firehose-Stream wählen, müssen Sie eine andere IAM Rolle angeben, die Amazon Data Firehose Berechtigungen zum Ingestieren von Quelldaten aus dem angegebenen Amazon-Cluster erteilt. MSK Stellen Sie sicher, dass die folgenden Vertrauensrichtlinien mit dieser Rolle verknüpft sind, damit Amazon Data Firehose sie übernehmen kann.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "Service": [ "firehose.amazonaws.com" ] }, "Effect": "Allow", "Action": "sts:AssumeRole" } ] }

Stellen Sie sicher, dass diese Rolle, die Amazon Data Firehose Berechtigungen zum Ingestieren von Quelldaten aus dem angegebenen MSK Amazon-Cluster erteilt, die folgenden Berechtigungen gewährt:

{ "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "CLUSTER-ARN" }, { "Effect":"Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "TOPIC-ARN" }] }

Gewähren Sie Firehose Zugriff auf AWS Glue für die Konvertierung von Datenformaten

Wenn Ihr Firehose-Stream eine Datenformatkonvertierung durchführt, verweist Amazon Data Firehose auf Tabellendefinitionen, die in gespeichert sind AWS Glue. Um Amazon Data Firehose den erforderlichen Zugriff zu gewähren AWS Glue, fügen Sie Ihrer Richtlinie die folgende Erklärung hinzu. Informationen darüber, wie Sie die ARN Tabelle finden, finden Sie unter Spezifizieren AWS Ressource Glue ARNs.

[{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "table-arn" }, { "Sid": "GetSchemaVersion", "Effect": "Allow", "Action": [ "glue:GetSchemaVersion" ], "Resource": ["*"] }]

Die empfohlene Richtlinie zum Abrufen von Schemas aus der Schemaregistrierung hat keine Ressourceneinschränkungen. Weitere Informationen finden Sie in den IAMBeispielen für Deserialisierer im AWS Glue Entwicklerhandbuch.

Firehose Zugriff auf ein Amazon S3 S3-Ziel gewähren

Wenn Sie ein Amazon S3 S3-Ziel verwenden, liefert Amazon Data Firehose Daten an Ihren S3-Bucket und kann optional eine AWS KMS Schlüssel, den Sie für die Datenverschlüsselung besitzen. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose auch Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollgruppe und Ihre Streams. Sie müssen eine IAM Rolle haben, wenn Sie einen Firehose-Stream erstellen. Amazon Data Firehose übernimmt diese IAM Rolle und erhält Zugriff auf den angegebenen Bucket, den Schlüssel, die CloudWatch Protokollgruppe und die Streams.

Verwenden Sie die folgende Zugriffsrichtlinie, um Amazon Data Firehose den Zugriff auf Ihren S3-Bucket zu ermöglichen und AWS KMS Schlüssel. Wenn Sie nicht Eigentümer des S3-Buckets sind, fügen Sie s3:PutObjectAcl der Liste der Amazon-S3-Aktionen hinzu. Dadurch erhält der Bucket-Besitzer vollen Zugriff auf die von Amazon Data Firehose gelieferten Objekte.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Die oben genannte Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen. Wenn Sie Amazon MSK als Quelle verwenden, können Sie diese Aussage durch Folgendes ersetzen:

{ "Sid":"", "Effect":"Allow", "Action":[ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:cluster/{{mskClusterName}}/{{clusterUUID}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:topic/{{mskClusterName}}/{{clusterUUID}}/{{mskTopicName}}" }, { "Sid":"", "Effect":"Allow", "Action":[ "kafka-cluster:DescribeGroup" ], "Resource":"arn:aws:kafka:{{mskClusterRegion}}:{{mskClusterAccount}}:group/{{mskClusterName}}/{{clusterUUID}}/*" }

Weitere Informationen zum Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

Informationen darüber, wie Sie Amazon Data Firehose Zugriff auf ein Amazon S3 S3-Ziel in einem anderen Konto gewähren, finden Sie unterKontoübergreifende Lieferung an ein Amazon S3 S3-Ziel.

Firehose Zugriff auf ein Apache Iceberg Tables-Ziel gewähren

Sie müssen über eine IAM Rolle verfügen, bevor Sie einen Firehose-Stream und Apache Iceberg-Tabellen mit Hilfe von AWS Glue. Gehen Sie wie folgt vor, um eine Richtlinie und eine IAM Rolle zu erstellen. Firehose übernimmt diese IAM Rolle und führt die erforderlichen Aktionen aus.

  1. Melden Sie sich an bei AWS Management Console und öffnen Sie die IAM Konsole unter https://console.aws.amazon.com/iam/.

  2. Erstellen Sie eine Richtlinie und wählen Sie sie JSONim Richtlinieneditor aus.

  3. Fügen Sie die folgende Inline-Richtlinie hinzu, die Amazon S3 S3-Berechtigungen wie Lese-/Schreibberechtigungen, Berechtigungen zum Aktualisieren der Tabelle im Datenkatalog usw. gewährt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:<region>:<aws-account-id>:catalog", "arn:aws:glue:<region>:<aws-account-id>:database/*", "arn:aws:glue:<region>:<aws-account-id>:table/*/*" ] }, { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:<region>:<aws-account-id>:stream/<stream-name>" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<aws-account-id>:key/<key-id>" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>:<aws-account-id>:log-group:<log-group-name>:log-stream:<log-stream-name>" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:<region>:<aws-account-id>:function:<function-name>:<function-version>" ] } ] }

    Diese Richtlinie enthält eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams, das Aufrufen von Lambda-Funktionen und den Zugriff auf Schlüssel ermöglicht. KMS Wenn Sie keine dieser Ressourcen verwenden, können Sie die entsprechenden Anweisungen entfernen.

    Wenn die Fehlerprotokollierung aktiviert ist, sendet Firehose auch Datenübermittlungsfehler an Ihre CloudWatch Protokollgruppe und Ihre Streams. Dazu müssen Sie die Namen der Protokollgruppen und der Protokolldatenströme konfigurieren. Die Namen von Protokollgruppen und Protokolldatenströmen finden Sie unterÜberwachen Sie Amazon Data Firehose mithilfe von Protokollen CloudWatch .

  4. Ersetzen Sie in den Inline-Richtlinien DOC-EXAMPLE-BUCKET mit Ihrem Amazon S3 S3-Bucket-Namen aws-account-id und Region mit einem gültigen AWS-Konto Nummer und Region der Ressourcen.

    Anmerkung

    Diese Rolle gewährt Zugriff auf alle Datenbanken und Tabellen in Ihrem Datenkatalog. Wenn Sie möchten, können Sie nur bestimmten Tabellen und Datenbanken Berechtigungen erteilen.

  5. Nachdem Sie die Richtlinie erstellt haben, öffnen Sie die IAMKonsole und erstellen Sie eine IAM Rolle mit AWS-Serviceals vertrauenswürdiger Entitätstyp.

  6. Wählen Sie für Service oder Anwendungsfall Kinesis. Wählen Sie als Anwendungsfall Kinesis Firehose.

  7. Wählen Sie auf der nächsten Seite die im vorherigen Schritt erstellte Richtlinie aus, die dieser Rolle zugewiesen werden soll. Auf der Überprüfungsseite finden Sie eine Vertrauensrichtlinie, die dieser Rolle bereits zugeordnet ist und dem Firehose-Dienst die Erlaubnis gibt, diese Rolle zu übernehmen. Wenn Sie die Rolle erstellen, kann Amazon Data Firehose davon ausgehen, dass sie die erforderlichen Operationen ausführt für AWS Glue und S3-Buckets.

Firehose Zugriff auf ein Amazon Redshift Redshift-Ziel gewähren

Beachten Sie Folgendes, wenn Sie Zugriff auf Amazon Data Firehose gewähren, wenn Sie ein Amazon Redshift Redshift-Ziel verwenden.

IAMRollen- und Zugriffsrichtlinie

Wenn Sie ein Amazon Redshift Redshift-Ziel verwenden, liefert Amazon Data Firehose Daten an Ihren S3-Bucket als Zwischenstandort. Es kann optional eine verwenden AWS KMS Schlüssel, den Sie für die Datenverschlüsselung besitzen. Amazon Data Firehose lädt dann die Daten aus dem S3-Bucket in Ihren von Amazon Redshift bereitgestellten Cluster oder Ihre Amazon Redshift Serverless-Arbeitsgruppe. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose auch Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollgruppe und Ihre Streams. Amazon Data Firehose verwendet den angegebenen Amazon Redshift-Benutzernamen und das angegebene Passwort für den Zugriff auf Ihren bereitgestellten Cluster oder Ihre Amazon Redshift Serverless-Arbeitsgruppe und verwendet eine IAM Rolle für den Zugriff auf den angegebenen Bucket, den Schlüssel, CloudWatch die Protokollgruppe und die Streams. Sie müssen eine IAM Rolle haben, wenn Sie einen Firehose-Stream erstellen.

Verwenden Sie die folgende Zugriffsrichtlinie, um Amazon Data Firehose den Zugriff auf Ihren S3-Bucket zu ermöglichen und AWS KMS Schlüssel. Wenn Sie den S3-Bucket nicht besitzen, fügen Sie s3:PutObjectAcl ihn der Liste der Amazon S3 S3-Aktionen hinzu, wodurch der Bucket-Besitzer vollen Zugriff auf die von Amazon Data Firehose bereitgestellten Objekte erhält. Diese Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Weitere Informationen zum Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

VPCZugriff auf einen von Amazon Redshift bereitgestellten Cluster oder eine Amazon Redshift Serverless-Arbeitsgruppe

Wenn sich Ihr von Amazon Redshift bereitgestellter Cluster oder Ihre Amazon Redshift Serverless-Arbeitsgruppe in einer virtuellen privaten Cloud (VPC) befindet, muss sie mit einer öffentlichen IP-Adresse öffentlich zugänglich sein. Gewähren Sie Amazon Data Firehose außerdem Zugriff auf Ihren von Amazon Redshift bereitgestellten Cluster oder Ihre Amazon Redshift Serverless-Arbeitsgruppe, indem Sie die Amazon Data Firehose-IP-Adressen entsperren. Amazon Data Firehose verwendet derzeit einen CIDR Block für jede verfügbare Region.

Region CIDRBlöcke
US East (Ohio)

13.58.135.96/27

USA Ost (Nord-Virginia) 52.70.63.192/27
USA West (Nordkalifornien) 13.57.135.192/27
USA West (Oregon) 52.89.255.224/27
AWS GovCloud (US-Ost) 18.253.138.96/27
AWS GovCloud (US-West) 52.61.204.160/27
Kanada (Zentral) 35.183.92.128/27
Kanada West (Calgary) 40.176.98.192/27
Asien-Pazifik (Hongkong) 18.162.221.32/27
Asien-Pazifik (Mumbai) 13.232.67.32/27
Asien-Pazifik (Hyderabad) 18.60.192.128/27
Asien-Pazifik (Seoul) 13.209.1.64/27
Asien-Pazifik (Singapur) 13.228.64.192/27
Asien-Pazifik (Sydney) 13.210.67.224/27
Asien-Pazifik (Jakarta) 108.136.221.64/27
Asien-Pazifik (Tokio) 13.113.196.224/27
Asien-Pazifik (Osaka) 13.208.177.192/27
China (Peking) 52.81.151.32/27
China (Ningxia) 161.189.23.64/27
Europa (Zürich) 16.62.183.32/27
Europe (Frankfurt) 35.158.127.160/27
Europa (Irland) 52.19.239.192/27
Europe (London) 18.130.1.96/27
Europe (Paris) 35.180.1.96/27
Europe (Stockholm) 13.53.63.224/27
Middle East (Bahrain) 15.185.91.0/27
Südamerika (São Paulo) 18.228.1.128/27
Europa (Milan) 15.161.135.128/27
Afrika (Kapstadt) 13.244.121.224/27
Naher Osten () UAE 3.28.159.32/27
Israel (Tel Aviv) 51.16.102.0/27
Asien-Pazifik (Melbourne) 16.50.161.128/27
Asien-Pazifik (Malaysia) 43.216.58.0/27

Weitere Informationen zum Entsperren von IP-Adressen finden Sie unter dem Schritt Autorisieren des Zugriffs auf den Cluster im Benutzerhandbuch zu Erste Schritte mit Amazon Redshift.

Firehose Zugang zu einem öffentlichen OpenSearch Serviceziel gewähren

Wenn Sie ein OpenSearch Serviceziel verwenden, liefert Amazon Data Firehose Daten an Ihren OpenSearch Service-Cluster und sichert gleichzeitig fehlgeschlagene oder alle Dokumente in Ihrem S3-Bucket. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose auch Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollgruppe und Ihre Streams. Amazon Data Firehose verwendet eine IAM Rolle für den Zugriff auf die angegebene OpenSearch Service-Domain, den S3-Bucket, AWS KMS Schlüssel und CloudWatch Protokollgruppe und Streams. Sie müssen eine IAM Rolle haben, wenn Sie einen Firehose-Stream erstellen.

Verwenden Sie die folgende Zugriffsrichtlinie, um Amazon Data Firehose den Zugriff auf Ihren S3-Bucket, Ihre OpenSearch Service-Domain und AWS KMS Schlüssel. Wenn Sie den S3-Bucket nicht besitzen, fügen Sie s3:PutObjectAcl ihn der Liste der Amazon S3 S3-Aktionen hinzu, wodurch der Bucket-Besitzer vollen Zugriff auf die von Amazon Data Firehose bereitgestellten Objekte erhält. Diese Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeDomain", "es:DescribeDomains", "es:DescribeDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name", "arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats", "arn:aws:es:region:account-id:domain/domain-name/" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Weitere Informationen zum Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

Informationen darüber, wie Sie Amazon Data Firehose Zugriff auf einen OpenSearch Service-Cluster in einem anderen Konto gewähren, finden Sie unterKontoübergreifende Lieferung an ein Serviceziel OpenSearch .

Gewähren Sie Firehose Zugriff auf ein OpenSearch Serviceziel in einem VPC

Wenn sich Ihre OpenSearch Service-Domain in einer befindetVPC, stellen Sie sicher, dass Sie Amazon Data Firehose die im vorherigen Abschnitt beschriebenen Berechtigungen erteilen. Darüber hinaus müssen Sie Amazon Data Firehose die folgenden Berechtigungen erteilen, damit Amazon Data Firehose auf die Ihrer OpenSearch Service-Domains zugreifen VPC kann.

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

Wichtig

Widerrufen Sie diese Berechtigungen nicht, nachdem Sie den Firehose-Stream erstellt haben. Wenn Sie diese Berechtigungen widerrufen, wird Ihr Firehose-Stream beeinträchtigt oder es werden keine Daten mehr an Ihre OpenSearch Dienstdomäne gesendet, wenn der Dienst versucht, eine Abfrage oder Aktualisierung durchzuführen. ENIs

Wichtig

Wenn Sie Subnetze für die private Übertragung von Daten an das Ziel angeben, stellen Sie sicherVPC, dass Sie über eine ausreichende Anzahl an freien IP-Adressen in den ausgewählten Subnetzen verfügen. Wenn in einem bestimmten Subnetz keine kostenlose IP-Adresse verfügbar ist, kann Firehose die Datenübermittlung nicht privat erstellen oder hinzufügen ENIsVPC, und die Übertragung wird beeinträchtigt oder schlägt fehl.

Wenn Sie Ihren Firehose-Stream erstellen oder aktualisieren, geben Sie eine Sicherheitsgruppe an, die Firehose verwenden soll, wenn es Daten an Ihre OpenSearch Service-Domain sendet. Sie können dieselbe Sicherheitsgruppe verwenden, die die OpenSearch Service-Domain verwendet, oder eine andere. Wenn Sie eine andere Sicherheitsgruppe angeben, stellen Sie sicher, dass diese ausgehenden HTTPS Datenverkehr zur Sicherheitsgruppe der OpenSearch Dienstdomäne zulässt. Stellen Sie außerdem sicher, dass die Sicherheitsgruppe der OpenSearch Dienstdomäne HTTPS Datenverkehr von der Sicherheitsgruppe zulässt, die Sie bei der Konfiguration Ihres Firehose-Streams angegeben haben. Wenn Sie dieselbe Sicherheitsgruppe sowohl für Ihren Firehose-Stream als auch für die OpenSearch Service-Domain verwenden, stellen Sie sicher, dass die Sicherheitsgruppenregel für eingehenden Datenverkehr zulässtHTTPS. Weitere Informationen zu Sicherheitsgruppenregeln finden Sie unter Sicherheitsgruppenregeln in der VPC Amazon-Dokumentation.

Gewähren Sie Firehose Zugriff auf ein öffentliches OpenSearch serverloses Ziel

Wenn Sie ein OpenSearch serverloses Ziel verwenden, liefert Amazon Data Firehose Daten an Ihre OpenSearch serverlose Sammlung und sichert gleichzeitig fehlgeschlagene oder alle Dokumente in Ihrem S3-Bucket. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose auch Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollgruppe und Ihre Streams. Amazon Data Firehose verwendet eine IAM Rolle für den Zugriff auf die angegebene OpenSearch serverlose Sammlung, den S3-Bucket, AWS KMS Schlüssel, CloudWatch Protokollgruppe und Streams. Sie müssen eine IAM Rolle haben, wenn Sie einen Firehose-Stream erstellen.

Verwenden Sie die folgende Zugriffsrichtlinie, um Amazon Data Firehose den Zugriff auf Ihren S3-Bucket, Ihre OpenSearch Serverless-Domain und AWS KMS Schlüssel. Wenn Sie den S3-Bucket nicht besitzen, fügen Sie s3:PutObjectAcl ihn der Liste der Amazon S3 S3-Aktionen hinzu, wodurch der Bucket-Besitzer vollen Zugriff auf die von Amazon Data Firehose bereitgestellten Objekte erhält. Diese Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] }, { "Effect": "Allow", "Action": "aoss:APIAccessAll", "Resource": "arn:aws:aoss:region:account-id:collection/collection-id" } ] }

Zusätzlich zu der oben genannten Richtlinie müssen Sie Amazon Data Firehose auch so konfigurieren, dass Ihnen in einer Datenzugriffsrichtlinie die folgenden Mindestberechtigungen zugewiesen werden:

[ { "Rules":[ { "ResourceType":"index", "Resource":[ "index/target-collection/target-index" ], "Permission":[ "aoss:WriteDocument", "aoss:UpdateIndex", "aoss:CreateIndex" ] } ], "Principal":[ "arn:aws:sts::account-id:assumed-role/firehose-delivery-role-name/*" ] } ]

Weitere Informationen zum Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

Gewähren Sie Firehose Zugriff auf ein OpenSearch serverloses Ziel in einem VPC

Wenn sich Ihre OpenSearch serverlose Sammlung in einem befindetVPC, stellen Sie sicher, dass Sie Amazon Data Firehose die im vorherigen Abschnitt beschriebenen Berechtigungen erteilen. Darüber hinaus müssen Sie Amazon Data Firehose die folgenden Berechtigungen erteilen, damit Amazon Data Firehose auf Ihre OpenSearch serverlosen Sammlungen zugreifen kann. VPC

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

  • ec2:DeleteNetworkInterface

Wichtig

Widerrufen Sie diese Berechtigungen nicht, nachdem Sie den Firehose-Stream erstellt haben. Wenn Sie diese Berechtigungen widerrufen, wird Ihr Firehose-Stream beeinträchtigt oder es werden keine Daten mehr an Ihre OpenSearch Dienstdomäne gesendet, wenn der Dienst versucht, eine Abfrage oder Aktualisierung durchzuführen. ENIs

Wichtig

Wenn Sie Subnetze für die private Übertragung von Daten an das Ziel angeben, stellen Sie sicherVPC, dass Sie über eine ausreichende Anzahl an freien IP-Adressen in den ausgewählten Subnetzen verfügen. Wenn in einem bestimmten Subnetz keine kostenlose IP-Adresse verfügbar ist, kann Firehose die Datenübermittlung nicht privat erstellen oder hinzufügen ENIsVPC, und die Übertragung wird beeinträchtigt oder schlägt fehl.

Wenn Sie Ihren Firehose-Stream erstellen oder aktualisieren, geben Sie eine Sicherheitsgruppe an, die Firehose verwenden soll, wenn es Daten an Ihre OpenSearch Serverless-Sammlung sendet. Sie können dieselbe Sicherheitsgruppe verwenden, die die OpenSearch Serverless-Sammlung verwendet, oder eine andere. Wenn Sie eine andere Sicherheitsgruppe angeben, stellen Sie sicher, dass diese ausgehenden HTTPS Datenverkehr zur Sicherheitsgruppe der OpenSearch Serverless Collection zulässt. Stellen Sie außerdem sicher, dass die Sicherheitsgruppe der OpenSearch Serverless Collection HTTPS Datenverkehr von der Sicherheitsgruppe zulässt, die Sie bei der Konfiguration Ihres Firehose-Streams angegeben haben. Wenn Sie dieselbe Sicherheitsgruppe sowohl für Ihren Firehose-Stream als auch für die OpenSearch Serverless-Sammlung verwenden, stellen Sie sicher, dass die Sicherheitsgruppenregel für eingehenden Datenverkehr zulässt. HTTPS Weitere Informationen zu Sicherheitsgruppenregeln finden Sie unter Sicherheitsgruppenregeln in der VPC Amazon-Dokumentation.

Firehose Zugriff auf ein Splunk-Ziel gewähren

Wenn Sie ein Splunk-Ziel verwenden, liefert Amazon Data Firehose Daten an Ihren Splunk HTTP Event Collector () -Endpunkt. HEC Außerdem werden diese Daten in dem von Ihnen angegebenen Amazon S3 S3-Bucket gesichert, und Sie können optional einen verwenden AWS KMS Schlüssel, den Sie für die serverseitige Amazon S3 S3-Verschlüsselung besitzen. Wenn die Fehlerprotokollierung aktiviert ist, sendet Firehose Datenübermittlungsfehler an Ihre CloudWatch Protokollstreams. Sie können auch verwenden AWS Lambda für die Datentransformation.

Wenn Sie eine verwenden AWS Load Balancer, stellen Sie sicher, dass es sich um einen Classic Load Balancer oder einen Application Load Balancer handelt. Aktivieren Sie außerdem dauerbasierte Sticky-Sitzungen mit deaktiviertem Cookie-Ablauf für Classic Load Balancer und mit maximaler Ablaufzeit (7 Tage) für Application Load Balancer. Informationen dazu finden Sie unter Duration-Based Session Stickiness für Classic Load Balancer oder einen Application Load Balancer.

Sie müssen eine IAM Rolle haben, wenn Sie einen Firehose erstellen. Firehose übernimmt diese IAM Rolle und erhält Zugriff auf den angegebenen Bucket, den Schlüssel, die CloudWatch Protokollgruppe und die Streams.

Verwenden Sie die folgende Zugriffsrichtlinie, um Amazon Data Firehose den Zugriff auf Ihren S3-Bucket zu ermöglichen. Wenn Sie den S3-Bucket nicht besitzen, fügen Sie s3:PutObjectAcl ihn der Liste der Amazon S3 S3-Aktionen hinzu, wodurch der Bucket-Besitzer vollen Zugriff auf die von Amazon Data Firehose bereitgestellten Objekte erhält. Diese Richtlinie gewährt Amazon Data Firehose auch Zugriff auf die CloudWatch Fehlerprotokollierung und auf AWS Lambda für die Datentransformation. Die Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen. Amazon Data Firehose verwendet keinen Zugriff IAM auf Splunk. Für den Zugriff auf Splunk wird Ihr Token verwendet. HEC

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Weitere Informationen zum Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

Zugriff auf Splunk in VPC

Wenn sich Ihre Splunk-Plattform in einem befindetVPC, muss sie mit einer öffentlichen IP-Adresse öffentlich zugänglich sein. Gewähren Sie Amazon Data Firehose außerdem Zugriff auf Ihre Splunk-Plattform, indem Sie die Amazon Data Firehose-IP-Adressen entsperren. Amazon Data Firehose verwendet derzeit die folgenden CIDR Blöcke.

Region CIDRBlöcke
US East (Ohio)

18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27\

USA Ost (Nord-Virginia) 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26
USA West (Nordkalifornien) 13.57.180.0/26
USA West (Oregon) 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27
AWS GovCloud (US-Ost) 18.253.138.192/26
AWS GovCloud (US-West) 52.61.204.192/26
Asien-Pazifik (Hongkong) 18.162.221.64/26
Asien-Pazifik (Mumbai) 13.232.67.64/26
Asia Pacific (Seoul) 13.209.71.0/26
Asien-Pazifik (Singapur) 13.229.187.128/26
Asien-Pazifik (Sydney) 13.211.12.0/26
Asien-Pazifik (Tokio) 13.230.21.0/27, 13.230.21.32/27
Canada (Central) 35.183.92.64/26
Kanada West (Calgary) 40.176.98.128/26
Europe (Frankfurt) 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27
Europa (Irland) 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27
Europe (London) 18.130.91.0/26
Europe (Paris) 35.180.112.0/26
Europe (Stockholm) 13.53.191.0/26
Middle East (Bahrain) 15.185.91.64/26
Südamerika (São Paulo) 18.228.1.192/26
Europa (Milan) 15.161.135.192/26
Afrika (Kapstadt) 13.244.165.128/26
Asien-Pazifik (Osaka) 13.208.217.0/26
China (Peking) 52.81.151.64/26
China (Ningxia) 161.189.23.128/26
Asien-Pazifik (Jakarta) 108.136.221.128/26
Naher Osten () UAE 3.28.159.64/26
Israel (Tel Aviv) 51.16.102.64/26
Europa (Zürich) 16.62.183.64/26
Asien-Pazifik (Hyderabad) 18.60.192.192/26
Asien-Pazifik (Melbourne) 16.50.161.192/26
Asien-Pazifik (Malaysia) 43.216.44.192/26

Mit Amazon Data VPC Firehose Flow-Logs in Splunk aufnehmen

Weitere Informationen darüber, wie Sie ein VPC Flow-Log-Abonnement erstellen, auf Firehose veröffentlichen und die VPC Flow-Logs an ein unterstütztes Ziel senden, finden Sie unter VPCFlow-Logs in Splunk mit Amazon Data Firehose aufnehmen.

Zugreifen auf Snowflake oder Endpoint HTTP

Es gibt keine Teilmenge von AWSSpezifische IP-Adressbereiche für Amazon Data Firehose, wenn es sich bei dem Ziel um HTTP Endpoint- oder öffentliche Snowflake-Cluster handelt.

Um Firehose zu einer Zulassungsliste für öffentliche Snowflake-Cluster oder zu Ihren öffentlichen Clustern HTTP oder HTTPS Endpunkten hinzuzufügen, fügen Sie alle aktuellen AWS IP-Adressbereiche für Ihre Eingangsregeln.

Anmerkung

Benachrichtigungen stammen nicht immer von IP-Adressen derselben AWS Region als zugeordnetes Thema. Sie müssen die einschließen AWS IP-Adressbereich für alle Regionen.

Firehose Zugriff auf ein Snowflake-Ziel gewähren

Wenn Sie Snowflake als Ziel verwenden, übermittelt Firehose Daten über Ihr Snowflake-Konto an ein Snowflake-Konto. URL Außerdem werden Fehlerdaten in dem von Ihnen angegebenen Amazon Simple Storage Service-Bucket gesichert, und Sie können optional eine AWS Key Management Service Schlüssel, den Sie für die serverseitige Amazon S3 S3-Verschlüsselung besitzen. Wenn die Fehlerprotokollierung aktiviert ist, sendet Firehose Datenübermittlungsfehler an Ihre CloudWatch Logs-Streams.

Sie müssen über eine IAM Rolle verfügen, bevor Sie einen Firehose-Stream erstellen können. Firehose übernimmt diese IAM Rolle und erhält Zugriff auf den angegebenen Bucket, den Schlüssel und die CloudWatch Logs-Gruppe und die Streams. Verwenden Sie die folgende Zugriffsrichtlinie, damit Firehose auf Ihren S3-Bucket zugreifen kann. Wenn Sie den S3-Bucket nicht besitzen, fügen Sie s3:PutObjectAcl ihn der Liste der Amazon Simple Storage Service-Aktionen hinzu, wodurch der Bucket-Besitzer vollen Zugriff auf die von Firehose gelieferten Objekte erhält. Diese Richtlinie gewährt Firehose auch Zugriff auf die CloudWatch Fehlerprotokollierung. Die Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen. Firehose verwendet keinen Zugriff IAM auf Snowflake. Für den Zugriff auf Snowflake werden die URL Ihres Snowflake-Kontos und die PrivateLink Vpce-ID im Fall eines privaten Clusters verwendet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] } ] }

Weitere Informationen zum Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

Zugreifen auf Snowflake in VPC

Wenn Ihr Snowflake-Cluster für private Links aktiviert ist, verwendet Firehose VPC Endpoints, um Daten an Ihren privaten Cluster zu übermitteln, ohne das öffentliche Internet nutzen zu müssen. Erstellen Sie dazu Snowflake-Netzwerkregeln, um den Zugriff aus den folgenden Quellen für Folgendes zu ermöglichen AwsVpceIds AWS-Region Ihr Cluster ist drin. Weitere Informationen finden Sie unter Netzwerkregel erstellen im Snowflake-Benutzerhandbuch.

VPCDie zu verwendenden Endpunkt-IDs basieren auf den Regionen, in denen sich Ihr Cluster befindet
AWS-Region VPCE IDs
USA Ost (Ohio)

vpce-0d96cafcd96a50aeb

vpce-0cec34343d48f537b

USA Ost (Nord-Virginia)

vpce-0b4d7e8478e141ba8

vpce-0b75cd681fb507352

vpce-01c03e63820ec00d8

vpce-0c2cfc51dc2882422

vpce-06ca862f019e4e056

vpce-020cda0cfa63f8d1c

vpce-0b80504a1a783cd70

vpce-0289b9ff0b5259a96

vpce-0d7add8628bd69a12

vpce-02bfb5966cc59b2af

vpce-09e707674af878bf2

vpce-049b52e96cc1a2165

vpce-0bb6c7b7a8a86cdbb

vpce-03b22d599f51e80f3

vpce-01d60dc60fc106fe1

vpce-0186d20a4b24ecbef

vpce-0533906401a36e416

vpce-05111fb13d396710e

vpce-0694613f4fbd6f514

vpce-09b21cb25fe4cc4f4

vpce-06029c3550e4d2399

vpce-00961862a21b033da

vpce-01620b9ae33273587

vpce-078cf4ec226880ac9

vpce-0d711bf076ce56381

vpce-066b7e13cbfca6f6e

vpce-0674541252d9ccc26

vpce-03540b88dedb4b000

vpce-0b1828e79ad394b95

vpce-0dc0e6f001fb1a60d

vpce-0d8f82e71a244098a

vpce-00e374d9e3f1af5ce

vpce-0c1e3d6631ddb442f

USA West (Oregon)

vpce-0f60f72da4cd1e4e7

vpce-0c60d21eb8b1669fd

vpce-01c4e3e29afdafbef

vpce-0cc6bf2a88da139de

vpce-0797e08e169e50662

vpce-033cbe480381b5c0e

vpce-00debbdd8f9eb10a5

vpce-08ec2f386c809e889

vpce-0856d14310857b545

Europa (Frankfurt)

vpce-068dbb7d71c9460fb

vpce-0a7a7f095942d4ec9

Europa (Irland)

vpce-06857e59c005a6276

vpce-04390f4f8778b75f2

vpce-011fd2b1f0aa172fd

Asien-Pazifik (Tokio)

vpce-06369e5258144e68a

vpce-0f2363cdb8926fbe8

Asien-Pazifik (Singapur)

vpce-049cd46cce7a12d52

vpce-0e8965a1a4bdb8941

Asien-Pazifik (Seoul)

vpce-0aa444d9001e1faa1

vpce-04a49d4dcfd02b884

Asien-Pazifik (Sydney)

vpce-048a60a182c52be63

vpce-03c19949787fd1859

Asien-Pazifik (Mumbai)

vpce-0d68cb822f6f0db68

vpce-0517d32692ffcbde2

Europa (London)

vpce-0fd1874a0ba3b9374

vpce-08091b1a85e206029

Südamerika (São Paulo)

vpce-065169b8144e4f12e

vpce-0493699f0e5762d63

Kanada (Zentral)

vpce-07e6ed81689d5271f

vpce-0f53239730541394c

Europa (Paris)

vpce-09419680077e6488a

vpce-0ea81ba2c08140c14

Asien-Pazifik (Osaka)

vpce-0a9f003e6a7e38c05

vpce-02886510b897b1c5a

Europa (Stockholm)

vpce-0d96410833219025a

vpce-060a32f9a75ba969f

Asien-Pazifik (Jakarta)

vpce-00add4b9a25e5c649

vpce-004ae2de34338a856

Firehose Zugriff auf ein HTTP Endpunktziel gewähren

Sie können Amazon Data Firehose verwenden, um Daten an jedes HTTP Endpunktziel zu liefern. Amazon Data Firehose sichert diese Daten auch in dem von Ihnen angegebenen Amazon S3 S3-Bucket, und Sie können optional einen verwenden AWS KMS Schlüssel, den Sie für die serverseitige Amazon S3 S3-Verschlüsselung besitzen. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollstreams. Sie können auch verwenden AWS Lambda für die Datentransformation.

Sie müssen eine IAM Rolle haben, wenn Sie einen Firehose-Stream erstellen. Amazon Data Firehose übernimmt diese IAM Rolle und erhält Zugriff auf den angegebenen Bucket, den Schlüssel, die CloudWatch Protokollgruppe und die Streams.

Verwenden Sie die folgende Zugriffsrichtlinie, damit Amazon Data Firehose auf den S3-Bucket zugreifen kann, den Sie für die Datensicherung angegeben haben. Wenn Sie den S3-Bucket nicht besitzen, fügen Sie s3:PutObjectAcl ihn der Liste der Amazon S3 S3-Aktionen hinzu, wodurch der Bucket-Besitzer vollen Zugriff auf die von Amazon Data Firehose bereitgestellten Objekte erhält. Diese Richtlinie gewährt Amazon Data Firehose auch Zugriff auf die CloudWatch Fehlerprotokollierung und auf AWS Lambda für die Datentransformation. Die Richtlinie enthält auch eine Erklärung, die den Zugriff auf Amazon Kinesis Data Streams ermöglicht. Wenn Sie keine Kinesis Data Streams als Datenquelle verwenden, können Sie diese Erklärung entfernen.

Wichtig

Amazon Data Firehose verwendet nicht für den IAM Zugriff auf HTTP Endpunktziele unterstützter Drittanbieter wie Datadog, Dynatrace, MongoDB, New Relic LogicMonitor, Splunk oder Sumo Logic. Wenn Sie auf ein bestimmtes HTTP Endpunktziel zugreifen möchten, das einem unterstützten Drittanbieter gehört, wenden Sie sich an diesen Dienstanbieter, um den API Schlüssel oder den Zugriffsschlüssel, der für die Datenlieferung an diesen Service erforderlich ist, von Amazon Data Firehose zu erhalten.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

Für weitere Informationen über das Zulassen anderer AWS Dienste für den Zugriff auf Ihre AWS Ressourcen, siehe Erstellen einer Rolle zum Delegieren von Berechtigungen an ein AWS Service im IAMBenutzerhandbuch.

Wichtig

Derzeit NOT unterstützt Amazon Data Firehose die Datenlieferung an HTTP Endpunkte in a. VPC

Kontoübergreifender Versand von Amazon MSK

Wenn Sie einen Firehose-Stream aus Ihrem Firehose-Konto (z. B. Konto B) erstellen und Ihre Quelle ein MSK Cluster in einem anderen ist AWS Konto (Konto A), Sie müssen über die folgenden Konfigurationen verfügen.

Konto A:

  1. Wählen Sie in der MSK Amazon-Konsole den bereitgestellten Cluster und dann Eigenschaften aus.

  2. Wählen Sie unter Netzwerkeinstellungen die Option Bearbeiten und aktivieren Sie VPCMultikonnektivität.

  3. Wählen Sie unter Sicherheitseinstellungen die Option Clusterrichtlinie bearbeiten aus.

    1. Wenn für den Cluster noch keine Richtlinie konfiguriert ist, aktivieren Sie die Optionen Firehose-Dienstprinzipal einbeziehen und Kontoübergreifende Firehose-Zustellung für S3 aktivieren. Das Tool AWS Management Console generiert automatisch eine Richtlinie mit den entsprechenden Berechtigungen.

    2. Wenn für den Cluster bereits eine Richtlinie konfiguriert ist, fügen Sie der vorhandenen Richtlinie die folgenden Berechtigungen hinzu:

      { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20" // ARN of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::arn:role/mskaasTestDeliveryRole" }, "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*"//topic of the cluster }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::233450236687:role/mskaasTestDeliveryRole" }, "Action": "kafka-cluster:DescribeGroup", "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }
  4. Unter AWS Principal, geben Sie die Prinzipal-ID von Konto B ein.

  5. Geben Sie unter Thema das Apache Kafka-Thema an, aus dem Ihr Firehose-Stream Daten aufnehmen soll. Sobald der Firehose-Stream erstellt wurde, können Sie dieses Thema nicht mehr aktualisieren.

  6. Wählen Sie Save Changes (Änderungen speichern)

Konto B:

  1. Wählen Sie in der Firehose-Konsole die Option Create Firehose stream using Account B aus.

  2. Wählen Sie unter Quelle Amazon Managed Streaming für Apache Kafka.

  3. Geben Sie unter Quelleinstellungen für den Amazon Managed Streaming for Apache Kafka Kafka-Cluster den Wert ARN des MSK Amazon-Clusters in Konto A ein.

  4. Geben Sie unter Thema das Apache Kafka-Thema an, aus dem Ihr Firehose-Stream Daten aufnehmen soll. Sobald der Firehose-Stream erstellt wurde, können Sie dieses Thema nicht mehr aktualisieren.

  5. Geben Sie unter Delivery Stream Name den Namen für Ihren Firehose-Stream an.

Wenn Sie in Konto B Ihren Firehose-Stream erstellen, müssen Sie eine IAM Rolle haben (standardmäßig erstellt, wenn Sie den AWS Management Console), das dem Firehose-Stream „Lesezugriff“ auf den kontoübergreifenden MSK Amazon-Cluster für das konfigurierte Thema gewährt.

Folgendes wird von der konfiguriert AWS Management Console:

{ "Sid": "", "Effect": "Allow", "Action": [ "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2", "kafka-cluster:Connect" ], "Resource": "arn:aws:kafka:us-east-1:arn:cluster/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:ReadData" ], "Resource": "arn:aws:kafka:us-east-1:arn:topic/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/mskaas_test_topic" //topic of the cluster }, { "Sid": "", "Effect": "Allow", "Action": [ "kafka-cluster:DescribeGroup" ], "Resource": "arn:aws:kafka:us-east-1:arn:group/DO-NOT-TOUCH-mskaas-provisioned-privateLink/xxxxxxxxx-2f3a-462a-ba09-xxxxxxxxxx-20/*" //topic of the cluster }, }

Als Nächstes können Sie den optionalen Schritt der Konfiguration der Datensatztransformation und der Datensatzformatkonvertierung abschließen. Weitere Informationen finden Sie unter (Optional) Konfiguration der Datensatztransformation und Formatkonvertierung.

Kontoübergreifende Lieferung an ein Amazon S3 S3-Ziel

Sie können das AWS CLI oder Amazon Data Firehose, APIs um einen Firehose-Stream in einem zu erstellen AWS Konto mit einem Amazon S3 S3-Ziel in einem anderen Konto. Das folgende Verfahren zeigt ein Beispiel für die Konfiguration eines Firehose-Streams, der Konto A gehört, um Daten an einen Amazon S3 S3-Bucket zu liefern, der Konto B gehört.

  1. Erstellen Sie eine IAM Rolle unter Konto A mithilfe der unter Grant Firehose Access to a Amazon S3 Destination beschriebenen Schritte.

    Anmerkung

    Der in der Zugriffsrichtlinie angegebene Amazon-S3-Bucket befindet sich in diesem Fall jetzt im Besitz von Konto B. Stellen Sie sicher, dass s3:PutObjectAcl Sie der Liste der Amazon S3 S3-Aktionen in der Zugriffsrichtlinie hinzufügen, die Konto B vollen Zugriff auf die von Amazon Data Firehose gelieferten Objekte gewährt. Diese Genehmigung ist für die kontoübergreifende Lieferung erforderlich. Amazon Data Firehose setzt den Header x-amz-acl "" der Anfrage auf "bucket-owner-full-control“.

  2. Um den Zugriff von der zuvor erstellten IAM Rolle aus zu ermöglichen, erstellen Sie eine S3-Bucket-Richtlinie unter Konto B. Der folgende Code ist ein Beispiel für die Bucket-Richtlinie. Weitere Informationen dazu finden Sie unter Verwendung von Bucket-Richtlinien und Benutzerrichtlinien.

    { "Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" }, "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
  3. Erstellen Sie einen Firehose-Stream unter Konto A mit der IAM Rolle, die Sie in Schritt 1 erstellt haben.

Kontoübergreifende Lieferung an ein Serviceziel OpenSearch

Sie können das AWS CLI oder Amazon Data Firehose, APIs um einen Firehose-Stream in einem zu erstellen AWS Konto mit einem OpenSearch Serviceziel in einem anderen Konto. Das folgende Verfahren zeigt ein Beispiel dafür, wie Sie einen Firehose-Stream unter Konto A erstellen und ihn so konfigurieren können, dass Daten an ein OpenSearch Serviceziel gesendet werden, das Konto B gehört.

  1. Erstellen Sie eine IAM Rolle unter Konto A mithilfe der unter beschriebenen Schritte. Firehose Zugang zu einem öffentlichen OpenSearch Serviceziel gewähren

  2. Um den Zugriff von der IAM Rolle aus zu ermöglichen, die Sie im vorherigen Schritt erstellt haben, erstellen Sie eine OpenSearch Servicerichtlinie unter Konto B. Das Folgende JSON ist ein Beispiel.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/" ] } ] }
  3. Erstellen Sie einen Firehose-Stream unter Konto A mit der IAM Rolle, die Sie in Schritt 1 erstellt haben. Wenn Sie den Firehose-Stream erstellen, verwenden Sie den AWS CLI oder Amazon Data Firehose APIs und geben Sie das ClusterEndpoint Feld statt DomainARN für OpenSearch Service an.

Anmerkung

Um einen Firehose-Stream in einem zu erstellen AWS Für ein Konto mit einem OpenSearch Serviceziel in einem anderen Konto müssen Sie den AWS CLI oder das Amazon Data FirehoseAPIs. Sie können das nicht verwenden AWS Management Console um diese Art von kontenübergreifender Konfiguration zu erstellen.

Verwendung von Tags zur Zugriffssteuerung

Sie können das optionale Condition Element (oder den Condition Block) in einer IAM Richtlinie verwenden, um den Zugriff auf Amazon Data Firehose-Operationen auf der Grundlage von Tag-Schlüsseln und -Werten zu optimieren. In den folgenden Unterabschnitten wird beschrieben, wie Sie dies für die verschiedenen Amazon Data Firehose-Operationen tun können. Weitere Informationen zur Verwendung des Condition Elements und zu den Operatoren, die Sie darin verwenden können, finden Sie unter IAMJSONPolicy Elements: Condition.

CreateDeliveryStream

Verwenden Sie für die Operation CreateDeliveryStream den Bedingungsschlüssel aws:RequestTag. Im folgenden Beispiel stellen MyKey und MyValue den Schlüssel und den entsprechenden Wert für einen Tag dar. Weitere Informationen finden Sie unter Verstehen Sie die Grundlagen von Tags

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "firehose:CreateDeliveryStream", "firehose:TagDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } }] }

TagDeliveryStream

Verwenden Sie für die Operation TagDeliveryStream den Bedingungsschlüssel aws:TagKeys. Im folgenden Beispiel ist MyKey ein Beispiel-Tag-Schlüssel.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:TagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

UntagDeliveryStream

Verwenden Sie für die Operation UntagDeliveryStream den Bedingungsschlüssel aws:TagKeys. Im folgenden Beispiel ist MyKey ein Beispiel-Tag-Schlüssel.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" } } } ] }

ListDeliveryStreams

Sie können die Tag-basierte Zugriffskontrolle nicht mit ListDeliveryStreams verwenden.

Andere Operationen

Verwenden Sie für Firehose Firehose-Operationen außer CreateDeliveryStream TagDeliveryStreamUntagDeliveryStream,ListDeliveryStreams, und den aws:RequestTag Bedingungsschlüssel. Im folgenden Beispiel stellen MyKey und MyValue den Schlüssel und den entsprechenden Wert für einen Tag dar.

ListDeliveryStreams, verwenden Sie den firehose:ResourceTag Bedingungsschlüssel, um den Zugriff auf der Grundlage der Tags in diesem Firehose-Stream zu steuern.

Im folgenden Beispiel stellen MyKey und MyValue den Schlüssel und den entsprechenden Wert für einen Tag dar. Die Richtlinie würde nur für Data Firehose-Streams gelten, deren Tag MyKey mit einem Wert von MyValue benannt ist. Weitere Informationen zur Steuerung des Zugriffs auf der Grundlage von Ressourcen-Tags finden Sie unter Steuern des Zugriffs auf AWS Ressourcen mithilfe von Tags im IAMBenutzerhandbuch.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "firehose:ResourceTag/MyKey": "MyValue" } } } ] }