Criação de uma integração de fonte de dados do Amazon S3 no Service OpenSearch - OpenSearch Serviço Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de uma integração de fonte de dados do Amazon S3 no Service OpenSearch

Você pode criar uma nova fonte de dados de consulta direta do Amazon S3 para o OpenSearch Serviço por meio da ou da Console de gerenciamento da AWS API. Cada nova fonte de dados usa o AWS Glue Data Catalog para gerenciar tabelas que representam os buckets do Amazon S3.

Pré-requisitos

Antes de começar, certifique-se de ter revisto a seguinte documentação:

Antes de criar uma fonte de dados, você deve ter os seguintes recursos em seu Conta da AWS:

  • Um OpenSearch domínio com a versão 2.13 ou posterior. Essa é a base para configurar a integração de consulta diretas. Para obter instruções para essa configuração, consulte Criação OpenSearch de domínios de serviço.

  • Um ou mais buckets do S3. Será necessário especificar os buckets que contêm os dados que você deseja consultar e um bucket para armazenar seus pontos de verificação de consulta. Para saber mais sobre como criar um bucket do S3, consulte Criar um bucket no Guia do usuário Amazon S3.

  • (Opcional) Uma ou mais AWS Glue tabelas.Para consultar dados no Amazon S3 é necessário que você tenha tabelas configuradas no AWS Glue Data Catalog que apontem para os dados do S3. Você deve criar as tabelas usando o OpenSearch Query Workbench. As tabelas do Hive existentes não são compatíveis.

    Se esta for a primeira vez que você configura uma fonte de dados do Amazon S3, deverá criar uma fonte de dados administrativa para configurar todas as tabelas do AWS Glue Data Catalog . Você pode fazer isso instalando OpenSearch out-of-the-box integrações ou usando o OpenSearch Query Workbench para criar tabelas SQL personalizadas para casos de uso avançados. Para ver exemplos sobre como criar tabelas para registros de VPC e AWS WAF, consulte a documentação sobre GitHub VPC, e. CloudTrail CloudTrailAWS WAF Depois de criar as tabelas, você pode criar novas fontes de dados do Amazon S3 e restringir o acesso a tabelas limitadas.

  • (Opcional) Um perfil do IAM criado manualmente.Você pode usar esse perfil para gerenciar o acesso à sua fonte de dados. Como alternativa, você pode fazer com que o OpenSearch Service crie uma função para você automaticamente com as permissões necessárias. Se você escolher usar um perfil do IAM criado manualmente, siga as orientações em Permissões necessárias para perfis do IAM criados manualmente.

Procedimento

Você pode configurar uma fonte de dados de consulta direta em um domínio com a API Console de gerenciamento da AWS ou a OpenSearch Service API.

  1. Navegue até o console do Amazon OpenSearch Service emhttps://console.aws.amazon.com/aos/.

  2. No painel de navegação à esquerda, selecione Domínios.

  3. Selecione o domínio para o qual configurar uma nova fonte de dados. Isso abre a página de detalhes do domínio.

  4. Escolha a guia Conexões abaixo dos detalhes gerais do domínio e localize a seção Consulta direta.

  5. Escolha Configurar fontes de dados.

  6. Insira um nome e uma descrição opcional para a nova fonte de dados.

  7. Escolha o Amazon S3 com. AWS Glue Data Catalog

  8. Em Configurações de permissão de acesso do IAM, escolha como gerenciar o acesso.

    1. Se quiser criar automaticamente um perfil para essa fonte de dados, siga estas etapas:

      1. Selecione Criar uma novo perfil.

      2. Insira um nome para a função do IAM.

      3. Selecione um ou mais buckets do S3 que contenham dados que você deseja consultar.

      4. Selecione um bucket do S3 de pontos de verificação para armazenar os pontos de verificação de consulta.

      5. Selecione um ou mais AWS Glue bancos de dados ou tabelas para definir quais dados podem ser consultados. Se as tabelas ainda não tiverem sido criadas, forneça acesso ao banco de dados padrão.

    2. Se quiser usar um perfil existente gerenciado por você, siga estas etapas:

      1. Selecione Usar perfil existente.

      2. Selecione um perfil existente no menu suspenso.

    nota

    Ao usar seu próprio perfil, confira se ele tem todas as permissões necessárias anexando as políticas necessárias com o console do IAM. Para saber mais, revise o exemplo de política em Permissões necessárias para perfis do IAM criados manualmente.

  9. Selecione Configurar. Isso abre a tela de detalhes da fonte de dados com uma URL dos OpenSearch painéis. Navegue até esse URL para concluir as próximas etapas.

Use a operação AddDataSourceda API para criar uma nova fonte de dados em seu domínio.

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" }

Próximas etapas

Visite os OpenSearch painéis

Depois de criar uma fonte de dados, o OpenSearch Service fornece um link de OpenSearch painéis. Você pode usar isso para configurar o controle de acesso, definir tabelas, instalar out-of-the-box integrações e consultar seus dados.

Para obter mais informações, consulte Configurando e consultando uma fonte de dados do S3 em painéis OpenSearch.

Mapeie a AWS Glue Data Catalog função

Se você ativou o controle de acesso refinado após criar uma fonte de dados, deverá mapear usuários não administradores para uma função do IAM com AWS Glue Data Catalog acesso para executar consultas diretas. Para criar manualmente um perfil do glue_access de backend que possa ser mapeado para o perfil do IAM, realize as seguintes etapas:

nota

Índices são usados para qualquer consulta na fonte de dados. Um usuário com acesso para leitura ao índice de solicitações de uma determinada fonte de dados pode ler todas as consultas nessa fonte. Um usuário com acesso para leitura ao índice de resultados pode ler os resultados de todas as consultas nessa fonte de dados.

  1. No menu principal em OpenSearch Painéis, escolha Segurança, Funções e Criar funções.

  2. Chame o perfil de glue_access.

  3. Para Permissões de cluster, selecione indices:data/write/bulk*, indices:data/read/scroll, indices:data/read/scroll/clear.

  4. Em Índice, insira os seguintes índices aos quais você deseja conceder acesso ao usuário com o perfil:

    • .query_execution_request_<name of data source>

    • query_execution_result_<name of data source>

    • .async-query-scheduler

    • flint_*

  5. Para Permissões de índice, selecione indices_all.

  6. Escolha Criar.

  7. Escolha Usuários mapeados e Gerenciar mapeamento.

  8. Em Perfis de backend, adicione o ARN do perfil do AWS Glue que precisa de permissão para chamar seu domínio.

    arn:aws:iam::account-id:role/role-name
  9. Selecione Mapa e confirme se o perfil aparece em Usuários mapeados.

Para saber mais sobre o mapeamento de perfis, consulte Mapear funções em usuários.

Recursos adicionais do

Permissões necessárias para perfis do IAM criados manualmente

Ao criar uma fonte de dados para o domínio, você escolhe um perfil do IAM para gerenciar o acesso aos dados. Você tem duas opções:

  1. Criar um novo perfil do IAM automaticamente

  2. Use um perfil do IAM existente que você criou manualmente

Se usar um perfil criado manualmente, você precisará anexar as permissões corretas a ele. As permissões devem permitir o acesso à fonte de dados específica e permitir que o OpenSearch Serviço assuma a função. Isso é necessário para que o OpenSearch Serviço possa acessar e interagir com seus dados com segurança.

O exemplo de política a seguir demonstra as permissões de privilégio mínimo necessárias para criar e gerenciar uma fonte de dados. Se você tiver permissões mais amplas, como s3:* ou a política AdminstratorAccess, essas permissões abrangem as permissões de privilégio mínimo na política de amostra.

No exemplo de política a seguir, placeholder text substitua o por suas próprias informações.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"HttpActionsForOpenSearchDomain", "Effect":"Allow", "Action":"es:ESHttp*", "Resource":"arn:aws:es:us-east-1:111122223333:domain/example.com/*" }, { "Sid":"AmazonOpenSearchS3GlueDirectQueryReadAllS3Buckets", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"111122223333" } }, "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:111122223333:table/*", "arn:aws:glue:us-east-1:111122223333:database/*", "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:es:us-east-1:111122223333:domain/domain_name" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"111122223333" } } }, { "Sid":"ReadAndWriteActionsForS3CheckpointBucket", "Effect":"Allow", "Action":[ "s3:ListMultipartUploadParts", "s3:DeleteObject", "s3:GetObject", "s3:PutObject", "s3:GetBucketLocation", "s3:ListBucket" ], "Condition":{ "StringEquals":{ "aws:ResourceAccount":"111122223333" } }, "Resource":[ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Para oferecer suporte a buckets do Amazon S3 em contas diferentes, você precisará incluir uma condição na política do Amazon S3 e adicionar a conta apropriada.

Na condição de amostra a seguir, placeholder text substitua o por suas próprias informações.

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

O perfil também deve ter a seguinte política de confiança, que especifica o ID de destino.

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

Para obter instruções sobre como criar o perfil, consulte Criar um perfil usando políticas de confiança personalizadas.

Se você tiver um controle de acesso refinado ativado no OpenSearch Serviço, uma nova função de controle de acesso OpenSearch refinado será criada automaticamente para sua fonte de dados. O nome da nova função de controle de acesso refinada será AWS OpenSearchDirectQuery <name of data source>.

Por padrão, a função tem acesso somente aos índices da fonte de dados de consulta direta. Embora você possa configurar a função para limitar ou conceder acesso à sua fonte de dados, é recomendável não ajustar o acesso dessa função. Se você excluir a fonte de dados, essa função será excluída. Isso removerá o acesso de outros usuários se eles estiverem mapeados para a função.