Accorder aux OpenSearch pipelines Amazon Ingestion l'accès aux domaines - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accorder aux OpenSearch pipelines Amazon Ingestion l'accès aux domaines

Un pipeline OpenSearch Amazon Ingestion a besoin d'une autorisation pour écrire dans le domaine de OpenSearch service configuré comme récepteur. Pour fournir un accès, vous configurez un rôle AWS Identity and Access Management (IAM) avec une politique d'autorisation restrictive qui limite l'accès au domaine auquel un pipeline envoie des données. Par exemple, vous souhaiterez peut-être limiter un pipeline d'ingestion au seul domaine et aux index nécessaires pour prendre en charge son cas d'utilisation.

Avant de spécifier le rôle dans la configuration de votre pipeline, vous devez le configurer avec une relation d'approbation appropriée, puis lui accorder l'accès au domaine dans le cadre de la politique d'accès au domaine.

Étape 1 : créer un rôle de pipeline

Le rôle que vous spécifiez dans le paramètre sts_role_arn d'une configuration de pipeline doit être associé à une politique d'autorisation lui permettant d'envoyer des données au récepteur de domaine. Il doit également avoir une relation de confiance permettant à OpenSearch Ingestion d'assumer le rôle. Pour savoir comment associer une politique à un rôle, consultez la section Ajout d'autorisations IAM d'identité dans le Guide de IAM l'utilisateur.

L'exemple de politique suivant illustre le moindre privilège que vous pouvez accorder dans le rôle sts_role_arn d'une configuration de pipeline pour qu'elle puisse écrire sur un seul domaine :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:*:your-account-id:domain/*" }, { "Effect": "Allow", "Action": "es:ESHttp*", "Resource": "arn:aws:es:*:your-account-id:domain/domain-name/*" } ] }

Si vous envisagez de réutiliser le rôle pour écrire dans plusieurs domaines, vous pouvez élargir la politique en remplaçant le nom de domaine par un caractère générique (*).

Le rôle doit avoir la relation de confiance suivante, ce qui permet à OpenSearch Ingestion d'assumer le rôle de pipeline :

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

En outre, nous vous recommandons d'ajouter les clés de aws:SourceArn condition aws:SourceAccount et les clés de condition à la politique afin de vous protéger contre le problème de confusion des adjoints. Le compte source est le propriétaire du pipeline.

Par exemple, vous pouvez ajouter la clé de condition suivante à la stratégie :

"Condition": { "StringEquals": { "aws:SourceAccount": "your-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:osis:region:your-account-id:pipeline/*" } }

Étape 2 : inclure le rôle de pipeline dans la politique d'accès au domaine

Pour qu'un pipeline puisse écrire des données dans un domaine, celui-ci doit disposer d'une politique d'accès au niveau du domaine qui autorise le rôle de pipeline sts_role_arn à y accéder.

L'exemple de politique d'accès au domaine suivant permet au rôle de pipeline nommépipeline-role, que vous avez créé à l'étape précédente, d'écrire des données dans le domaine nommé ingestion-domain :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::your-account-id:role/pipeline-role" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:region:your-account-id:domain/domain-name/*" } ] }

Étape 3 : Cartographier le rôle du pipeline (uniquement pour les domaines qui utilisent un contrôle d'accès précis)

Si votre domaine utilise un contrôle d'accès précis pour l'authentification, vous devez suivre des étapes supplémentaires pour permettre à votre pipeline d'accéder à un domaine. Les étapes varient en fonction de la configuration de votre domaine :

Scénario 1 : rôle principal et rôle de pipeline différents — Si vous utilisez un nom de ressource IAM Amazon (ARN) comme utilisateur principal et qu'il est différent du rôle de pipeline (sts_role_arn), vous devez mapper le rôle de pipeline au OpenSearch all_access rôle principal. Cela ajoute essentiellement le rôle de pipeline en tant qu'utilisateur principal supplémentaire. Pour plus d'informations, consultez la section Utilisateurs principaux supplémentaires.

Scénario 2 : utilisateur principal dans la base de données utilisateur interne — Si votre domaine utilise un utilisateur principal dans la base de données utilisateur interne et une authentification de HTTP base pour les OpenSearch tableaux de bord, vous ne pouvez pas transmettre le nom d'utilisateur et le mot de passe principaux directement dans la configuration du pipeline. Au lieu de cela, vous devez mapper le rôle de pipeline (sts_role_arn) au rôle de OpenSearch all_access backend. Cela ajoute essentiellement le rôle de pipeline en tant qu'utilisateur principal supplémentaire. Pour plus d'informations, consultez la section Utilisateurs principaux supplémentaires.

Scénario 3 : Même rôle principal et rôle de pipeline (peu fréquent) — Si vous utilisez un en IAM ARN tant qu'utilisateur principal et que c'est le même ARN que celui que vous utilisez en tant que rôle de pipeline (sts_role_arn), vous n'avez aucune autre action à effectuer. Le pipeline dispose des autorisations requises pour écrire sur le domaine. Ce scénario est rare car la plupart des environnements utilisent un rôle d'administrateur ou un autre rôle en tant que rôle principal.

L'image suivante montre comment mapper le rôle de pipeline à un rôle de backend :

Backend roles section showing an AWSIAM role ARN for a pipeline role with a Remove option.

Étape 4 : Spécifier le rôle dans la configuration du pipeline

Pour créer correctement un pipeline, vous devez spécifier le rôle de pipeline que vous avez créé à l'étape 1 en tant que paramètre sts_role_arn dans la configuration de votre pipeline. Le pipeline assume ce rôle afin de signer les demandes adressées au récepteur de domaine de OpenSearch service.

Dans le sts_role_arn champ, spécifiez le rôle ARN du IAM pipeline :

version: "2" log-pipeline: source: http: path: "/${pipelineName}/logs" processor: - grok: match: log: [ "%{COMMONAPACHELOG}" ] sink: - opensearch: hosts: [ "https://search-domain-name.us-east-1.es.amazonaws.com" ] index: "my-index" aws: region: "region" sts_role_arn: "arn:aws:iam::your-account-id:role/pipeline-role"

Pour une référence complète des paramètres obligatoires et non pris en charge, consultezPlug-ins et options pris en charge pour les pipelines OpenSearch Amazon Ingestion.