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 |
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 |
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.
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.
Tópicos
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 entreguessts_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.