授與 Amazon OpenSearch 擷取管道對集合的存取權 - Amazon OpenSearch Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

授與 Amazon OpenSearch 擷取管道對集合的存取權

Amazon OpenSearch 擷取管道可以寫入 OpenSearch 無伺服器公開收集或VPC集合。若要提供對集合的存取權,您可以設定具有授與集合存取權的權限原則的 AWS Identity and Access Management (IAM) 管線角色。在管線組態中指定角色之前,必須先使用適當的信任關係對其進行設定,然後透過資料存取原則授與其資料存取權限。

在管道建立期間, OpenSearch 擷取會在管 AWS PrivateLink 線和 OpenSearch 無伺服器集合之間建立連線。來自管線的所有流量都會經過此VPC端點,並路由至集合。若要存取集合,必須透過網路存取原則授與端點存取集合的存取權。

OpenSearch Ingestion pipeline connecting to OpenSearch Serverless collection via PrivateLink VPC endpoint.

提供對管道的網路存取

您在 OpenSearch 無伺服器中建立的每個集合至少都有一個與其相關聯的網路存取原則。網路存取原則會決定集合是否可透過網際網路從公用網路存取,或是否必須以私密方式存取。如需有關網路原則的詳細資訊,請參閱Amazon OpenSearch 無伺服器的網路存取

在網路存取原則中,您只能指定 OpenSearch 無伺服器管理VPC的端點。如需詳細資訊,請參閱使用介面端點 (AWS PrivateLink) 存取 Amazon OpenSearch Serverless。 OpenSearch 不過,為了讓管線寫入集合,原則也必須授與存取權給 Intection 在管線和集合之間自動建立的VPC端點。因此,當您建立具有 OpenSearch 無伺服器收集接收器的管線時,必須使用此network_policy_name選項提供相關聯網路原則的名稱。

例如:

... sink: - opensearch: hosts: [ "https://collection-id.region.aoss.amazonaws.com" ] index: "my-index" aws: serverless: true serverless_options: network_policy_name: "network-policy-name"

在管線建立期間, OpenSearch 擷取會檢查指定的網路原則是否存在。如果它不存在, OpenSearch 擷取會建立它。如果確實存在, OpenSearch 擷取會透過向其新增規則來更新它。此規則會授與對連接管線和集合之VPC端點的存取權。

例如:

{ "Rules":[ { "Resource":[ "collection/my-collection" ], "ResourceType":"collection" } ], "SourceVPCEs":[ "vpce-0c510712627e27269" # The ID of the VPC endpoint that OpenSearch Ingestion creates between the pipeline and collection ], "Description":"Created by Data Prepper" }

在主控台中, OpenSearch 擷取新增至網路原則的任何規則都會命名為「由資料準備器建立」:

Configuration details for OpenSearch endpoint access, including VPC endpoint and resources.
注意

一般而言,指定集合的公開存取權限的規則會覆寫指定私人存取權的規則。因此,如果原則已經設定了公開存取權, OpenSearch 擷取新增的這個新規則並不會實際變更原則的行為。如需詳細資訊,請參閱政策優先順序

如果您停止或刪除管線, OpenSearch 擷取會刪除管線和集合之間的VPC端點。它也會修改網路策略,將VPC端點從允許的端點清單中移除。如果您重新啟動管道,它會重新建立VPC端點,並使用端點 ID 重新更新網路政策。

步驟 1:建立管線角色

您在管線組態的 sts_role_arn 參數中指定的角色必須具有附加的權限原則,允許其將資料傳送至收集接收器。它還必須具有允許 OpenSearch 擷取擔任角色的信任關係。如需有關如何將原則附加至角色的指示,請參閱IAM使用指南中的新增IAM身分識別權限

下列範例原則示範您可以在管線組態的 sts_role_arn 角色中為其寫入集合提供的最低權限

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "aoss:APIAccessAll", "aoss:BatchGetCollection", "aoss:CreateSecurityPolicy", "aoss:GetSecurityPolicy", "aoss:UpdateSecurityPolicy" ], "Resource": "*" } ] }

角色必須具有下列信任關係,以允許 OpenSearch 擷取假設它:

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

步驟 2:建立集合

使用下列設定建立 OpenSearch 無伺服器集合。如需建立集合的指示,請參閱建立集合

資料存取政策

為集合建立資料存取原則,以授與管線角色所需的權限。例如:

[ { "Rules": [ { "Resource": [ "index/collection-name/*" ], "Permission": [ "aoss:CreateIndex", "aoss:UpdateIndex", "aoss:DescribeIndex", "aoss:WriteDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::account-id:role/pipeline-role" ], "Description": "Pipeline role access" } ]
注意

Principal元素中,指定您在上一個步驟中建立的管道角色的 Amazon 資源名稱 (ARN)。

網路存取政策

建立集合的網路存取原則。您可以將資料內嵌到公開集合或集VPC合中。例如,下列原則提供對單一 OpenSearch 無伺服器管理VPC端點的存取權:

[ { "Description":"Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/collection-name" ] } ], "AllowFromPublic": false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ] } ]
重要

您必須在管線組態的network_policy_name選項內指定網路原則的名稱。在管道建立時, OpenSearch 擷取會更新此網路原則,以允許存取管道和集合之間自動建立的VPC端點。如需管線組態範例,請參閱步驟 3。如需詳細資訊,請參閱提供對管道的網路存取

步驟 3:建立管道

最後,建立一個管道,您可以在其中指定管線角色和集合詳細資訊。管線會擔任此角色,以便將要求簽署至 OpenSearch 無伺服器收集接收器。

請確定執行下列操作:

  • 針對此hosts選項,指定您在步驟 2 中建立的集合的端點。

  • 針對該sts_role_arn選項,指定您在步驟 1 中建立的管道角色的 Amazon 資源名稱 (ARN)。

  • serverless選項設定為true

  • 將選network_policy_name項設定為附加至集合的網路原則名稱。 OpenSearch 擷取會自動更新此網路原則,以允許從管線和集合之間建立的網路原則進行存取。VPC如需詳細資訊,請參閱提供對管道的網路存取

version: "2" log-pipeline: source: http: path: "/log/ingest" processor: - date: from_time_received: true destination: "@timestamp" sink: - opensearch: hosts: [ "https://collection-id.region.aoss.amazonaws.com" ] index: "my-index" aws: serverless: true serverless_options: network_policy_name: "network-policy-name" # If the policy doesn't exist, a new policy is created. region: "us-east-1" sts_role_arn: "arn:aws:iam::account-id:role/pipeline-role"

如需必要和不受支援參數的完整參考,請參閱〈〉Amazon OpenSearch Ingestion 管道支援的外掛程式和選項