Conceder aos pipelines da Ingestão do Amazon OpenSearch o acesso aos domínios - 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á.

Conceder aos pipelines da Ingestão do Amazon OpenSearch o acesso aos domínios

Um pipeline de Ingestão do Amazon OpenSearch precisa de permissão para gravar no domínio do OpenSearch Service que está configurado como seu coletor. Para fornecer acesso, você configura um perfil do IAM AWS Identity and Access Management com uma política de permissões restritiva que limita o acesso ao domínio para o qual um pipeline está enviando dados. Por exemplo, talvez você queira limitar um pipeline de ingestão somente ao domínio e aos índices necessários para ser compatível com seu caso de uso.

Antes de especificar a função na configuração do pipeline, você deve configurá-la com uma relação de confiança apropriada e, em seguida, conceder a ela acesso ao domínio dentro da política de acesso ao domínio.

Etapa 1: Criar um pipeline

A função que você especifica no parâmetro sts_role_arn de uma configuração de pipeline deve ter uma política de permissões anexada que permita enviar dados para o coletor de domínio. Além disso, deve ter um relacionamento de confiança que permite que a Ingestão do OpenSearch assuma a função. Para obter instruções de como associar uma política gerenciada a uma função, consulte Adição de permissões de identidade do IAM no Manual do usuário do IAM.

O exemplo de política a seguir demonstra o privilégio mínimo que você pode fornecer na função sts_role_arn de uma configuração de pipeline para que ela grave em um único domínio:

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

Se planeja reutilizar a função para gravar em vários domínios, você pode tornar a política mais ampla substituindo o nome do domínio por um caractere curinga (*).

A função deve ter a seguinte relação de confiança, que permite que a Ingestão do OpenSearch assuma a função de pipeline:

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

Recomendamos que você adicione as chaves de condição aws:SourceAccount e aws:SourceArn na política para se proteger contra o problema confused deputy. O ID de conta da do proprietário do de origem.

Por exemplo, você poderia adicionar o bloco de condições a seguir na política:

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

Etapa 2: incluir a função do pipeline na política de acesso ao domínio

Para que um pipeline grave dados em um domínio, o domínio deve ter uma política de acesso em nível de domínio que permita que a função de pipeline sts_role_arn o acesse.

O exemplo de política de acesso ao domínio a seguir permite que a função de pipeline chamadapipeline-role, que você criou na etapa anterior, grave dados no domínio chamado 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/*" } ] }

Etapa 3: mapear a função do pipeline (somente para domínios que usam controle de acesso refinado)

Se seu domínio usa controle de acesso refinado para autenticação, há etapas adicionais que você precisa seguir para fornecer acesso ao pipeline a um domínio. As etapas variam de acordo com a configuração do seu domínio:

Cenário 1: função de mestre e função de pipeline diferentes — se você estiver usando um nome do recurso da Amazon (ARN) do IAM como usuário principal e ele for diferente da função do pipeline (sts_role_arn), você precisará mapear a função do pipeline para a função de back-end all_access do OpenSearch. Basicamente, isso adiciona a função de pipeline como usuário principal adicional. Para obter mais informações, consulte Usuários principais adicionais.

Cenário 2: usuário principal no banco de dados de usuário interno — se seu domínio usa um usuário mestre no banco de dados de usuário interno e autenticação HTTP básica para OpenSearch Dashboards, você não pode passar o nome de usuário e a senha principal diretamente para a configuração do pipeline. Em vez disso, você precisa mapear a função do pipeline (sts_role_arn) para a função de back-end all_access do OpenSearch. Basicamente, isso adiciona a função de pipeline como usuário principal adicional. Para obter mais informações, consulte Usuários principais adicionais.

Cenário 3: mesma função principal e função de pipeline (incomum) — se você estiver usando um ARN do IAM como usuário principal e for o mesmo ARN que você está usando como função de pipeline (sts_role_arn), você não precisa realizar nenhuma ação adicional. O pipeline tem as permissões necessárias para gravar no domínio. Esse cenário é incomum porque a maioria dos ambientes usa uma função de administrador ou alguma outra função como a função principal.

A imagem a seguir mostra como mapear a função do pipeline para uma função de back-end:

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

Etapa 4: especificar a função na configuração do pipeline

Para criar um pipeline com sucesso, você deve especificar a função do pipeline que você criou na etapa 1 como o parâmetro sts_role_arn na configuração do pipeline. O pipeline assume essa função para assinar solicitações no coletor de domínio do OpenSearch Service.

No campo sts_role_arn, especifique o ARN da função do pipeline do IAM:

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"

Para obter uma referência completa dos parâmetros necessários e não compatíveis, consulte Plugins e opções compatíveis para pipelines OpenSearch de ingestão da Amazon.