Création d'une intégration de source de données Amazon S3 dans OpenSearch Service - 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.

Création d'une intégration de source de données Amazon S3 dans OpenSearch Service

Vous pouvez créer une nouvelle source de données à requête directe Amazon S3 pour OpenSearch Service via l'API AWS Management Console ou l'API. Chaque nouvelle source de données utilise le AWS Glue Data Catalog pour gérer les tables qui représentent les compartiments Amazon S3.

Prérequis

Avant de commencer, assurez-vous de consulter la documentation suivante :

Avant de créer une source de données, vous devez disposer des ressources suivantes Compte AWS :

  • Un OpenSearch domaine doté de la version 2.13 ou ultérieure. Il s'agit de la base de la configuration de l'intégration directe des requêtes. Pour savoir comment configurer cette configuration, consultez Création de domaines OpenSearch de service.

  • Un ou plusieurs compartiments S3. Vous devez spécifier les compartiments contenant les données que vous souhaitez interroger, ainsi qu'un compartiment dans lequel stocker les points de contrôle de votre requête. Pour plus d'informations sur la façon de créer un compartiment S3, consultez Création d'un compartiment dans le guide de l'utilisateur Amazon S3.

  • (Facultatif) Une ou plusieurs AWS Glue tables.Pour interroger des données sur Amazon S3, vous devez configurer des tables AWS Glue Data Catalog pour pointer vers les données S3. Vous devez créer les tables à l'aide de OpenSearch Query Workbench. Les tables Hive existantes ne sont pas compatibles.

    Si c'est la première fois que vous configurez une source de données Amazon S3, vous devez créer une source de données d'administration pour configurer toutes vos AWS Glue Data Catalog tables. Vous pouvez le faire en installant OpenSearch out-of-the-box des intégrations ou en utilisant OpenSearch Query Workbench pour créer des tables SQL personnalisées pour des cas d'utilisation avancés. Pour des exemples sur la création de tables pour VPC et de journaux AWS WAF, consultez la documentation sur le GitHub VPC, et. CloudTrail CloudTrailAWS WAF Après avoir créé vos tables, vous pouvez créer de nouvelles sources de données Amazon S3 et restreindre l'accès à un nombre limité de tables.

  • (Facultatif) Rôle IAM créé manuellement.Vous pouvez utiliser ce rôle pour gérer l'accès à votre source de données. Vous pouvez également demander à OpenSearch Service de créer automatiquement un rôle pour vous avec les autorisations requises. Si vous choisissez d'utiliser un rôle IAM créé manuellement, suivez les instructions figurant dansAutorisations requises pour les rôles IAM créés manuellement.

Procédure

Vous pouvez configurer une source de données à requête directe sur un domaine à l'aide de l'API AWS Management Console ou du OpenSearch service.

  1. Accédez à la console Amazon OpenSearch Service à l'adressehttps://console.aws.amazon.com/aos/.

  2. Dans le volet de navigation de gauche, choisissez Domains (Domaines).

  3. Sélectionnez le domaine pour lequel vous souhaitez configurer une nouvelle source de données. Cette action ouvre la page des détails du domaine.

  4. Cliquez sur l'onglet Connexions sous les détails généraux du domaine et recherchez la section Requête directe.

  5. Choisissez Configurer la source de données.

  6. Saisissez un nom et une description facultative pour votre nouvelle source de données.

  7. Choisissez Amazon S3 avec AWS Glue Data Catalog.

  8. Dans les paramètres d'accès aux autorisations IAM, choisissez le mode de gestion de l'accès.

    1. Si vous souhaitez créer automatiquement un rôle pour cette source de données, procédez comme suit :

      1. Sélectionnez Créer un nouveau rôle.

      2. Saisissez un nom pour le rôle IAM.

      3. Sélectionnez un ou plusieurs compartiments S3 contenant les données que vous souhaitez interroger.

      4. Sélectionnez un compartiment S3 de points de contrôle dans lequel stocker les points de contrôle des requêtes.

      5. Sélectionnez une ou plusieurs AWS Glue bases de données ou tables pour définir les données qui peuvent être consultées. Si les tables n'ont pas encore été créées, donnez accès à la base de données par défaut.

    2. Si vous souhaitez utiliser un rôle que vous gérez vous-même, procédez comme suit :

      1. Sélectionnez Utiliser un rôle existant.

      2. Choisissez un rôle existant dans le menu déroulant.

    Note

    Lorsque vous utilisez votre propre rôle, vous devez vous assurer qu'il dispose de toutes les autorisations nécessaires en joignant les politiques requises depuis la console IAM. Pour plus d'informations, consultez l'exemple de politique dansAutorisations requises pour les rôles IAM créés manuellement.

  9. Choisissez Configurer. Cela ouvre l'écran des détails de la source de données avec une URL de tableau de OpenSearch bord. Vous pouvez accéder à cette URL pour effectuer les étapes suivantes.

Utilisez l'opération AddDataSourceAPI pour créer une nouvelle source de données dans votre domaine.

POST https://es.region.amazonaws.com/2021-01-01/opensearch/domain/domain-name/dataSource { "DataSourceType": { "S3GlueDataCatalog": { "RoleArn": "arn:aws:iam::account-id:role/role-name" } } "Description": "data-source-description", "Name": "my-data-source" }

Étapes suivantes

Visitez les OpenSearch tableaux de bord

Une fois que vous avez créé une source de données, OpenSearch Service vous fournit un lien vers OpenSearch les tableaux de bord. Vous pouvez l'utiliser pour configurer le contrôle d'accès, définir des tables, installer out-of-the-box des intégrations et interroger vos données.

Pour de plus amples informations, veuillez consulter Configuration et interrogation d'une source de données S3 dans OpenSearch les tableaux de bord.

Cartographier le AWS Glue Data Catalog rôle

Si vous avez activé le contrôle d'accès détaillé après avoir créé une source de données, vous devez associer les utilisateurs non administrateurs à un rôle IAM disposant d'un AWS Glue Data Catalog accès afin d'exécuter des requêtes directes. Pour créer manuellement un glue_access rôle principal que vous pouvez associer au rôle IAM, procédez comme suit :

Note

Les index sont utilisés pour toutes les requêtes portant sur la source de données. Un utilisateur disposant d'un accès en lecture à l'index des requêtes pour une source de données donnée peut lire toutes les requêtes relatives à cette source de données. Un utilisateur disposant d'un accès en lecture à l'index des résultats peut lire les résultats de toutes les requêtes portant sur cette source de données.

  1. Dans le menu principal OpenSearch des tableaux de bord, sélectionnez Sécurité, Rôles et Créer des rôles.

  2. Nommez le rôle glue_access.

  3. Pour les autorisations du clusterindices:data/write/bulk*, sélectionnezindices:data/read/scroll,indices:data/read/scroll/clear.

  4. Dans Index, entrez les index suivants auxquels vous souhaitez accorder l'accès à l'utilisateur ayant le rôle :

    • .query_execution_request_<name of data source>

    • query_execution_result_<name of data source>

    • .async-query-scheduler

    • flint_*

  5. Pour les autorisations d'indexation, sélectionnezindices_all.

  6. Choisissez Créer.

  7. Choisissez Mapped users (Utilisateurs mappés), Manage mapping (Gérer le mappage).

  8. Sous Rôles principaux, ajoutez l'ARN du AWS Glue rôle qui a besoin d'une autorisation pour appeler votre domaine.

    arn:aws:iam::account-id:role/role-name
  9. Sélectionnez Carte et confirmez que le rôle apparaît sous Utilisateurs mappés.

Pour plus d'informations sur le mappage des rôles, consultezMappage des rôles aux utilisateurs.

Ressources supplémentaires

Autorisations requises pour les rôles IAM créés manuellement

Lorsque vous créez une source de données pour votre domaine, vous choisissez un rôle IAM pour gérer l'accès à vos données. Vous avez deux options :

  1. Créer un nouveau rôle IAM automatiquement

  2. Utilisation d'un rôle IAM existant que vous avez créé manuellement

Si vous utilisez un rôle créé manuellement, vous devez attacher les autorisations appropriées à ce rôle. Les autorisations doivent autoriser l'accès à la source de données spécifique et permettre au OpenSearch Service d'assumer le rôle. Cela est nécessaire pour que le OpenSearch Service puisse accéder à vos données et interagir avec celles-ci en toute sécurité.

L'exemple de politique suivant illustre les autorisations de moindre privilège requises pour créer et gérer une source de données. Si vous disposez d'autorisations plus larges, telles que s3:* ou la AdminstratorAccess politique, ces autorisations incluent les autorisations de moindre privilège dans l'exemple de politique.

Dans l'exemple de politique suivant, remplacez les placeholder text par vos propres informations.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"HttpActionsForOpenSearchDomain", "Effect":"Allow", "Action":"es:ESHttp*", "Resource":"arn:aws:es:region:account:domain/<domain_name>/*" }, { "Sid":"AmazonOpenSearchS3GlueDirectQueryReadAllS3Buckets", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"account" } }, "Resource":"*" }, { "Sid":"AmazonOpenSearchDirectQueryGlueCreateAccess", "Effect":"Allow", "Action":[ "glue:CreateDatabase", "glue:CreatePartition", "glue:CreateTable", "glue:BatchCreatePartition" ], "Resource":"*" }, { "Sid":"AmazonOpenSearchS3GlueDirectQueryModifyAllGlueResources", "Effect":"Allow", "Action":[ "glue:DeleteDatabase", "glue:DeletePartition", "glue:DeleteTable", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartition", "glue:GetPartitions", "glue:GetTable", "glue:GetTableVersions", "glue:GetTables", "glue:UpdateDatabase", "glue:UpdatePartition", "glue:UpdateTable", "glue:BatchGetPartition", "glue:BatchDeletePartition", "glue:BatchDeleteTable" ], "Resource":[ "arn:aws:glue:us-east-1:account:table/*", "arn:aws:glue:us-east-1:account:database/*", "arn:aws:glue:us-east-1:account:catalog", "arn:aws:es:region:account:domain/domain_name" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"account" } } }, { "Sid":"ReadAndWriteActionsForS3CheckpointBucket", "Effect":"Allow", "Action":[ "s3:ListMultipartUploadParts", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"account" } }, "Resource":[ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Pour prendre en charge les compartiments Amazon S3 dans différents comptes, vous devez inclure une condition dans la politique Amazon S3 et ajouter le compte approprié.

Dans les conditions d'exemple suivantes, remplacez les placeholder text par vos propres informations.

"Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" }

Le rôle doit également respecter la politique d'approbation suivante, qui spécifie l'ID cible.

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

Pour obtenir des instructions quant à la création du rôle, consultez Création d'un rôle à l'aide de politiques d'approbation personnalisées.

Si le contrôle d'accès détaillé est activé dans OpenSearch Service, un nouveau rôle de contrôle OpenSearch d'accès détaillé sera automatiquement créé pour votre source de données. Le nom du nouveau rôle de contrôle d'accès détaillé sera. AWS OpenSearchDirectQuery <name of data source>

Par défaut, le rôle a uniquement accès aux index de sources de données de requête directe. Bien que vous puissiez configurer le rôle pour limiter ou autoriser l'accès à votre source de données, il est recommandé de ne pas ajuster l'accès de ce rôle. Si vous supprimez la source de données, ce rôle sera supprimé. Cela supprimera l'accès de tous les autres utilisateurs s'ils sont mappés au rôle.