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.
Rollen und Benutzer in Amazon OpenSearch Ingestion einrichten
Amazon OpenSearch Ingestion verwendet eine Vielzahl von Berechtigungsmodellen und IAM Rollen, um Quellanwendungen das Schreiben in Pipelines und Pipelines das Schreiben in Senken zu ermöglichen. Bevor Sie mit der Datenaufnahme beginnen können, müssen Sie je nach Anwendungsfall eine oder mehrere IAM Rollen mit spezifischen Berechtigungen erstellen.
Sie benötigen mindestens die folgenden Rollen, um eine erfolgreiche Pipeline einzurichten.
Name | Beschreibung |
---|---|
Rolle in der Verwaltung |
Jeder Prinzipal, der Pipelines verwaltet (in der Regel ein „Pipeline-Administrator“), benötigt Verwaltungszugriff, der Berechtigungen wie |
Rolle „Pipeline“ |
Die Pipeline-Rolle, die Sie in der YAML Konfiguration der Pipeline angeben, stellt die erforderlichen Berechtigungen für eine Pipeline bereit, um in die Domäne oder Sammelsenke zu schreiben und aus pullbasierten Quellen zu lesen. Weitere Informationen finden Sie unter den folgenden Themen: |
Rolle „Ingestion“ |
Die Rolle „Ingestion“ enthält die |
Die folgende Abbildung zeigt ein typisches Pipeline-Setup, bei dem eine Datenquelle wie Amazon S3 oder Fluent Bit in eine Pipeline in einem anderen Konto schreibt. In diesem Fall muss der Client die Rolle der Datenerfassung übernehmen, um auf die Pipeline zugreifen zu können. Weitere Informationen finden Sie unter Kontoübergreifende Erfassung.
Eine einfache Anleitung zur Einrichtung finden Sie unter. Tutorial: Daten mithilfe von Amazon OpenSearch Ingestion in eine Domain aufnehmen
Rolle in der Verwaltung
Zusätzlich zu den grundlegenden osis:*
Berechtigungen, die zum Erstellen und Ändern einer Pipeline erforderlich sind, benötigen Sie auch die iam:PassRole
Berechtigung für die Pipeline-Rollenressource. Jeder AWS-Service , der eine Rolle akzeptiert, muss diese Berechtigung verwenden. OpenSearch Ingestion übernimmt die Rolle jedes Mal, wenn Daten in eine Datensenke geschrieben werden müssen. Auf diese Weise können Administratoren sicherstellen, dass nur autorisierte Benutzer OpenSearch Ingestion mit einer Rolle konfigurieren können, die Berechtigungen gewährt. Weitere Informationen finden Sie unter Einem Benutzer Berechtigungen zur Übergabe einer Rolle an einen gewähren. AWS-Service
Wenn Sie die verwenden AWS Management Console (mithilfe von Blueprints und späterer Überprüfung Ihrer Pipeline), benötigen Sie die folgenden Berechtigungen, um eine Pipeline zu erstellen und zu aktualisieren:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:GetPipelineBlueprint", "osis:ListPipelineBlueprints", "osis:GetPipeline", "osis:ListPipelines", "osis:GetPipelineChangeProgress", "osis:ValidatePipeline", "osis:UpdatePipeline" ] }, { "Resource":[ "arn:aws:iam::
your-account-id
:role/pipeline-role
" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }
Wenn Sie die verwenden AWS CLI (ohne Ihre Pipeline vorab zu validieren oder Blueprints zu verwenden), benötigen Sie die folgenden Berechtigungen, um eine Pipeline zu erstellen und zu aktualisieren:
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:UpdatePipeline" ] }, { "Resource":[ "arn:aws:iam::
your-account-id
:role/pipeline-role
" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }
Rolle „Pipeline“
Eine Pipeline benötigt bestimmte Berechtigungen, um in ihre Senke schreiben zu können. Diese Berechtigungen hängen davon ab, ob es sich bei der Senke um eine OpenSearch Dienstdomäne oder eine OpenSearch serverlose Sammlung handelt.
Darüber hinaus benötigt eine Pipeline möglicherweise Berechtigungen zum Abrufen von Inhalten aus der Quellanwendung (wenn es sich bei der Quelle um ein Pull-basiertes Plug-in handelt) und Berechtigungen zum Schreiben in eine S3-Warteschlange mit unerlaubter Nachricht, sofern konfiguriert.
Themen
In eine Domainsenke schreiben
Eine OpenSearch Ingestion-Pipeline benötigt die Berechtigung, in eine OpenSearch Dienstdomäne zu schreiben, die als Senke konfiguriert ist. Zu diesen Berechtigungen gehört die Fähigkeit, die Domäne zu beschreiben und HTTP Anfragen an sie zu senden.
Um Ihrer Pipeline die erforderlichen Berechtigungen zum Schreiben in eine Senke zu gewähren, erstellen Sie zunächst eine AWS Identity and Access Management (IAM) -Rolle mit den erforderlichen Berechtigungen. Diese Berechtigungen sind für public und VPC Pipelines identisch. Geben Sie dann die Pipeline-Rolle in der Domänenzugriffsrichtlinie an, damit die Domäne Schreibanforderungen von der Pipeline annehmen kann.
Geben Sie abschließend die Rolle ARN als Wert der Option sts_role_arn in der Pipeline-Konfiguration an:
version: "2" source: http: ... processor: ... sink: - opensearch: ... aws: sts_role_arn: arn:aws:iam::
your-account-id
:role/pipeline-role
Anweisungen zum Ausführen der einzelnen Schritte finden Sie unter Zulassen des Zugriffs von Pipelines auf Domänen.
In eine Sammelsenke schreiben
Eine OpenSearch Ingestion-Pipeline benötigt die Berechtigung, in eine OpenSearch serverlose Sammlung zu schreiben, die als Senke konfiguriert ist. Zu diesen Berechtigungen gehört die Möglichkeit, die Sammlung zu beschreiben und HTTP Anfragen an sie zu senden.
Erstellen Sie zunächst eine IAM Rolle, die über die aoss:BatchGetCollection
Berechtigung für alle Ressourcen verfügt (*
). Nehmen Sie diese Rolle dann in eine Datenzugriffsrichtlinie auf und gewähren Sie ihr Berechtigungen zum Erstellen von Indizes, Aktualisieren von Indizes, Beschreiben von Indizes und Schreiben von Dokumenten innerhalb der Sammlung. Geben Sie abschließend die Rolle ARN als Wert der Option sts_role_arn in der Pipeline-Konfiguration an.
Anweisungen zum Ausführen der einzelnen Schritte finden Sie unter Zulassen des Zugriffs von Pipelines auf Sammlungen.
Schreiben in eine Warteschleife für unzustellbare Briefe
Wenn Sie Ihre Pipeline so konfigurieren, dass sie in eine Warteschlange mit unzustellbaren Buchstabensts_role_arn
Option in die Konfiguration aufnehmen. DLQ Die in dieser Rolle enthaltenen Berechtigungen ermöglichen der Pipeline den Zugriff auf den S3-Bucket, den Sie als Ziel für DLQ Ereignisse angeben.
Sie müssen dasselbe sts_role_arn
in allen Pipeline-Komponenten verwenden. Daher müssen Sie Ihrer Pipeline-Rolle, die DLQ Zugriff gewährt, eine separate Berechtigungsrichtlinie hinzufügen. Der Rolle muss mindestens die S3:PutObject
Aktion für die Bucket-Ressource gestattet werden:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "WriteToS3DLQ", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
my-dlq-bucket
/*" } ] }
Anschließend können Sie die Rolle in der DLQ Konfiguration der Pipeline angeben:
... sink: opensearch: dlq: s3: bucket: "my-dlq-bucket" key_path_prefix: "dlq-files" region: "us-west-2" sts_role_arn: "arn:aws:iam::
your-account-id
:role/pipeline-role
"
Rolle bei der Aufnahme
Alle Quell-Plugins, die OpenSearch Ingestion derzeit unterstützt, mit Ausnahme von S3, verwenden eine Push-basierte Architektur. Das bedeutet, dass die Quellanwendung die Daten in die Pipeline überträgt, anstatt dass die Pipeline die Daten aus der Quelle bezieht.
Daher müssen Sie Ihren Quellanwendungen die erforderlichen Berechtigungen zum Ingestieren von Daten in eine OpenSearch Ingestion-Pipeline gewähren. Der Rolle, die die Anfrage signiert, muss mindestens die Berechtigung für die osis:Ingest
Aktion erteilt werden, sodass sie Daten an eine Pipeline senden kann. Dieselben Berechtigungen sind für öffentliche Endpunkte und VPC Pipeline-Endpunkte erforderlich.
Die folgende Beispielrichtlinie ermöglicht es dem zugehörigen Principal, Daten in eine einzelne Pipeline mit dem Namen aufzunehmen: my-pipeline
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermitsWriteAccessToPipeline", "Effect": "Allow", "Action": "osis:Ingest", "Resource": "arn:aws:osis:
region
:your-account-id
:pipeline/pipeline-name
" } ] }
Weitere Informationen finden Sie unter Integration von Amazon OpenSearch Ingestion-Pipelines mit anderen Services und Anwendungen.
Kontoübergreifende Erfassung
Möglicherweise müssen Sie Daten von einem anderen Konto, z. B. einem Anwendungskonto AWS-Konto, in eine Pipeline aufnehmen. Um die kontoübergreifende Erfassung zu konfigurieren, definieren Sie eine Aufnahmerolle innerhalb desselben Kontos wie die Pipeline und richten Sie eine Vertrauensbeziehung zwischen der Aufnahmerolle und dem Anwendungskonto ein:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
external-account-id
:root" }, "Action": "sts:AssumeRole" }] }
Konfigurieren Sie dann Ihre Anwendung so, dass sie die Aufnahmerolle übernimmt. Das Anwendungskonto muss der Anwendungsrolle AssumeRoleBerechtigungen für die Aufnahmerolle im Pipeline-Konto gewähren.
Ausführliche Schritte und IAM Beispielrichtlinien finden Sie unter. Bereitstellung von kontenübergreifendem Zugriff auf Datenerfassung