Configurar funções e usuários na Ingestão do Amazon 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á.

Configurar funções e usuários na Ingestão do Amazon OpenSearch

A Ingestão do Amazon OpenSearch usa uma variedade de modelos de permissões e perfis do IAM para permitir que os aplicativos de origem gravem em pipelines e para permitir que os pipelines gravem em coletores. Antes de começar a ingerir dados, você deve criar um ou mais perfis do IAM com permissões específicas com base no seu caso de uso.

No mínimo, você deve ter os seguintes perfis para configurar um pipeline bem-sucedido.

Nome Descrição
Perfil de gerenciamento

Qualquer entidade principal que esteja gerenciando pipelines (geralmente um “administrador de pipeline”) precisa de acesso de gerenciamento, que inclui permissões como osis:CreatePipeline e osis:UpdatePipeline. Essas permissões permitem que um usuário administre pipelines, mas não necessariamente grave dados neles.

Perfis do pipeline

O perfil do pipeline, que você especifica na configuração YAML do pipeline, fornece as permissões necessárias para que um pipeline grave no domínio ou no coletor de coleções e leia de fontes baseadas em pull. Para obter mais informações, consulte os tópicos a seguir.

Perfil de ingestão

O perfil de ingestão contém a permissão osis:Ingest para o recurso de pipeline. Essa permissão permite que fontes baseadas em push consumam dados em um pipeline.

A imagem a seguir demonstra uma configuração típica de pipeline, em que uma fonte de dados, como Amazon S3 ou Fluent Bit, está gravando em um pipeline em uma conta diferente. Nesse caso, o cliente precisa assumir o perfil de ingestão para acessar o pipeline. Para ter mais informações, consulte Ingestão entre contas.

Cross-account data ingestion pipeline showing client application, roles, and OpenSearch sink.

Para obter um guia de configuração simples, consulte Tutorial: ingestão de dados em um domínio usando a Ingestão do Amazon OpenSearch.

Perfil de gerenciamento

Além das osis:* permissões básicas necessárias para criar e modificar um pipeline, você também precisa da iam:PassRole permissão para o recurso de perfil do pipeline. Qualquer AWS service (Serviço da AWS) que aceite um perfil deve usar essa permissão. A Ingestão do OpenSearch assume o perfil sempre que necessário para gravar dados em um coletor. Isso ajuda os administradores a garantir que apenas usuários aprovados possam configurar a Ingestão do OpenSearch com uma função que concede permissões. Para obter mais informações, consulte Conceder a um usuário permissões para transmitir uma função a um AWS service (Serviço da AWS).

Se estiver usando o AWS Management Console (usando esquemas e depois verificando seu pipeline), você precisará das seguintes permissões para criar e atualizar um pipeline:

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

Se estiver usando o AWS CLI (sem pré-validar seu pipeline ou usando esquemas), você precisará das seguintes permissões para criar e atualizar um pipeline:

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

Perfis do pipeline

Um pipeline precisa de certas permissões para gravar no coletor. Essas permissões dependem se o coletor é um domínio do OpenSearch Service ou uma coleção OpenSearch de tecnologia sem servidor.

Além disso, um pipeline pode precisar de permissões para extrair do aplicativo de origem (se a fonte for um plug-in baseado em pull) e permissões para gravar em uma fila de mensagens não entregues do S3, se configurado.

Gravar em um coletor de domínios

Um pipeline de Ingestão do OpenSearch precisa de permissão para gravar em um domínio do OpenSearch Service que esteja configurado como seu coletor. Essas permissões incluem a capacidade de descrever o domínio e enviar solicitações HTTP para ele.

Para fornecer ao seu pipeline as permissões necessárias para gravar em um coletor, primeiro crie um perfil do AWS Identity and Access Management (IAM) com as permissões necessárias. Essas permissões são as mesmas para pipelines públicos e VPC. Em seguida, especifique o perfil do pipeline na política de acesso ao domínio para que o domínio possa aceitar solicitações de gravação do pipeline.

Por fim, especifique o ARN do perfil como o valor da opção sts_role_arn na configuração do pipeline:

version: "2" source: http: ... processor: ... sink: - opensearch: ... aws: sts_role_arn: arn:aws:iam::your-account-id:role/pipeline-role

Para obter instruções sobre como concluir cada uma dessas etapas, consulte Como permitir que os pipelines acessem domínios.

Gravação em um coletor de coleções

Um pipeline de Ingestão do OpenSearch precisa de permissão para gravar em uma coleção OpenSearch de tecnologia sem servidor que esteja configurada como seu coletor. Essas permissões incluem a capacidade de descrever a coleção e enviar solicitações HTTP para ela.

Primeiro, crie um perfil do IAM que tenha a permissão de aoss:BatchGetCollection para todos os recursos (*). Em seguida, inclua esse perfil em uma política de acesso a dados e forneça permissões para criar índices, atualizar índices, descrever índices e escrever documentos na coleção. Por fim, especifique o ARN do perfil como o valor da opção sts_role_arn na configuração do pipeline.

Para obter instruções sobre como concluir cada uma dessas etapas, consulte Como permitir que os pipelines acessem as coleções.

Gravar em uma fila de mensagens não entregues

Se configurar seu pipeline para gravar em uma fila de mensagens não entregues (DLQ), você deverá incluir a opção sts_role_arn na configuração da DLQ. As permissões incluídas nesse perfil permitem que o pipeline acesse o bucket do S3 que você especifica como destino para eventos do DLQ.

Você deve usar o mesmo sts_role_arn em todos os componentes do pipeline. Portanto, você deve anexar uma política de permissões separada ao seu perfil de pipeline que forneça acesso ao DLQ. No mínimo, o perfil deve ter permissão para a ação S3:PutObject no recurso do bucket:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "WriteToS3DLQ", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-dlq-bucket/*" } ] }

Em seguida, você pode especificar o perfil na configuração do DLQ do pipeline:

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

Perfil de ingestão

Todos os plug-ins de origem com os quais a Ingestão do OpenSearch são compatíveis atualmente, com exceção do S3, usam uma arquitetura baseada em push. Isso significa que o aplicativo de origem envia os dados para o pipeline, em vez de o pipeline extrair os dados da fonte.

Portanto, você deve conceder aos aplicativos de origem as permissões necessárias para ingerir dados em um pipeline de Ingestão do OpenSearch. No mínimo, o perfil que assina a solicitação deve receber permissão para a ação osis:Ingest, o que permite enviar dados para um pipeline. As mesmas permissões são necessárias para endpoints de pipelines públicos e VPC.

O exemplo de política a seguir permite que a entidade principal associada consuma dados em um único pipeline my-pipeline chamado:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermitsWriteAccessToPipeline", "Effect": "Allow", "Action": "osis:Ingest", "Resource": "arn:aws:osis:region:your-account-id:pipeline/pipeline-name" } ] }

Para ter mais informações, consulte Integração dos pipelines OpenSearch de ingestão da Amazon com outros serviços e aplicativos.

Ingestão entre contas

Talvez seja necessário ingerir dados em um pipeline de outra Conta da AWS, como uma conta de aplicativo. Para configurar a ingestão entre contas, defina uma perfil de ingestão na mesma conta do pipeline e estabeleça uma relação de confiança entre o perfil de ingestão e a conta do aplicativo:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::external-account-id:root" }, "Action": "sts:AssumeRole" }] }

Em seguida, configure seu aplicativo para assumir o perfil de ingestão. A conta do aplicativo deve conceder ao perfil do aplicativo as permissões AssumeRole para o perfil de ingestão na conta do pipeline.

Para obter etapas detalhadas e exemplos de políticas do IAM, consulte Concessão de acesso de ingestão entre contas.