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?.
Inhalt
Gewähren Sie Firehose Zugriff auf Ihren privaten Amazon MSK-Cluster
Gewähren Sie Firehose Zugriff auf AWS Glue für die Datenformatkonvertierung
Firehose Zugriff auf ein Apache Iceberg Tables-Ziel gewähren
Firehose Zugriff auf ein Amazon Redshift Redshift-Ziel gewähren
Firehose Zugang zu einem Ziel des öffentlichen OpenSearch Dienstes gewähren
Firehose Zugriff auf ein OpenSearch Serviceziel in einer VPC gewähren
Gewähren Sie Firehose Zugriff auf ein öffentliches OpenSearch serverloses Ziel
Gewähren Sie Firehose Zugriff auf ein OpenSearch serverloses Ziel in einer VPC
VPC-Flow-Logs mithilfe von Amazon Data Firehose in Splunk aufnehmen
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/
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.
-
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 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 .
-
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.
-
Nachdem Sie die Richtlinie erstellt haben, öffnen Sie die IAM-Konsole
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 für Use case (Anwendungsfall) die Option Kinesis Firehose aus.
-
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.
Themen
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) |
|
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) |
|
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
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:
Wählen Sie in der Amazon-MSK-Konsole den bereitgestellten Cluster und dann Properties (Eigenschaften) aus.
Wählen Sie unter Netzwerkeinstellungen die Option Bearbeiten aus und aktivieren Sie die Multi-VPC-Konnektivität.
Wählen Sie unter Sicherheitseinstellungen die Option Clusterrichtlinie bearbeiten aus.
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.
-
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 }, }
Geben Sie unter AWS Principal die Prinzipal-ID von Konto B ein.
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.
Wählen Sie Save Changes (Änderungen speichern)
Konto B:
Wählen Sie in der Firehose-Konsole die Option Firehose-Stream mithilfe von Account B erstellen.
Wählen Sie unter Quelle Amazon Managed Streaming für Apache Kafka.
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.
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.
-
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.
-
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“. -
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
/*" ] } ] } -
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.
-
Erstellen Sie eine IAM-Rolle unter Konto A mithilfe der unter Firehose Zugang zu einem Ziel des öffentlichen OpenSearch Dienstes gewähren beschriebenen Schritte.
-
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/" ] } ] } -
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 vonDomainARN
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
TagDeliveryStream
UntagDeliveryStream
,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" } } } ] }