本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon OpenSearch 無伺服器的網路存取
Amazon OpenSearch 無伺服器集合的網路設定可決定集合是否可透過網際網路從公用網路存取,或者是否必須以私密方式存取集合。
私人存取權可套用至下列其中一項或兩項:
-
OpenSearch 無伺服器管理的 VPC 端點
-
支持, AWS 服務 如 Amazon 基岩
您可以針對集合的OpenSearch端點及其對應的OpenSearch 儀表板端點個別設定網路存取。
網路存取是允許從不同來源網路存取的隔離機制。例如,如果集合的 OpenSearch 儀表板端點可公開存取,但 OpenSearch API 端點不是,則從公用網路連線時,使用者只能透過儀表板存取集合資料。如果他們嘗試直接從公用網路呼叫 OpenSearch API,就會封鎖它們。網路設定可用於來源到資源類型的這類排列。Amazon OpenSearch 無伺服器同時支援 IPv4 和 IPv6 連線。
網路政策
網路政策讓您可以自動將網路存取設定指派給符合政策中定義之規則的集合,以便大規模管理許多集合。
在網路政策中,您可以指定一系列規則。這些規則會定義收集端點和 OpenSearch 儀表板端點的存取權限。每個規則都包含一個存取類型 (公用或私人) 和資源類型 (集合和/或 OpenSearch 儀表板端點)。對於每個資源類型 (collection
和 dashboard
),您可以指定一系列規則來定義政策套用至的集合。
在此範例原則中,第一個規則會指定 VPC 端點存取權限,同時存取所有集合的集合端點和儀表板端點 (從該術語marketing*
開始)。它還指定了 Amazon 基岩訪問。
注意
如 Amazon 基岩之 AWS 服務 類的私人存取權限僅適用於集合的 OpenSearch 端點,而不適用於 OpenSearch 儀表板端點。即使ResourceType
是dashboard
,也 AWS 服務 無法授與 OpenSearch 儀表板的存取權。
第二個規則會指定對 finance
集合的公用存取權,但僅限於集合端點 (無 Dashboards 存取權)。
[ { "Description":"Marketing access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/
marketing*
" ] }, { "ResourceType":"dashboard", "Resource":[ "collection/marketing*
" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05
" ], "SourceServices":[ "bedrock.amazonaws.com" ], }, { "Description":"Sales access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance
" ] } ], "AllowFromPublic":true } ]
此原則僅針對以「財務」開頭的集合提供 OpenSearch 儀表板的公開存取權。任何直接訪問 OpenSearch API 的嘗試都將失敗。
[ { "Description": "Dashboards access", "Rules": [ { "ResourceType": "dashboard", "Resource": [ "collection/
finance*
" ] } ], "AllowFromPublic": true } ]
網路政策可套用至現有集合以及未來的集合。例如,您可以建立集合,然後使用符合集合名稱的規則建立網路政策。您不需要建立網路政策,就能建立集合。
考量事項
為集合設定網路存取時,請考慮以下項目:
-
如果您計劃設定集合的 VPC 端點存取,則必須先建立至少一個OpenSearch 無伺服器管理的 VPC 端點。
-
私人存取權 AWS 服務 限僅適用於集合的 OpenSearch端點,而不適用於 OpenSearch 儀表板端點。即使
ResourceType
是dashboard
,也 AWS 服務 無法授與 OpenSearch 儀表板的存取權。 -
如果集合可從公用網路存取,也可以從所有 OpenSearch 無伺服器管理的 VPC 端點和所有端點存取該集合。 AWS 服務
-
多個網路政策可套用至單一集合。如需詳細資訊,請參閱 政策優先順序。
設定網路原則所需的權限
OpenSearch 無伺服器的網路存取使用下列 AWS Identity and Access Management (IAM) 許可。您可以指定 IAM 條件,將使用者限制在與特定集合關聯的網路政策內。
-
aoss:CreateSecurityPolicy
:建立網路存取政策。 -
aoss:ListSecurityPolicies
:列出目前帳戶中的所有網路政策。 -
aoss:GetSecurityPolicy
:檢視網路存取政策規格。 -
aoss:UpdateSecurityPolicy
:修改指定的網路存取政策,並變更 VPC ID 或公用存取名稱。 -
aoss:DeleteSecurityPolicy
:刪除網路存取政策 (在將該政策從所有集合中分離之後)。
下列身分型存取政策讓使用者可以檢視所有網路政策,以及更新包含資源模式 collection/application-logs
的政策:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aoss:UpdateSecurityPolicy" ], "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": "
application-logs
" } } }, { "Effect": "Allow", "Action": [ "aoss:ListSecurityPolicies", "aoss:GetSecurityPolicy" ], "Resource": "*" } ] }
注意
此外, OpenSearch 無伺服器需要集合資源的aoss:APIAccessAll
和aoss:DashboardsAccessAll
權限。如需詳細資訊,請參閱 使用 OpenSearch API 操作。
政策優先順序
在某些情況下,網路政策規則的重疊情形可能會在政策內部或跨政策發生。發生這種情況時,指定公用存取權的規則會覆寫為兩個規則通用的任何集合指定私有存取權的規則。
例如,在下列政策中,這兩個規則都會將網路存取指派給 finance
集合,但其中一個規則指定的是 VPC 存取權,而另一個規則指定的是公用存取權。在此情況下,公用存取權僅會覆寫財務集合的 VPC 存取權 (因為其同時存在於兩個規則中),因此您可從公用網路存取該財務集合。銷售集合將具有來自指定端點的 VPC 存取權。
[ { "Description":"Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/
sales
", "collection/finance
" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05
" ] }, { "Description":"Rule 2", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance
" ] } ], "AllowFromPublic":true } ]
如果來自不同規則的多個 VPC 端點套用至某個集合,則這些為附加規則,且可從所有指定端點存取該集合。如果您設定AllowFromPublic
為true
但同時提供一或多個SourceVPCEs
或SourceServices
,則 OpenSearch Serverless 會忽略 VPC 端點和服務識別碼,而相關聯的集合將具有公開存取權。
建立網路政策 (主控台)
網路政策可套用至現有政策以及未來政策。建議您先建立網路政策,然後再開始建立集合。
建立 OpenSearch 無伺服器網路原則
-
在以下位置打開 Amazon OpenSearch 服務控制台 https://console.aws.amazon.com/aos/home
。 -
在左側導覽面板中,展開 Serverless (無伺服器),然後選擇 Network policies (網路政策)。
-
選擇 Create network policy (建立網路政策)。
-
提供政策的名稱和描述。
-
提供一個或多個規則。這些規則會定義 OpenSearch 無伺服器集合及其 OpenSearch 儀表板端點的存取權限。
每項規則都包含下列要素:
Element 描述 規則名稱 描述規則內容的名稱。例如,「行銷團隊的 VPC 存取權」。 存取類型 選擇公開或私人存取。然後,選取下列其中一項或兩項: -
要存取的 VPC 端點 — 指定一或多個OpenSearch 無伺服器管理的 VPC 端點 — 受管 VPC 人雲端端點。
-
AWS 服務 私人存取 — 選取一個或多個支援的項目 AWS 服務。
Resource Type (資源類型) 選取是否提供 OpenSearch 端點 (允許呼叫 OpenSearch API)、 OpenSearch 儀表板 (允許存取視覺效果和 OpenSearch 外掛程式使用者介面) 的存取權限,還是提供兩者的存取權。 注意
AWS 服務 私人存取僅適用於集合的 OpenSearch 端點,而不適用於 OpenSearch 儀表板端點。即使您選取 [OpenSearch 儀表板],也只 AWS 服務 能授與端點存取權。
對於您選取的每個資源類型,您可以選擇要將政策設定套用至其中的現有集合,和/或建立一個或多個資源模式。資源模式包含字首和萬用字元 (*),並定義政策設定將套用至的集合。
例如,如果您包含名為
Marketing*
的模式,則名稱以「行銷」開頭的任何新的或現有集合都會將此政策中的網路設定自動套用至其中。單一萬用字元 (*
) 會將政策套用至所有目前和未來的集合。此外,您可以指定 future 集合的名稱,而不使用萬用字元,例如
Finance
。 OpenSearch 無伺服器會將原則設定套用至任何具有相同名稱的新建立集合。 -
-
如果您對政策組態感到滿意,請選擇 Create (建立)。
建立網路政策 (AWS CLI)
若要使用 OpenSearch 無伺服器 API 作業建立網路原則,請以 JSON 格式指定規則。要CreateSecurityPolicy求接受內嵌政策和 .json 檔案。所有集合和模式採用的格式必須為 collection/<collection
name|pattern>
。
注意
資源類型dashboards
僅允許 OpenSearch 控制面板的權限,但為了使 OpenSearch 儀表板功能正常運作,您還必須允許來自相同來源的集合存取。如需範例,請參閱以下第二個政策。
若要指定私人存取權,請包含下列其中一個或兩個元素:
-
SourceVPCEs
— 指定一或多個 OpenSearch 無伺服器管理的 VPC 端點。 -
SourceServices
— 指定一個或多個受支援的識別碼 AWS 服務。目前支援下列服務識別碼:-
bedrock.amazonaws.com
— Amazon 基岩
-
以下範例網路政策提供 VPC 端點和 Amazon 基岩的私有存取權,以便僅針對以前綴開頭的集合收集端點收集端點。log*
已驗證的使用者無法登入 OpenSearch 儀表板;他們只能以程式設計方式存取集合端點。
[ { "Description":"Private access for log collections", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/
log*
" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05
" ], "SourceServices":[ "bedrock.amazonaws.com" ], } ]
下列原則會針對名為的單一集合提供 OpenSearch 端點和 OpenSearch 儀表板的公用存取權finance
。如果該集合不存在,建立集合時,會將網路設定套用至該集合。
[ { "Description":"Public access for finance collection", "Rules":[ { "ResourceType":"dashboard", "Resource":[ "collection/
finance
" ] }, { "ResourceType":"collection", "Resource":[ "collection/finance
" ] } ], "AllowFromPublic":true } ]
下列請求會建立上述網路政策:
aws opensearchserverless create-security-policy \ --name
sales-inventory
\ --type network \ --policy "[{\"Description\":\"Public access for finance collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/finance\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/finance\"]}],\"AllowFromPublic\":true}]"
若要在 JSON 檔案中提供政策,請使用 --policy
file://
格式my-policy
.json
檢視網路政策
在建立集合之前,您可能想要預覽帳戶中的現有網路政策,以查看哪個政策的資源模式與集合名稱相符。下列ListSecurityPolicies要求會列出您帳戶中的所有網路原則:
aws opensearchserverless list-security-policies --type network
此請求會傳回所有已設定網路政策的相關資訊。若要檢視在一個特定策略中定義的特徵碼規則,請在回應中的securityPolicySummaries
元素內容中尋找原則資訊。請注意此原則type
的name
和,並在GetSecurityPolicy要求中使用這些屬性,以接收含下列原則詳細資訊的回應:
{ "securityPolicyDetail": [ { "type": "network", "name": "my-policy", "policyVersion": "MTY2MzY5MTY1MDA3Ml8x", "policy": "[{\"Description\":\"My network policy rule\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection/*\"]}],\"AllowFromPublic\":true}]", "createdDate": 1663691650072, "lastModifiedDate": 1663691650072 } ] }
若要檢視有關特定原則的詳細資訊,請使用GetSecurityPolicy命令。
更新網路政策
當您修改網路的 VPC 端點或公用存取名稱時,所有關聯的集合都會受到影響。若要更新 OpenSearch 無伺服器主控台中的網路原則,請展開 [網路原則],選取要修改的原則,然後選擇 [編輯]。進行變更,然後選擇 Save (儲存)。
若要使用 OpenSearch 無伺服器 API 更新網路原則,請使用指UpdateSecurityPolicy令。您必須在請求中包含政策版本。您可以使用 ListSecurityPolicies
或 GetSecurityPolicy
命令擷取政策版本。將最新的政策版本納入其中,可確保您不會意外覆寫其他人所做的變更。
下列請求會使用新的政策 JSON 文件更新網路政策:
aws opensearchserverless update-security-policy \ --name sales-inventory \ --type network \ --policy-version
MTY2MzY5MTY1MDA3Ml8x
\ --policy file://my-new-policy.json
刪除網路政策
您必須將網路政策從所有集合分離,才能將其刪除。若要刪除 OpenSearch 無伺服器主控台中的原則,請選取該原則,然後選擇刪除。
您也可以使用以下DeleteSecurityPolicy命令:
aws opensearchserverless delete-security-policy --name
my-policy
--type network