向 Amazon OpenSearch Ingestion 管道授予访问域的权限 - Amazon OpenSearch Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

向 Amazon OpenSearch Ingestion 管道授予访问域的权限

Amazon OpenSearch Ingestion 管道需要权限才能写入配置为其接收器的 OpenSearch Service 域。要提供访问权限,您需要为 Amazon Identity and Access Management (IAM) 角色配置限制权限策略,限制对管道发送数据的域的访问权限。例如,您可能希望将摄取管道限制为仅含支持其用例所需的域和索引。

重要

您可以选择手动创建管道角色,也可以在创建管道期间让 OpenSearch Ingestion 为您创建管道角色。如果您选择自动创建角色,OpenSearch Ingestion 会根据您选择的源和接收器,向管道角色访问策略添加所有必需的权限。OpenSearch Ingestion 会使用您输入的前缀 OpenSearchIngestion- 和后缀,在 IAM 中创建管道角色。有关更多信息,请参阅 管道角色

如果让 OpenSearch Ingestion 为您创建管道角色,在创建管道之前或之后,您仍需将该角色包含在域访问策略中,并将其映射至后端角色(如果域使用精细访问控制)。有关说明,请参阅步骤 2。

步骤 1:创建管道角色

管道角色必须具有允许其向域接收器发送数据的附加权限策略。同时,还必须具有允许 OpenSearch Ingestion 担任角色的信任关系。有关如何附加角色策略的说明,请参阅 IAM 用户指南中的添加 IAM 身份权限

以下示例策略演示您可以在管道角色中授予的最低权限,使其能够向单个域写入数据:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "es:DescribeDomain", "Resource": "arn:aws:es:*:111122223333:domain/*" }, { "Effect": "Allow", "Action": "es:ESHttp*", "Resource": "arn:aws:es:*:111122223333:domain/domain-name/*" } ] }

如果计划重用角色写入多个域,则可以将域名替换为通配符(*)来扩大策略范围。

角色必须具有以下信任关系,从而允许 OpenSearch Ingestion 担任管道角色:

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

步骤 2:为域配置数据访问权限

为使管道能够将数据写入域,域必须具有域级访问策略,以允许管道角色访问域。

以下示例域访问策略允许名为 pipeline-role 的管道角色向名为 ingestion-domain 的域写入数据:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/pipeline-role" }, "Action": [ "es:DescribeDomain", "es:ESHttp*" ], "Resource": "arn:aws:es:us-east-1:111122223333:domain/domain-name/*" } ] }

映射管道角色(仅适用于使用精细访问控制的域)

如果您的域使用精细访问控制进行身份验证,则需要采取额外步骤,为管道提供域访问权限。步骤因域配置而异:

  • 场景 1:主角色与管道角色不同:如果您使用 IAM Amazon 资源名称(ARN)作为主用户,且主用户不同于管道角色,则需要将管道角色映射到 OpenSearch all_access 后端角色。这会将管道角色添加为其他主用户。有关更多信息,请参阅其他主用户

  • 场景 2:内部用户数据库中的主用户 – 如果您的域使用内部用户数据库的主用户和 OpenSearch 控制面板的 HTTP 基本身份验证,则无法将主用户名和密码直接传递到管道配置。相反,将管道角色映射到 OpenSearch all_access 后端角色。这会将管道角色添加为其他主用户。有关更多信息,请参阅其他主用户

  • 场景 3:主角色与管道角色相同(不常见):如果您使用 IAM ARN 作为主用户,且主用户与作为管道角色的 ARN 相同,则无需采取任何进一步的操作。管道具有写入域所需的权限。此场景并不常见,因为绝大多数环境使用管理员角色或其他角色作为主角色。

下图显示了如何将管道角色映射到后端角色:

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