

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

# Amazon OpenSearch Serverless 的網路存取
<a name="serverless-network"></a>

Amazon OpenSearch Serverless 集合的網路設定會判斷該集合是否可透過網際網路從公有網路存取，或是否必須私下存取。

私有存取可以套用到下列其中一項或兩項：
+ OpenSearch Serverless 受管 VPC 端點
+ 支援， AWS 服務 例如 Amazon Bedrock

您可以針對集合的 *OpenSearch* 端點及其對應的 *OpenSearch Dashboards* 端點個別設定網路存取。

網路存取是允許從不同來源網路存取的隔離機制。例如，如果集合的 OpenSearch Dashboards 端點可公開存取，但 OpenSearch API 端點無法公開存取，則使用者只能在從公有網路連線時透過 Dashboards 存取集合資料。如果使用者嘗試直接從公用網路呼叫 OpenSearch API，就會遭到封鎖。網路設定可用於來源到資源類型的這類排列。Amazon OpenSearch Serverless 同時支援 IPv4 和 IPv6 連線。

**Topics**
+ [網路政策](#serverless-network-policies)
+ [考量事項](#serverless-network-considerations)
+ [設定網路政策所需的許可](#serverless-network-permissions)
+ [政策優先順序](#serverless-network-precedence)
+ [建立網路政策 (主控台)](#serverless-network-console)
+ [建立網路政策 (AWS CLI)](#serverless-network-cli)
+ [檢視網路政策](#serverless-network-list)
+ [更新網路政策](#serverless-network-update)
+ [刪除網路政策](#serverless-network-delete)

## 網路政策
<a name="serverless-network-policies"></a>

網路政策讓您可以自動將網路存取設定指派給符合政策中定義之規則的集合，以便大規模管理許多集合。

在網路政策中，您可以指定一系列*規則*。這些規則會定義集合端點和 OpenSearch Dashboards 端點的存取許可。每個規則都包含存取類型 （公有或私有） 和資源類型 （集合和/或 OpenSearch Dashboards 端點）。對於每個資源類型 (`collection` 和 `dashboard`)，您可以指定一系列規則來定義政策套用至的集合。

在此範例政策中，第一個規則會指定 VPC 端點對以 一詞開頭之所有集合的集合端點和 Dashboards 端點的存取`marketing*`。它也會指定 Amazon Bedrock 存取。

**注意**  
對 Amazon Bedrock AWS 服務 等 的私有存取*僅適用於*集合的 OpenSearch 端點，不適用於 OpenSearch Dashboards 端點。即使 `ResourceType`是 `dashboard`，也 AWS 服務 無法授予 OpenSearch Dashboards 的存取權。

第二個規則會指定對 `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 Dashboards 的公用存取權。任何直接存取 OpenSearch API 的嘗試都會失敗。

```
[
  {
    "Description": "Dashboards access",
    "Rules": [
      {
        "ResourceType": "dashboard",
        "Resource": [
          "collection/finance*"
        ]
      }
    ],
    "AllowFromPublic": true
  }
]
```

網路政策可套用至現有集合以及未來的集合。例如，您可以建立集合，然後使用符合集合名稱的規則建立網路政策。您不需要建立網路政策，就能建立集合。

## 考量事項
<a name="serverless-network-considerations"></a>

為集合設定網路存取時，請考慮以下項目：
+ 如果您打算設定集合的 VPC 端點存取，您必須先建立至少一個 [OpenSearch Serverless 受管 VPC 端點](serverless-vpc.md)。
+ 對 的私有存取 AWS 服務 僅適用於集合的 OpenSearch 端點，不適用於 OpenSearch Dashboards 端點。即使 `ResourceType`是 `dashboard`，也 AWS 服務 無法授予 OpenSearch Dashboards 的存取權。
+ 如果集合可從公有網路存取，也可以從所有 OpenSearch Serverless 受管 VPC 端點和所有端點存取 AWS 服務。
+ 多個網路政策可套用至單一集合。如需詳細資訊，請參閱[政策優先順序](#serverless-network-precedence)。

## 設定網路政策所需的許可
<a name="serverless-network-permissions"></a>

OpenSearch Serverless 的網路存取使用下列 AWS Identity and Access Management (IAM) 許可。您可以指定 IAM 條件，將使用者限制在與特定集合關聯的網路政策內。
+ `aoss:CreateSecurityPolicy`：建立網路存取政策。
+ `aoss:ListSecurityPolicies`：列出目前帳戶中的所有網路政策。
+ `aoss:GetSecurityPolicy`：檢視網路存取政策規格。
+ `aoss:UpdateSecurityPolicy`：修改指定的網路存取政策，並變更 VPC ID 或公用存取名稱。
+ `aoss:DeleteSecurityPolicy`：刪除網路存取政策 (在將該政策從所有集合中分離之後)。

下列身分型存取政策讓使用者可以檢視所有網路政策，以及更新包含資源模式 `collection/application-logs` 的政策：

------
#### [ JSON ]

****  

```
{
    "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 Serverless 需要集合資源的 `aoss:APIAccessAll`和 `aoss:DashboardsAccessAll`許可。如需詳細資訊，請參閱[使用 OpenSearch API 操作](security-iam-serverless.md#security_iam_id-based-policy-examples-data-plane)。

## 政策優先順序
<a name="serverless-network-precedence"></a>

在某些情況下，網路政策規則的重疊情形可能會在政策內部或跨政策發生。發生這種情況時，指定公有存取的規則會覆寫規則，為*這兩個*規則通用的任何集合指定私有存取。

例如，在下列政策中，這兩個規則都會將網路存取指派給 `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 端點和服務識別符，並且相關聯的集合將具有公有存取權。

## 建立網路政策 (主控台)
<a name="serverless-network-console"></a>

網路政策可套用至現有集合以及未來的集合。建議您先建立網路政策，然後再開始建立集合。

**建立 OpenSearch Serverless 網路政策**

1. 開啟位於 https：//[https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home ) 的 Amazon OpenSearch Service 主控台。

1. 在左側導覽面板中，展開 **Serverless** (無伺服器)，然後選擇 **Network policies** (網路政策)。

1. 選擇 **Create network policy** (建立網路政策)。

1. 提供政策的名稱和描述。

1. 提供一個或多個*規則*。這些規則會定義 OpenSearch Serverless 集合及其 OpenSearch Dashboards 端點的存取許可。

   每個規則都包含下列元素：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/opensearch-service/latest/developerguide/serverless-network.html)

   對於您選取的每個資源類型，您可以選擇要將政策設定套用至其中的現有集合，和/或建立一個或多個資源模式。資源模式包含字首和萬用字元 (\$1)，並定義政策設定將套用至的集合。

   例如，如果您包含名為 `Marketing*` 的模式，則名稱以「行銷」開頭的任何新的或現有集合都會將此政策中的網路設定自動套用至其中。單一萬用字元 (`*`) 會將政策套用至所有目前和未來的集合。

   此外，您可以指定*未來*集合的名稱，而不使用萬用字元，例如 `Finance`。OpenSearch Serverless 會將政策設定套用至任何具有相同名稱的新建集合。

1. 如果您對政策組態感到滿意，請選擇 **Create** (建立)。

## 建立網路政策 (AWS CLI)
<a name="serverless-network-cli"></a>

若要使用 OpenSearch Serverless API 操作建立網路政策，您需指定 JSON 格式的規則。[CreateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateSecurityPolicy.html) 請求同時接受內嵌政策和 .json 檔案。所有集合和模式採用的格式必須為 `collection/<collection name|pattern>`。

**注意**  
資源類型 `dashboards` 僅允許對 OpenSearch Dashboards 的許可，但若要讓 OpenSearch Dashboards 能夠正常運作，您還必須允許來自相同來源的集合存取權。如需範例，請參閱以下第二個政策。

若要指定私有存取，請包含下列其中一個或兩個元素：
+ `SourceVPCEs` – 指定一或多個 OpenSearch Serverless 受管 VPC 端點。
+ `SourceServices` – 指定一個或多個支援的識別符 AWS 服務。目前支援下列服務識別符：
  + `bedrock.amazonaws.com` – Amazon Bedrock

下列範例網路政策提供對 VPC 端點和 Amazon Bedrock 的私有存取，僅針對字首為 的集合收集端點`log*`。經過驗證的使用者無法登入 OpenSearch Dashboards；他們只能以程式設計方式存取集合端點。

```
[
   {
      "Description":"Private access for log collections",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/log*"
            ]
         }
      ],
      "AllowFromPublic":false,
      "SourceVPCEs":[
         "vpce-050f79086ee71ac05"
      ],
      "SourceServices":[
         "bedrock.amazonaws.com"
      ],
   }
]
```

下列政策會針對名為 `finance` 的單一集合，提供對 OpenSearch 端點*和* OpenSearch Dashboards 的公用存取權。如果該集合不存在，建立集合時，會將網路設定套用至該集合。

```
[
   {
      "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` 格式

## 檢視網路政策
<a name="serverless-network-list"></a>

在建立集合之前，您可能想要預覽帳戶中的現有網路政策，以查看哪個政策的資源模式與集合名稱相符。下列 [ListSecurityPolicies](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListSecurityPolicies.html) 請求會列出您帳戶中的所有網路政策：

```
aws opensearchserverless list-security-policies --type network
```

此請求會傳回所有已設定網路政策的相關資訊。若要檢視一個特定政策中定義的模式規則，請在回應中的 `securityPolicySummaries`元素內容中找到政策資訊。請注意此政策`type`的 `name`和 ，並在 [GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html) 請求中使用這些屬性來接收包含下列政策詳細資訊的回應：

```
{
    "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](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html) 命令。

## 更新網路政策
<a name="serverless-network-update"></a>

當您修改網路的 VPC 端點或公用存取名稱時，所有關聯的集合都會受到影響。若要更新 OpenSearch Serverless 主控台中的網路政策，請展開 **Network policies** (網路政策)，選取要修改的政策，然後選擇 **Edit** (編輯)。進行變更，然後選擇 **Save** (儲存)。

若要使用 OpenSearch Serverless API 更新網路政策，請使用 [UpdateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityPolicy.html) 命令。您必須在請求中包含政策版本。您可以使用 `ListSecurityPolicies` 或 `GetSecurityPolicy` 命令擷取政策版本。將最新的政策版本納入其中，可確保您不會意外覆寫其他人所做的變更。

下列請求會使用新的政策 JSON 文件更新網路政策：

```
aws opensearchserverless update-security-policy \
    --name sales-inventory \
    --type network \
    --policy-version MTY2MzY5MTY1MDA3Ml8x \
    --policy file://my-new-policy.json
```

## 刪除網路政策
<a name="serverless-network-delete"></a>

您必須將網路政策從所有集合分離，才能將其刪除。若要刪除 OpenSearch Serverless 主控台中的政策，請選取該政策，然後選擇 **Delete** (刪除)。

您也可以使用 [DeleteSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteSecurityPolicy.html) 命令：

```
aws opensearchserverless delete-security-policy --name my-policy --type network
```