授予 Amazon OpenSearch 擷取管道對網域的存取權 - Amazon OpenSearch Service

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

授予 Amazon OpenSearch 擷取管道對網域的存取權

Amazon OpenSearch 擷取管道需要權限才能寫入設定為接收器的 OpenSearch 服務網域。若要提供存取權,您可以設定具有限制性權限原則的 AWS Identity and Access Management (IAM) 角色,以限制對管線傳送資料之網域的存取。例如,您可能想要將擷取管道限制為僅支援其使用案例所需的網域和索引。

在管線組態中指定角色之前,必須先設定適當的信任關係,然後授與其網域存取原則中網域的存取權。

步驟 1:建立管線角色

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

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

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

如果您打算重複使用角色來寫入多個網域,您可以將網域名稱取代為萬用字元 (*),以使原則更廣泛。

角色必須具有下列信任關係,以允許 OpenSearch 擷取擔任管線角色:

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

此外,我們建議您在原則中加入aws:SourceAccountaws:SourceArn條件索引鍵,以保護自己免於混淆的副問題。來源帳戶是管線的擁有者。

例如,您可以將下列條件區塊新增至政策:

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

步驟 2:在網域存取原則中包含管線角色

為了讓管線將資料寫入網域,網域必須具有允許 sts_role_arn 管線角色存取該原則的網域層級存取原則

下列範例網域存取原則允許您在上一個步驟中建立的名為pipeline-role的管線角色將資料寫入名為的網域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/*" } ] }

步驟 3:對應管線角色 (僅適用於使用精細存取控制的網域)

如果您的網域使用精細的存取控制來進行驗證,您需要採取額外的步驟來提供管道存取網域。這些步驟會根據您的網域組態而有所不同:

案例 1:不同的主要角色和管道角色 — 如果您使用 IAM Amazon Resource Name (ARN) 作為主要使用者,且該名稱與管道角色 (sts_role_arn) 不同,則需要將管道角色對應至 OpenSearchall_access後端角色。這基本上會將管線角色新增為額外的主要使用者。如需詳細資訊,請參閱其他主要使用者

案例 2:內部使用者資料庫中的主要使用者 — 如果您的網域使用內部使用者資料庫中的主要使用者,並針對 OpenSearch 儀表板使用HTTP基本驗證,則無法將主要使用者名稱和密碼直接傳遞至管線組態。相反地,您需要將管線角色 (sts_role_arn) 對應至後 OpenSearchall_access端角色。這基本上會將管線角色新增為額外的主要使用者。如需詳細資訊,請參閱其他主要使用者

案例 3:相同的主要角色和管線角色 (不常見) — 如果您以主要使用者IAMARN身分使用,而且與您ARN用作管線角色 (sts_role_arn) 相同,則不需要採取任何進一步的動作。管線具有寫入網域所需的權限。這種情況並不常見,因為大多數環境都使用管理員角色或其他角色做為主要角色。

下圖顯示如何將管線角色對應至後端角色:

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

步驟 4:指定管線組態中的角色

若要成功建立管線,您必須將在步驟 1 中建立的管線角色指定為配管組態中的 sts_role_arn 參數。管線會擔任此角色,以便簽署要求至 OpenSearch 服務網域接收器。

sts_role_arn欄位中,指定ARNIAM管線角色的:

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"

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