Zugriffskontrolle mit Amazon Data Firehose - Amazon Data Firehose

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 AWS Konto gehört. Die Technologie zur Verwaltung all dieser Zugriffsformen ist AWS Identity and Access Management (IAM). Weitere Informationen zu IAM finden Sie unter Was ist IAM?.

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, für die Sie Zugriff gewähren, anpassen, indem Sie den Abschnitt Action ändern oder Zugriff auf alle Operationen mit "firehose:*" 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 MSK-Cluster

Wenn die Quelle Ihres Firehose-Streams ein privater Amazon MSK-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 Berechtigung zum Aufrufen des Amazon MSK-API-Vorgangs zu erteilen. CreateVpcConnection

Erlauben Sie Firehose, eine IAM-Rolle anzunehmen

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, wird die erforderliche Vertrauensrichtlinie an die Rolle AWS angehängt. 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, um sie durch Ihre AWS Konto-ID zu account-id ersetzen. 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 Konto ausgehen, diese IAM-Rolle übernehmen können. Weitere Informationen über das Vermeiden von unbefugter Verwendung von IAM-Rollen finden Sie unter Das Confused-Deputy-Problem im IAM-Benutzerhandbuch.

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 MSK-Cluster gewährt. 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 Amazon MSK-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 Datenformatkonvertierung

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 den ARN der Tabelle finden, finden Sie unter AWS Glue-Ressource angeben 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 IAM-Beispielen für Deserializer im Developer Guide. AWS Glue

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 einen AWS KMS Schlüssel, den Sie besitzen, für die Datenverschlüsselung verwenden. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose auch Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollgruppe und Ihre Streams. Sie benötigen eine IAM-Rolle, 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 Ihren S3-Bucket und AWS KMS -Schlüssel zugreifen kann. 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:::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: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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

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 Amazon S3 S3-Tabellen gewähren

Sie müssen über eine IAM-Rolle verfügen, bevor Sie einen Firehose-Stream erstellen können. 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.

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

Erstellen Sie eine Richtlinie und wählen Sie im Richtlinien-Editor JSON aus. Fügen Sie die folgende Inline-Richtlinie hinzu, die Amazon S3 S3-Berechtigungen wie Lese-/Schreibberechtigungen, Berechtigungen zum Aktualisieren der Tabelle im Datenkatalog und andere gewährt.

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

Die Richtlinie enthält Anweisungen, die den Zugriff auf Amazon Kinesis Data Streams, das Aufrufen von Lambda-Funktionen und den Zugriff auf Schlüssel ermöglichen. AWS KMS Wenn Sie keine dieser Ressourcen verwenden, können Sie die entsprechenden Anweisungen entfernen. 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 die Namen der Protokollgruppen und der Protokolldatenströme konfigurieren, um diese Option verwenden zu können. Informationen zu Protokollgruppen- und Protokollstream-Namen finden Sie unter (Amazon Data Firehose mithilfe von CloudWatch Protokollen überwachen.) (Link erforderlich).

Ersetzen Sie in den Inline-Richtlinien <error delivery bucket> durch Ihren Amazon S3 S3-Bucket-Namen aws-account-id und Region durch eine gültige AWS-Konto Nummer und Region der Ressource.

Nachdem Sie die Richtlinie erstellt haben, öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/und erstellen Sie eine IAM-Rolle mit dem AWS-ServiceEntitätstyp Vertrauenswürdig.

Wählen Sie für Service or use case (Service oder Anwendungsfall) die Option Kinesis aus. Wählen Sie als Anwendungsfall Kinesis Firehose aus.

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 an AWS Glue und S3-Buckets ausführt. Fügen Sie den Firehose-Dienstprinzipal zur Vertrauensrichtlinie der erstellten Rolle hinzu. Weitere Informationen finden Sie unter Erlauben Sie Firehose, eine IAM-Rolle anzunehmen.

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 erstellen können. 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 bei der an 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 im Richtlinien-Editor JSON 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 Anweisung, die den Zugriff auf Amazon Kinesis Data Streams, das Aufrufen von Lambda-Funktionen und den Zugriff auf KMS-Schlüssel ermöglicht. 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 amzn-s3-demo-bucket durch Ihren Amazon S3 S3-Bucket-Namen aws-account-id und Region durch eine gültige AWS-Konto Nummer und Region der Ressourcen.

    Anmerkung

    Diese Rolle erteilt Berechtigungen für 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 IAM-Konsole und erstellen Sie eine IAM-Rolle mit dem AWS-ServiceEntitätstyp Vertrauenswürdig.

  6. Wählen Sie für Service or use case (Service oder Anwendungsfall) die Option Kinesis aus. Wählen Sie für Use case (Anwendungsfall) die Option Kinesis Firehose aus.

  7. Wählen Sie auf der nächsten Seite die im vorherigen Schritt erstellte Richtlinie aus, die Sie dieser Rolle zuordnen möchten. 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 an AWS Glue und S3-Buckets ausführt.

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.

IAM-Rolle und Zugriffsrichtlinie

Wenn Sie ein Amazon Redshift Redshift-Ziel verwenden, liefert Amazon Data Firehose Daten an Ihren S3-Bucket als Zwischenstandort. Es kann optional einen AWS KMS Schlüssel, den Sie besitzen, für die Datenverschlüsselung verwenden. 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, um auf den angegebenen Bucket, den Schlüssel, die Protokollgruppe und die Streams zuzugreifen. CloudWatch Sie benötigen eine IAM-Rolle, wenn Sie einen Firehose-Stream erstellen.

Verwenden Sie die folgende Zugriffsrichtlinie, damit Amazon Data Firehose auf Ihren S3-Bucket und AWS KMS -Schlüssel zugreifen kann. 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

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

Wenn Ihr Amazon-Redshift-Cluster oder Ihre Arbeitsgruppe von Amazon Redshift Serverless sich in einer Virtual Private Cloud (VPC) befindet, muss er 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 CIDR-Blö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
Asien-Pazifik (Thailand) 43.208.112.96/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
Europa (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
Mexiko (Zentral) 78.12.207.32/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 (VAE) 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 Ziel des öffentlichen OpenSearch Dienstes 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, um auf die angegebene OpenSearch Service-Domain, den S3-Bucket, den AWS KMS Schlüssel und die CloudWatch Protokollgruppe und die Streams zuzugreifen. Sie benötigen eine IAM-Rolle, 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 Ihren AWS KMS Schlüssel 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 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

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 .

Firehose Zugriff auf ein OpenSearch Serviceziel in einer VPC gewähren

Wenn sich Ihre OpenSearch Service-Domain in einer VPC befindet, 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 VPC Ihrer OpenSearch Service-Domain zugreifen 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 Übertragung von Daten an das Ziel in einer privaten VPC angeben, stellen Sie sicher, dass Sie über genügend freie IP-Adressen in den ausgewählten Subnetzen verfügen. Wenn in einem bestimmten Subnetz keine kostenlose IP-Adresse verfügbar ist, kann Firehose die Datenlieferung in der privaten VPC nicht erstellen oder hinzufügen ENIs , und die Lieferung 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 sie ausgehenden HTTPS-Verkehr zur Sicherheitsgruppe der OpenSearch Dienstdomäne zulässt. Stellen Sie außerdem sicher, dass die Sicherheitsgruppe der OpenSearch Service-Domain HTTPS-Verkehr 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 HTTPS-Verkehr zulässt. Weitere Informationen zu den Regeln der Sicherheitsgruppe finden Sie unter Sicherheitsgruppenregeln im Amazon-VPC-Benutzerhandbuch.

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, um auf die angegebene OpenSearch serverlose Sammlung, den S3-Bucket, den AWS KMS Schlüssel und die CloudWatch Protokollgruppe und die angegebenen Streams zuzugreifen. Sie benötigen eine IAM-Rolle, 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 Ihren Schlüssel 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 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

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

Wenn sich Ihre OpenSearch serverlose Sammlung in einer VPC befindet, 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 VPC Ihrer OpenSearch serverlosen Sammlung zugreifen 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 Übertragung von Daten an das Ziel in einer privaten VPC angeben, stellen Sie sicher, dass Sie über genügend freie IP-Adressen in den ausgewählten Subnetzen verfügen. Wenn in einem bestimmten Subnetz keine kostenlose IP-Adresse verfügbar ist, kann Firehose die Datenlieferung in der privaten VPC nicht erstellen oder hinzufügen ENIs , und die Lieferung 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 sie ausgehenden HTTPS-Verkehr zur Sicherheitsgruppe der OpenSearch Serverless-Sammlung zulässt. Stellen Sie außerdem sicher, dass die Sicherheitsgruppe der OpenSearch Serverless Collection HTTPS-Verkehr 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 HTTPS-Verkehr zulässt. Weitere Informationen zu den Regeln der Sicherheitsgruppe finden Sie unter Sicherheitsgruppenregeln im Amazon-VPC-Benutzerhandbuch.

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 (HEC) -Endpunkt. Außerdem werden diese Daten in dem von Ihnen angegebenen Amazon S3 S3-Bucket gesichert, und Sie können optional einen AWS KMS Schlüssel, den Sie besitzen, für die serverseitige Amazon S3 S3-Verschlüsselung verwenden. Wenn die Fehlerprotokollierung aktiviert ist, sendet Firehose Datenübermittlungsfehler an Ihre CloudWatch Protokollstreams. Sie können es auch AWS Lambda für die Datentransformation verwenden.

Wenn Sie einen Load AWS Balancer verwenden, 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 über eine IAM-Rolle verfügen, wenn Sie einen Firehose erstellen. Firehose nimmt diese IAM-Rolle an 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 die AWS Lambda 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 IAM nicht für den Zugriff auf Splunk. Für den Zugriff auf Splunk, verwendet es Ihr HEC-Token.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

Zugreifen auf Splunk in VPC

Wenn sich Ihre Splunk-Plattform in einer VPC befindet, 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 CIDR-Blö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 (Thailand) 43.208.112.128/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
Europa (London) 18.130.91.0/26
Europa (Paris) 35.180.112.0/26
Europa (Spain) 18.100.194.0/26
Europe (Stockholm) 13.53.191.0/26
Middle East (Bahrain) 15.185.91.64/26
Mexiko (Zentral) 78.12.207.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 (VAE) 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

VPC-Flow-Logs mithilfe von Amazon Data Firehose in Splunk aufnehmen

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

Zugreifen auf Snowflake oder den HTTP-Endpunkt

Es gibt keine Untergruppe von AWS IP-Adressbereichen, die für Amazon Data Firehose spezifisch sind, wenn das Ziel ein HTTP-Endpunkt oder öffentliche Snowflake-Cluster ist.

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

Anmerkung

Benachrichtigungen stammen nicht immer von IP-Adressen in derselben AWS Region wie das zugehörige Thema. Sie müssen den AWS IP-Adressbereich für alle Regionen angeben.

Firehose Zugriff auf ein Snowflake-Ziel gewähren

Wenn Sie Snowflake als Ziel verwenden, übermittelt Firehose Daten über Ihre Snowflake-Konto-URL an ein Snowflake-Konto. Außerdem werden Fehlerdaten in dem von Ihnen angegebenen Amazon Simple Storage Service-Bucket gesichert, und Sie können optional einen AWS Key Management Service Schlüssel, den Sie besitzen, für die serverseitige Amazon S3 S3-Verschlüsselung verwenden. 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 nimmt diese IAM-Rolle an 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 IAM nicht, um auf Snowflake zuzugreifen. 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

Zugreifen auf Snowflake in VPC

Wenn Ihr Snowflake-Cluster für private Links aktiviert ist, verwendet Firehose zum Zeitpunkt der Erstellung eines privaten Links einen der folgenden VPC-Endpunkte, um Daten an Ihren privaten Cluster zu übermitteln, ohne das öffentliche Internet zu nutzen. Erstellen Sie dazu Snowflake-Netzwerkregeln, die den Zugriff von folgenden Quellen für den Cluster zulassen, in dem sich Ihr Cluster befindet. AwsVpceIds AWS-Region Weitere Informationen finden Sie unter Netzwerkregel erstellen im Snowflake-Benutzerhandbuch.

Zu verwendende VPC-Endpunkt-IDs basierend auf 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 beliebige 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 AWS KMS Schlüssel, den Sie besitzen, für die serverseitige Amazon S3 S3-Verschlüsselung verwenden. Wenn die Fehlerprotokollierung aktiviert ist, sendet Amazon Data Firehose Fehler bei der Datenübermittlung an Ihre CloudWatch Protokollstreams. Sie können es auch AWS Lambda für die Datentransformation verwenden.

Sie benötigen eine IAM-Rolle, 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 die AWS Lambda 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 IAM nicht für den 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 zu erhalten, der für die Datenlieferung an diesen Service von Amazon Data Firehose erforderlich ist.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "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:::amzn-s3-demo-bucket/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 darüber, wie Sie anderen AWS Diensten den Zugriff auf Ihre AWS Ressourcen ermöglichen, finden Sie unter Creating a Role to Delegate Permissions to an AWS Service im IAM-Benutzerhandbuch.

Wichtig

Derzeit unterstützt Amazon Data Firehose KEINE Datenlieferung an HTTP-Endpunkte in einer VPC.

Kontenübergreifender Versand von Amazon MSK

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

Konto A:

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

  2. Wählen Sie unter Netzwerkeinstellungen die Option Bearbeiten aus und aktivieren Sie die Multi-VPC-Konnektivitä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. Dadurch AWS Management Console wird automatisch eine Richtlinie mit den entsprechenden Berechtigungen generiert.

    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. Geben Sie unter AWS Principal 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 Firehose-Stream mithilfe von Account B erstellen.

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

  3. Geben Sie unter Quelleinstellungen für den Cluster von Amazon Managed Streaming für Apache Kafka den ARN des Amazon-MSK-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 Ihren Firehose-Stream erstellen, müssen Sie in Konto B über eine IAM-Rolle verfügen (standardmäßig erstellt, wenn Sie die verwenden AWS Management Console), die dem Firehose-Stream Lesezugriff auf den kontoübergreifenden Amazon MSK-Cluster für das konfigurierte Thema gewährt.

Folgendes wird von der AWS Management Console konfiguriert:

{ "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 die AWS CLI oder die Amazon Data Firehose verwenden, APIs um einen Firehose-Stream in einem AWS Konto mit einem Amazon S3 S3-Ziel in einem anderen Konto zu erstellen. 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 Zugriff von der zuvor erstellten IAM-Rolle zu gewähren, 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:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  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 die AWS CLI oder die Amazon Data Firehose verwenden APIs , um einen Firehose-Stream in einem AWS Konto mit einem OpenSearch Service-Ziel in einem anderen Konto zu erstellen. 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 Firehose Zugang zu einem Ziel des öffentlichen OpenSearch Dienstes gewähren beschriebenen Schritte.

  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 die AWS CLI oder die Amazon Data Firehose APIs und geben Sie das ClusterEndpoint Feld anstelle von DomainARN für OpenSearch Service an.

Anmerkung

Um einen Firehose-Stream in einem AWS Konto mit einem OpenSearch Service-Ziel in einem anderen Konto zu erstellen, müssen Sie Amazon Data Firehose AWS CLI oder Amazon Data APIs Firehose verwenden. 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 Elements Condition und der Operatoren, die Sie mit diesem verwenden können, finden Sie unter IAM-JSON-Richtlinienelemente: 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 IAM-Benutzerhandbuch.

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